Originally posted by monochrome Never assume they're incompetent.
My company has 275,000 workstations and legions of coders. They rolled out an app upgrade in our suite of integrated apps last month that crashed. It worked perfectly in limited test rollouts up to 25,000 machines.
For a month that request has returned a link that calls an old DOS display routine from 1986 runnning in a virtual window. Microsoft flew a team in last week and apparently they're having trouble fingering it out.
I literally see my client data on a non-integrated character-based screen and no one knows why.
This can happen when you continually update code and don't refactor periodically... over many many years it will bloat as each developer writes code a little differently. Not to mention the lack of documentation.
Try imagining a city where you have multiple road crews all with a different way of thinking on how the roads should be built... some think shoulders are nice, others do not. Some want a bike lane others want to use that same lane for HOV. Further others want cars to drive on the left hand side while others think right hand is fine. Some want lines so their lanes are nice and neat, others think whats the point. hahaha Yikes.
That is essentially what some of these really old, continually updated systems can look like code-wise. It becomes a spaghetti web mixed with find the needle in the haystack. I know first hand as I have worked on these systems... relics from the 80s that have been 'modernized' with new interfaces, addons in different languages, and a revolving door of programmers of varying laziness and skill... not to mention sometimes ridiculous timelines for hitting milestones.
That said, I was once given a full year. A. whole. year. ...to find out why the code was processing some data a certain way. Special mission since they considered me their best bet (haha poor them) at debugging. Even with a full year I wasn't able to discover the reason. I did find other stuff along the way that was helpful.. but it does show how complex some of this code can be, just logically with different paths for data to flow, mixed with decades of code additions, sloppy programming habits, and a ton of different cooks in the kitchen.