I chanced upon the above question from an IT professional who sought advice on whether he should adopt programming code from an existing framework or write everything from scratch.
It brought on a moment of deja vu. You see, I was a staunch advocate of the "write all the code yourself" camp as a novice system administrator-cum-programmer years ago. When the PC linked to my company's automated time-clocking terminals broke down in a freak power surge - even the hard disk stopped working - I promptly contacted the manufacturer of the clocking machine for the specifications to rewrite the missing controller software. No problem writing my own code here, I thought. Surely nothing can beat the performance and intimate understanding of one's own code, right?
The new application ran in the background as an NT service on a server, automatically polling the clocking machine up to twice a day. Compared to the previous manual and multi-step process, my application was clearly superior. In addition, retrieved data was fed directly into the HR software system to compute the payroll.
So what was the problem?
Well, the application was entirely coded by me, and I am ashamed to say, sparsely documented. Certainly, the next administrator was going to have an inordinately difficult time - if it was at all possible - trying to figure out how everything worked together. And because my immediate superior was the finance manager with no IT experience, there was no one to question my glaring omission.
The use of an existing framework or an existing code library would have helped the situation tremendously. Not only will they be better documented, the fact that they are used by more programmers will invariably mean a more robust code base.
While programming frameworks do make sense to organizations of all sizes, I feel they are all the more important for SMBs, as they tend to have fewer resources to commit to reworking or deciphering unmaintainable code.
This is such an important lesson. Managers, the next time your programmer or system analyst comes to you with a proposal, be sure to ask for details about the framework or code libraries to be used. An answer involving "writing from scratch" for anything other than the simplest of applications might mean that you need to study the proposal in more detail.