The second installment of the Artima JavaOne interview series is about the importance of design in preventing future problems. Cameron Purdy is founder and CEO of Tangosol, maker of the enterprise Java data grid software, Coherence. (Shortly before JavaOne, Oracle announced that it would acquire Tangosol.)
In this interview, Purdy discusses the importance of design in software, and contrasts a design-first approach with the recently fashionable implementation-first attitude.
Purdy notes that it is relatively easy to get to the point when a piece of software works. It's much harder to try to anticipate future problems and create a design from the get-go that will allow software to gracefully solve those yet unforseen problems:
There are two different schools, if you will, of software. One is the solution school, and the other is a more general-purpose, a horizontal approach to building software. In the solution mindset, you're often building something that's solving a specific problem, and that's the only problem that [solution] really has to solve. The amount of foresight you have to have ... is relatively small.
In terms of building something that'll be used to build solutions... or has to solve a lot of problems that are potentially unforseen, the design process becomes much more important...
The purpose of design and design reviews ... is to constantly ask yourself, "What are the problems that could be coming up in the future that would challenge this design, that would make this design impractical?"
In this interview, Purdy provides examples from his own work on the design of Tangosol's Coherence product where up-front design paid dividends down the road.
|Cameron Purdy, Founder and CEO of Tangosol talks about the importance of design and the purpose of design reviews. (6:22 minutes)|
Bill Venners is president of Artima, Inc. He is author of the book, Inside the Java Virtual Machine, a programmer-oriented survey of the Java platform's architecture and internals. His popular columns in JavaWorld magazine covered Java internals, object-oriented design, and Jini. Bill has been active in the Jini Community since its inception. He led the Jini Community's ServiceUI project, whose ServiceUI API became the de facto standard way to associate user interfaces to Jini services. Bill also serves as an elected member of the Jini Community's initial Technical Oversight Committee (TOC), and in this role helped to define the governance process for the community.
Frank Sommers is Editor-in-Chief of Artima Developer. He also serves as chief editor of the IEEE Technical Committee on Scalable Computing's newsletter, and is an elected member of the Jini Community's Technical Advisory Committee. Prior to joining Artima, Frank wrote the Jiniology and Web services columns for JavaWorld.