Thursday, March 23, 2006

The Process Fails

One or two of you might have noticed my comment the other day concerning the (lack of) process at a certain highly successful software company. How the only process was "ship on time". Well, shortly after my comment said company announced that their flaship product--already a couple of years late--will not "ship on time" this year after all. The stock immediately lost 3%, which in this case amounts to a few dollars even by Texas standards. Worse, the flagship product has not shipped a new version in six years, a new record for lateness.

Has something gone wrong with one of the bulwarks of American industry? This very interesting blog, full of posts from what appear to be insiders at said company, seems to indicate that all is not well at the Happy Farm. It appears that bureaucracy is becoming more entrenched, cost savings are being pushed inappropriately, and the code is a Frankenstein's Emperor that nobody was allowed to proclaim naked. Consider:

Today's announcement is of course no surprise to anyone inside [...]. The only surprise is that it was such a short delay announced.

Basically we do not believe [...] will make January 2007 or even March 2007. Anyone with any access knows what a frankenstein's monster [...] is on the inside. At some point there is a law of diminishing returns trying to do anything to it at all, it seems like that limit is being reached today. The release is pushed back because of bugs but fixing those bugs will create more bugs. It is just godawful to be honest. And the process gets in the way at every step.

At some point we will have to do something and i know at least some in my team privately agree with me. We will have to throw out everything and start again. This is what Apple did with OSX, and sure it was painful, but it worked and now they're kicking our asses. We should have done that in 2000. Now it is even more obvious we should do it. Start again and just run a compatibility layer on top. Apple did it with classic why can't we???

Most average users of computers, I have come to know, would not switch to a Macintosh to save their souls. I got one at the end of last year and I just love the darned thing. (In fairness, it's only one of the four or so machines I run at any given time.) OSX seems to me to be head and shoulders above XP in stability, graphics, and security. Apparently the insiders agree.

What's the difference between OS X and [other OS]?

[well-known company] employees are excited about OS X...

By Anonymous, at 2:48 AM

Other comments indicate that one of the perennial bugaboos of software development--the push for total automation, even when it is inappropriate--is also part of the problem.

For reasons beyond my control I find that my livelihood suddenly depends entirely on the success of this particular company. Can you spell "angst"?

8 comments:

Charlie Martin said...

Um, actually David, I know of a number of college dropouts who have been hired in today's environment, because they write good code. It's doing it the hard way, but it happens.

As to MHA's original point, though, I'll point out that MS has about 40 BILLION dollars in cash. They'll probably hold on for a while.

Rick Ballard said...

Angst, huh?

That's what the blue pill is for.

chuck said...

...would not switch to a Macintosh to save their souls.

I always liked the Mac because it was fun, but I had to give it up. The main reasons: No upgrade path on the (expensive) hardware, lack of commercial software, and a rotten development environment. The last problem has been fixed but the others remain. To wit:

1) Upgrade. When I upgrade my machine I get to keep the disks, DVD drives, power supply, video card, and case. All I need is new memory, processor(s), and motherboard. For $400 bucks I can get upper middle class PC performance. OK, I will need a new video card next time because of pci express, but other than that...

2) If I want all the commercial, home, and game software, Windows is still the standard. Of course, I haven't booted Windows at home in, oh, six months, and that just to patch the system.

3) Fun. OK, I like having 3-4 distros on my machine to play with, although I have pretty much settled on Fedora of late.

That said, if OSX would install on my machine I would buy the sucker in a heartbeat. The Mac remains, IMHO, the best looking and easiest system to use and with the software bundle Apple includes it is ready for everyday use at first boot.

chuck said...

Are they doomed to be mere code writers for the rest of their career?

Depends on personality and motivation. My dad never moved up the ladder because he preferred engineering. He is 86 and still working full time at Lincoln Labs designing cutting edge radar systems.

Syl said...

Starting from scratch sometimes is the only way. But it's full of its own problems, not the least of which is it takes even longer than the usual 'it takes longer than you think'.

But if one doesn't start over at some point, it's simply delaying the inevitable. And when the delays and fixes and updates end up being more trouble than they're worth, it's time to start over.

In my programming career at one point I was put in charge of converting one banking system into a full blown credit reporting system. I said it was impossible with the code we were using (cobbled together from even older software sets) but they said do it anyway.

One wall after another. I complained constantly. Luckily for me I got another job offer and took it. The guy who followed me in the old job said 'If Sylvia couldn't do it, I certainly can't' so the company finally dropped it and he was allowed to start from scratch.

But this wasn't their main money making software. Not their flagship product.

I think part of the problem is the guys who have been around for a while--they're invested in the old code, in the old ways of doing things. They know how to maintain the old stuff. They're not so sure about the new.

So if push comes to shove, they'd rather the old stuff were modified.

My feeling is that in the software business if someone has been around a company long enough to reach the top, or at least a decision making position, it's time to let him go.

New tech requires new ways of working, and unless someone has proven their flexibility he/she can become a liability in an area that changes so damn much.

Though you don't want to hand over a system that's to be done from scratch to all your newbies. :)

MeaninglessHotAir said...

Are they doomed to be mere code writers for the rest of their career?

One thing I have to say for MS, they "get" software deeply in their bones. There are no "mere" code writers there--everybody is a "developer", i.e., somebody who solves difficult technical problems and immediately writes the solution in code.

If you think about it, if you have solved a difficult algorithmic problem and wish to express your solution to other people, why would you write it up in other than an algorithmic language like Python? Saying it in English and then putting it back into Python is like printing out your letter and then faxing it over instead of emailing it directly.

Why is it that developers are so often viewed as "mere"?

Rick Ballard said...

"Why is it that developers are so often viewed as "mere"?"

Because mere mortals are totally unaware of what they actually do.

I don't see a way for MS to break through the installed base problem without offering a clean system that would function in parallel with the Windows system for a relatively long period - say ten years. Most people (very much including me) don't have any desire to 'learn' to operate what amounts to the same old tools. Windows is a habit almost as bad as smoking in terms of quitting.

Syl said...

Windows is a habit almost as bad as smoking in terms of quitting.

I disagree. It's the programs we use that are the addiction--not the OS.

So we are averse to changing the OS because those programs will not function the same or else we have to purchase new ones.

Yeah, losts of people just use their browser, a word processor, and a spreadsheet so you'd think big deal. They're all the same.

Well, users get used to doing things a certain way--just like programmers--and don't want to relearn something that's worked perfectly well for them for literally years.