What work do you design into your code that is not directly related to the strict requirements?
I'll come back to a example with code, but first consider for a moment the hood to your car. The lightest, cheapest design; the best for speed, fuel economy would have no mechanism to keep the hood up. It would lack sprung hinges or an internal prop. It would need an external prop of some kind. Yet, production cars do come with a built in mechanism to prop open the car hood. In this case maintenance and ease of assembly was factored into the design.
An example of this in software is logging. Software that is capable of logging usually needs a bit more code than is strictly needed to fulfill the requirements. Nevertheless, I tend to think that logging is highly useful over the life of the code both for troubleshooting, maintenance and debugging.
Other things which I find are worth the extra effort:
* Automated tests
* Consistency checks
* Diagnostic displays
* Editable configurations
* Installation / Migration utilities
No comments:
Post a Comment