|Perl Monk, Perl Meditation|
I think everyone has bumped into a project that isn't going to take long.
In its startup phase you knock it out in 200 lines of code plus legacy code... This Legacy code was written before your employment and in a state that you deem barely useable.
Our program is simple and straightforward. We crank it out impressing the boss using the pre-built venerable code of your predecessors. You have the intention that you will fix all this legacy code in the future. And never in your wildest dreams believe that it will need new features on this little knock off application.
Low and behold 13100 lines later you realize you screwed the pooch. Many of the legacy modules that you included have reached their limit. The code we wrote has become difficult to maintain. Feature after feature has been added and has for all intents and purposes been rewritten 5 times... just never completely in one go.
I decided because of the amount of work that I have on my plate and it is MY fault that I'll work on a rewrite at home. But this 'little 1 shot' program now needs to be implemented 4 more times and I don't have enough time to 'do it right'. My boss who has never programmed a line just knows that the other departments who are requesting this app are being postponed by me and doesn't understand why I can't just let them use it 'as is'.
I can lay blame on aspects other than myself but in the end it all this falls to me… when you’re the 'working boss' that’s where the fault should lay after everything has being said. It still has to be fixed... it still has to be done right.
So do you just get it useable by everyone rewriting the old and dieing code? Allowing the separate apps to diverge at will... which will happen most likely happen reguardless anyway. Or make a strong argument for the rewrite and take the heat of it not being done yesterday? Is there other options that I should consider?