The typical SmalltalkLanguage installation comes with implementation of most builtin classes (e.g.: iterators, windowing/graphics, exceptions, and the object model itself) exposed for edits. Sometimes it is tempting to use this power.
Examples:
There are significant downsides to this:
Solutions:
The general solution is to combine UnitTests with an edited copy of your change.log -- or a fileout of your code. Remember that in Smalltalk you can always overwrite any class code with new changes -- this is the way that we used to distribute smalltalk "Addon" products. You still have to manually merge your changes back in, but that's something that a changes browser will help you with.
Another approach is to issue new developers two or three tokens with the stern warning that each system modification will cost them one, and that they can only be replenished by shipping successful projects.