You're absolutely right in what you say. Our lead programmer some years back was supposedly the biggest baddest programming genius on the planet. He didn't poop in the lobby or harass the women but he was definitely the person you did *not* want to talk to. He was cranky in the morning. He was cranky during lunch. He was cranky in the afternoon. Hell, come to think of it, he was always cranky! He pushed everybody away so that heaven forbid, you wouldn't touch the sections of code that he determined were for his magic touch only. Those were obviously the most critical sections of the code, in technical *and* in business terms.
Fast forward a few years. (Actually rewind because this is in the past.) He was let go. The company damn nearly fell apart because that software, the flagship product, was totally unreliable and customers were fuming. And it was because of the software. Somehow we survived, and along with several other people, I was put in charge of going through the code to determine what it would take to fix it. We looked through it and decided it would be better to commit suicide than to try to fix this thing.
Let me tell you a little about it. First of all, there was no organization. Unrelated functions would be located together, while closely related functions were strewn about across many translation units. Nothing was declared static. Many of the function prototypes and extern declarations did not match the actual definitions. But this is only the very minor stuff. Things that could be done in a single line of code were implemented in the most retarded way possible. (Think Rube Goldberg machine, only in software.) Error checking? Sometimes, and even then, wrong. Every imaginable problem related to the use of pointers, multithreading, files, you name it. And the worst part? He did not use any form of version control, so other than the current bleeding edge sources (what you would call the head of the trunk), there was no source for any other version.
And this guy was some kind of genius? NO! He didn't push us all away so we wouldn't "mess up" his perfect work. He did that so nobody would discover that his work was shit. Pure shit. It worked, this software. That's the miracle. But it only worked somewhat.
We described the situation to management and everyone promptly decided to throw the whole damn thing away and start over. The new system is just fine.
Somebody once pointed out to me that the cemeteries are full of irreplaceable people. In other words, in a world full of billions and billions of people, where to use computer related jobs as an example, so many people work in this sector that the small subset that participates in open source development is so enormous that you can find *any* kind of software in open source, and most of it is pretty damn clever *and* well documented, you can't convince me that there is nobody else who can do some programming job or another, even if the job is something outrageously complicated. You think skyscrapers, airplanes, hell why go that far, the computer hardware itself, you think all that got built because there doesn't exist another person on this planet smarter than irreplaceable Josh or our grumpy idiot programmer? I'm sorry but every single person in the world is irreplaceable. And yet we're all going to die one day. The certainty of that is just below the certainty of your taxes going up every year. When you have some jack ass like that working for you, you weigh all the options like a responsible businessman and then promptly get rid of him. As many here have already said, it's more important to be a pleasant person who can write software than some supposedly genius who nearly (or completely) destroys the whole company.
Alternately you should always write your profile entirely in 1337 5p33k so that if such a subpoena should ever come, the court will have to obtain an expert witness to translate the content. |\/|y L1f3 ha5 b3c0m3 teh suxx0rz!!
In 1984, George Orwell wrote that you'll have a telescreen in your house, on which you'll watch television programming, but they'll watch you, too, through a built-in camera. You'll never know exactly when they're watching you, so you'll have to be careful all of the time.
Fast-forward to the present. Many computers and computer screens come with a built-in camera for videoconferencing. Instead of building blimps, which entails all kinds of costs and challenges, all they need to do is make up a law compelling every television and computer monitor manufacturer to include a built-in always-on camera that forwards video data to the government. Since this wouldn't pass on its own as a bill, all they have to do is insert it somewhere in the middle of another 50,000 page stimulus package that nobody reads before signing into law. And to make really sure that nobody notices until it's too late, that particular section of text should be formatted in Wingdings. Then, it will be, are you ready for this, in Soviet America, television watches you!
And the mainframe is running what? Windows For Mainframes Edition? I don't think so.
Yes sir, that is exactly what he is running.
But if XP is kept available and security updates are kept going how the heck do they get the corporate desktops to do a full refresh?
Therein lies the problem. Although XP is several years old, it actually does every single thing a user needs from an operating system. As the saying goes, if it ain't broke, don't fix it. Why would anybody upgrade any software (not just the OS but apps, too) unless the new version included a fix to a bug from which the user suffers or a new feature that the user actually needs? There's risk in changing something that works. Furthermore there is the cost and I'm not talking about the software licensing cost. It costs time and money to actually install this software. Then it costs more time and money to retrain everybody on the new software. With all this risk and no clearly defined benefit that actually justifies it, nobody will upgrade. I am not some great business genius like the folks at the top of Microsoft, but in my very humble opinion, they should never have developed Vista. The whole point of XP was that it was a departure from the DOS-based Win 9x series. Finally, here was an operating system that merged the solid NT-based core that did business computing with the multimedia stuff 9x could do. Announcing that Vista would be a departure from XP, which was itself supposed to be the departure that would change the world, felt like deja vu. We went through the initial period of incompatibilities as we waited for XP-ready device drivers and software. Going through this again with Vista and yet again with 7 seems like an expensive exercise in solving the same recurring problem more than once. Microsoft should have continued doing incremental development on XP, progressively taking care of user concerns. Over time, optimize the software for speed, patch security holes, implement new features, etc. These progressive operating systems could have been called XP2, XP3, etc. What feature of Vista couldn't have been added to XP in due time? Instant search? That can be added by providing change notification hooks in the filesystem driver and implementing a service that receives these notifications and updates an on-disk index every time there's an idle moment. After all, the filesystem driver "knows" when it's changing something on the disk. There's no need to implement an entirely new operating system from scratch. But what the heck do I know? You can't argue with success, and Microsoft's enormous accomplishments to date have placed them at the forefront of success for decades. It's too bad Vista didn't live up to the world's high expectations. I hope 7 will make it all better.
PURGE COMPLETE.