If you are employed and paid as a coder, congratulations, you are one of the survivors of the current crappy economy. If you were employed prior to, during and after the dotcom bust, even bigger congrats. The true object of the game as a paid coder is to produce the product that best assists the business' goals for whom you toil. That is to say, you do the work that meets their goals and deadlines as best you can...and sometimes that means you code it to "just work" and, regrettably, don't code it to be bullet proof...because the business demands your attentions elsewhere.
What is missed from this entire discussion is that the coder almost never determines from the business perspective where his/her time is best spent. Coders see their ideal work product as fully functioning, error free code while the guy that signs their paycheck sees their ideal work product as a functioning module that is integral to their overall business with which they generate a profit (and can so pay their valuable coder employee amongst others). Sometimes that functionality is achieved via ironclad code and sometimes it's achieved by spit and baling wire code. Which is "right" isn't up to the coder many times...it's up to the people who decide whether the coder's time is better spent fixing three modules with half-ass code (but they work) and they get lower paid employees to field questions/complaints from users/customers when/if it breaks OR whether the coder takes three times as long to fix 3 modules and do it better.
You see, some of you will think the business equation of that second option means you won't need the lower paid monkeys to answer phones/emails because your...what?...code will never error now? Guess what, next guy you meet who writes code that he claims will never error...well, don't go buying any bridges from him. From the business owner's perspective, you just took longer to do something and he'll still need someone to handle calls for issues related to the code you produced. Those issues may not be as frequent...but nobody writes 100% guaranteed, fail-proof code. Hell, if it relies on anything you didn't write, the quality of the code you wrote is built on the foundation of something someone else did...and you can wave bye-bye to your perfect code product's guaranteed stellar performance.
As coders, all of us would like the freedom of time and resources to produce the best code product we're able to generate. However, the actual world in which we live means that almost all of us collect a paycheck from someone else...and many times that someone else is the determiner for how idiot proof your code product has to be to pass business muster.
THAT is reality.
This post has been edited by Craig328: 09 June 2010 - 10:33 AM