Comment Re:I've seen worse (Score 1) 128
Good software engineering, architecting and coding are real skills, and early dividends of good or bad engineering will pay off or consume everything in the long term.
During my work in a F500 company I realized just how many poor and average coders there are, working on all sorts of projects. It seems like companies are not doing even rudimentary ability tests during the hiring process, since most of the people I need to work with I would never have hired myself. You only want to have at the very least "good" coders in your team. You really don't want the bad or even average ones. The long term productivity difference between coders can vary as much as 100x. Bad coders have negative productivity and will send any IT project into a downward spiral of messy, unmantainable, buggy code.
I spend half of my time correcting and refactoring code and API's of my colleagues. In the latest stint I refactored all of the UI code engineers on my team created and reduced lines of code by 75% cleaning a mess of duplicate code that was all over the place, while at the same time fixing bugs and adding consistent behaviour by keeping generic things generic, which will help long term maintanability, bug-fixing, just everything, immensely.
The people I work with will never realize just how lucky they are to have me in the team. Projects like the one mentioned in this article and the parent post are very likely the outcome of such IT projects where only mediocre people where in the loop, and there was no ace programmer to clean up after everyone and bring things into proper order. As work continues, the unstructured mess created by mediocre devs becomes exponentially more complex and unmaintanable until it can no longer be managed.
I feel this circumstance not valued enough, since most of this sort of effort is "transparent" to management. The screens "kinda" worked before, they work now, so what's the big deal? The fact that down the line all modifications, bugfixes and enhancements will be 400% easier thanks to refactoring and good engineering work, is not so apparent.
Yet its hard to understate how important it is for the long-term success of IT projects to have at least one or a few ace coders in the loop. The skill of your lead engineer and other codes is the primary thing that will determine either successful outcome or utter failure due to cost overruns and software quality issues. This is already determined in the hiring process, but I feel that this is not talked about enough.