We would like to extend and generalize it to satisfy both the previous project and the new project. But, we have a deadline. With the impending FCS date, we elect simply to copy the code for SelectionBox and modify it to satisfy the new project. Haphazardly following this strategy produces reusable classes that are inefficient and easily broken. It is important to realize that we all are susceptible to the almost-reusable syndrome.
Projects have deadlines.
Hindsight exposes design mistakes. In every project, continued iterations of the design and implementation process further improve the software. For this column, as in the workplace, our xrolodex project faces certain design and implementation trade-offs. Object versus Function Modules For the remainder of our C implementation of xrolodex we use the term object for a software component that supports multiple instantiations. With C, the implementation for an object exists, of course, in a source code module.