The Best Laid Plans


Software developers always begin a project with the best of intentions and the loftiest of promises. Like an alcoholic heading to a party, we swear that we’ll avoid bugs through careful design and that we’ll document our code thoroughly. We’ll test it all the way through, and we won’t add features after the code freeze. Above all, we’ll make realistic schedule estimates and then stick to them. (“That operating system feature doesn’t do exactly what we want, but I can write a better one in a week, so there’s no need to modify our program requirements. Two weeks at the outside. Unless I hit a snag. Oh, will we need testing time, too?”) A robust, useful application (sobriety) is within our grasp, all we have to do is stay disciplined. No Solitaire at all. At least not until after five. OK, one game at lunch. “Dang, I lost; just one more to get even, OK? Hey, how’d it get to be 4:00?” Every single project I’ve ever seen has begun with this rosy glow.

Software developers delude themselves.

Has any developer ever kept these promises? No. Never has, never will. We know in our hearts that we’re lying when we promise. It’s a disease. Like addicts, there’s only one way out (not counting dying, which everyone does at exactly the same rate: 1.000 per person.) To write successful Internet applications, we of the software development community need to do what recovering addicts do and embrace at least two steps on our path to righteousness:

  1. Admit that we are powerless—that our lives have become unmanageable.

  2. Come to believe that a power greater than ourselves can restore us to sanity.

Application programmers must admit that we are powerless over Internet infrastructure. It makes our projects unmanageable. We cannot build it; it takes too long, it costs too much, and we don’t know how. We must not even try, for that way lies sure and certain doom. In the extremely unlikely event that we do accidentally write some decent infrastructure code, our competitors who don’t will have long since eaten our lunches, and breakfasts and dinners besides. You don’t build your own highway to drive your car on, nor do you install your own power generating equipment (unless you lived in California in early 2001).

You can’t afford to build infrastructure yourself.

Fortunately, your Internet application’s infrastructure requirements are the same as everyone else’s, just as your requirements for highways and electricity are similar to those of many other people. Because of this large common need, governments build highways and power companies build power plants, which you use in return for a fee, either directly through tolls and bills, or indirectly through taxes. Governments and utilities reap large economies of scale because they can hire or develop the best talent for accomplishing these goals and because they can spread the development cost over many more units than you ever could.

What we really need is for someone to do for distributed computing what the government does for highways (maybe not exactly what the government does for highways, but you get the basic idea). As recovering addicts believe that only the power who created the universe in which we compute can restore their lives, so developers need a higher power in computing to provide our Internet infrastructure, restoring our development efforts to sanity.

You want someone else to build it and for you just to use it.




Introducing Microsoft. NET
Introducing Microsoft .NET (Pro-Developer)
ISBN: 0735619182
EAN: 2147483647
Year: 2003
Pages: 110

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net