Critical Mass
When a software project is started, there is a lot of new functionality to be written. Most of the time you are dealing with new code. After a while, if it is done right, you have a solid foundation that you can use to keep building the application.
Whenever I recognize this moment, it feels me with deep sense of satisfaction, this is how it should be. Rhino Mocks has reached that point some years ago, and I noticed that SvnBridge has crossed that point as well recently.
As telltales for this, I use the amount of effort it takes to build a new feature into the project. Take a look wt what was required to add svn sync support to SvnBridge, or the AAA support for Rhino Mocks.
Comments
I know what you mean. Ironically, Jeremy and I were there at the last place and.... well, you know the rest.
Miguel Castro put it well with something like, "If you can use your architecture in order to improve your architecture, then you're doing something right." He was specifically referring to adding the ability to add plug-ins/modules trivially to the end of a list and have them run at certain points in a program, because he used that to write any of the "extra" features that his program needed when his client requested something to be added onto the end of a process. He never had to touch that code again, but was still able to extend the program's functionality practically limitless.
Comment preview