ICSE2000 home

ezine home


Grady Booch's "Future of SW"

Editor's Day 3 Message

Bricks and Dots with Chris Horn

Talking with Grady

Workshop 9: CBSE

Workshop 11: SEotI

Doctoral Workshop

Workshop 10: WSEF

Workshop 14: WISE 3

ICSE 2001 Preview

CNET.COMS Polls

Ten Visionaries of the 90's

Success Stories

Trends

Unsung Heroes

Student Volunteers

ICSE 2002 Pre-Preview

Poll Results

WOW Memories, Thanks

Even More Real Action from ICSE2000!

Window on the World

Issue 3


Back to WOW home

Grady Booch on The Future of Software Engineering

By Mike Wing

Grady Booch began with an analogy to building dog houses, houses, and skyscrapers. Building a doghouse is easy and can be done with minimal modeling, simple processes, and simple tools. Building a house is more complex. He would not trust a contractor to build his home without proper modeling (blueprints), well-defined processes, and power tools. Most web sites appear to be built out of sticks and straw, yet the tools used are not nearly enough to build a skyscraper.

Conventional wisdom states that software is disposable, structured processes are burdens, and software engineering is irrelevant.

Many forces drive software: cost, schedule, compatibility with legacy systems, performance, capacity, scalability, reliability, security, failsafe, fault-tolerance, resilience (ability to deal with constant change in requirements), and technological churn. Software projects can be caught between incompatible forces, leading to disaster. Conflicts between the need for speed and quality, between hacking and engineering, between content and components are hard to resolve.

We should keep in mind that the economic logic of modern science forces a rational process.

The Future of Software

Alan Kay said that the best way to predict the future is to invent it. Grady decided that he could not know as much about the future as he wanted, so he sent email questions to 600 individuals (many were ACM award winners) and got responses from more than 100.

The future of software engineering must be understood in terms of the future of software. On the technical side, software will change in many ways, influenced by the growth of complexity (managerial and technical), the emergence of the unwired web, virtural presence, continuously evolving systems, and the elimination of computational barriers. On the social side, software will be influenced by the dot-com distraction, the digital divide, and the web as battle ground.

The Future of Software Engineering

The history of software engineering is mapped by advances that enable us to master complexity.

Computer-based Software Engineering will dominate. Standard interfaces are good, reuse is deceiving, activities include construction, codification, and harvesting of patterns.

  • Web mechanisms will increase.

  • Reference architectures will be codified. They will include structure, behavior, and style. "Architecture first" is a good way to minimize risk. UML is a good tool for software blueprints.

  • Well-defined processes will be accepted. Process will focus on the necessary people and artifacts. Mature processes are not necessarily good processes.

  • Frictionless surfaces will be important. Tools will codify best practices and facilitate collaboration.

  • Professional engineering will rise. An agreed-upon body of knowledge will be codified. Engineers will become accountable and professional.

  • Legals issues, such as patents and liability, will be dealt with.

  • Scarcity of skilled workers will affect the industry.

  • Growth of non-programmers will move software out to the general public.

The two main conclusions are that software development is hard and the best we can do is reduce friction. Please contact Grady Booch at gbooch@catapulse.com if you have any questions.

 

[Aside: In an interview afterwards, Grady mentioned that a number of respondents showed disdain for software engineering, even though the overall tone was of excitement and optimism. CTOs claimed to struggle against hacking. The CTOs working for companies that make money cared about software engineering, while other CTOs did not.]

 

Designer and Webmistress
Caroline Kehoe