Wednesday, December 10, 2003

Software

An excellent multi-blog discussion on the future of software development. Start here and don't miss the comments.

Even this non-programmer found it interesting.

Aaron describes enterprise software as "disgusting." I doubt that this is mainly the fault of the developers. This software is usually sold as a "solution". Yet Thomas H. Davenport pointed out, ("Putting the Enterprise into the Enterprise System," Harvard Business Review, v.. 76, number 4, July/August 1998, pp. 121-131), "An enterprise system, by its very nature, imposes its own strategic logic on a company's strategy, organization, and culture." Further, enterprise systems "pushes a company toward full integration" and centralization. I suspect many implementation problems and software modifications represent an undeclared war between centralizers and decentralizers-- undeclared because the internal proponents of enterprise software never make explicit that the goal is to bring the "cowboys" in the business units and business functions to heel.

David Gelernter did identify a mindset by developers that rings true in my experience. He wrote that "when technical people write books, they tend to assume that 'a nontechnical audience' means children." I have often felt that is exactly how many technical types view the people on the business side. Such a viewpoint hinders communication and helps add to the complexity of software.

This is also as good a place as any to plug Gelernter's book Machine Beauty; Elegance and the Heart of Technology. He has a lot to say about computers, software, and the reason for their complexity and users's frustrations. A sample:

"This much is clear: (1) most computer technologists are oblivious to beauty; (2) the best are obsessed with it; (3) the public has a love-hate relationship with beauty in computing; and (4) beauty is the most important quality that exists in the computer world, when all is said and done. "

"Beauty is decisively important to computer technologists because, first, virtual machines are always in danger of drowning in complexity. Hardware machines are held in check by physical reality. {Software builders are free from this limit]... So they go wild; a single programmer alone at his keyboard can improvise software machines of fantastic or even incomprehensible complexity."

"This huge complexity is responsible for software's permanent crisis: if you build a big enough program, it is almost impossible to make it come out right. Studies show that the average commercial software project takes 50% longer that it was supposed to, and one project in four is abandoned.... The 'beta test' is the industry's admission of failure-- the procedure whereby a product that is known to be flawed, but is nonetheless as good as the manufacturer can make it, is handed to expert users in the hopes they will find some of the remaining bugs."

"technology's single most important obligation is to get out of the way. The point of machinery is to make life easier."

"we do get from our fancy computers a tiny fraction of the value they are capable of delivering: we are a nation of Ferrari drivers tooling around with kinked fuel lines at fifteen miles per hour."


No comments: