Critical.
Authoritative.
Strategic.
Subscribe to CIO Magazine »

What Grady Booch Has Learned About Complex Software Systems

The father of UML and design pattern enthusiast shares his fundamentals about developing, delivering and deploying big software projects.

A handful of uber-programmers are immediately recognizable to most software developers, often on a first-name basis-the way that other communities might recognize "Britney" or "Oprah" without further explanation. These individuals shape the way programmers design and build applications, by identifying process improvements or designing life-changing tools.

One unquestioned person on that list is Grady Booch. His primary influence on object-oriented programming was as an original developer of the Unified Modeling Language (UML); he's also written several influential books, such as Object-Oriented Analysis and Design with Applications. And he's been chief scientist at Rational (now part of IBM) since its founding in 1980; the most recent formal title is chief scientist for software engineering in IBM Research. Here's his advice about making big software development projects a success.

1. The fundamentals never go out of style

Big, long projects can become grim, and in the worst cases they can appear to become a death march. But hyper-productive projects, says Booch, never forget the four fundamentals:

The key in creating useful abstractions, says Booch, is to use an object-oriented view of the world, rather than an algorithm-based viewpoint. Think about things, he says, instead of processes.

Separation of concerns, says Booch, means, "You don't put the dishwasher in the bathroom." The specifics depend on the requirements, but he advises, "Semantically related things should be clustered together and kept separate where they are not."

Design fundamentals also include avoiding an architecture that's too "lumpy." You don't want to design a house with an enormous kitchen but just one bedroom, for instance.

Don't underestimate the importance of keeping things simple, he warns-or the difficulty of getting there. "It requires energy to develop simple things," explains Booch. It's worth the investment to ensure that every software release includes a step in which developers give attention to simplifying, he says. But it is an investment. Management has to be willing to throw out features even if it cost money to develop them.

2. You need a regular rhythm of releases

Every project needs a heartbeat, says Booch. "Establishing that rhythm provides predictability and sustainability." Regularity lets everyone plan on what functionality or features will be injected into the next round, he says, regardless of release frequency.

3. Focus upon growing executable architectures

IT managers need to govern around the architectural decisions rather than raw, running, naked code. "The code is the truth," Booch says. "But the code is not the whole truth."

Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.

More about: IBM, Viewpoint, Wikipedia
References show all
Comments are now closed.
Related Whitepapers
Latest Stories
Community Comments
Latest Blog Posts
Whitepapers
  • A Holistic Approach to your BYOD Challenge
    More and more enterprises are seeing significant benefits from allowing employees to choose the device they use to get their jobs done, and are adopting bring your own device (BYOD) initiatives. While the BYOD trend increases flexibility and productivity, it introduces a host of new challenges for your IT administrators. Click for more!
    Learn more »
  • Benefits of Deploying Microsoft Exchange Server 2010 on Dell Compellent with Data Progression
    Messaging and collaboration platforms have emerged as mission critical applications, consuming a large portion of IT spending for organisations. The rich features in these applications have significantly changed the messaging requirements and needs of today’s information from anywhere with any device, the result is an ever increasing demand on storage systems both in terms of capacity and bandwidth. Many organisations are rethinking their storage strategies to meet the demanding criteria and to handle the future requirements. Read more.
    Learn more »
  • Saving Time and Money with Savvy Use of Flash in Automated Storage Tiering
    In a sluggish economy, getting the best ROI on every IT dollar spent is the top priority for almost every business. Storage budgets in most IT environments continue to remain flat or are capped as a percentage of the overall IT spend, while data storage requirements continue to grow at an unsustainable pace. Download now to learn about the benefits of using flash in automated storage tiering.
    Learn more »
All whitepapers
rhs_login_lockGet exclusive access to Invitation only events CIO, reports & analysis.
Recent comments

Computerworld
ARN
CFO World
CMO