Take appropriate risks The essence of great cooking is not simply to follow a recipe verbatim every time,but rather,to try to push the boundaries by substituting differ- ent ingredients and adding new twists. The same goes for software develop- ment.No one size fits all,and despite
Too much time on the interface and too little time on the underlying product is the equivalent of spam á la mode.
Learn how others are achieving systems and networks design and development that are dependable and secure to the desired degree, without compromising performance.
This new journal provides original results in research, design, and development of dependable, secure computing methodologies, strategies, and systems including:
• Architecture for secure systems • Intrusion detection and error tolerance • Firewall and network technologies • Modeling and prediction • Emerging technologies
Publishing quarterly Member rate: $31 Institutional rate: $285
Learn more about this new publication and become a subscriber today.
www.computer.org/tdsc
IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING
42 IT Pro November ❘ December 2005
the promises of pattern-based soft- ware engineering,for example,or of reusable frameworks like model-view controller,there are few ready-made solutions for the masses.Every time you vary from the standard frame- work slightly, or recombine design patterns in a new way,you are taking an appropriate risk. This is a good thing,and the sheer essence of soft- ware engineering.
Know when to throw it away I once watched a cooking challenge show in which five contestants each prepared three dishes based on a theme ingredient.One of the contes- tants burned a dish.Rather than try to salvage a lost cause,she chose to serve just the two dishes.Surprisingly, the judges rewarded her for not vio- lating a primary rule of cooking— never serve something that isn’t perfect.Software development could learn from this tenet.Sometimes it’s better to discard a first-generation
system or prototype rather than car- rying over bad decisions into the next version.Of course,it costs a lot less to throw away a meal than to scrap a major software project,but then the risk is equally unbalanced:The con- sequences of serving that slightly imperfect meal might be far less severe than serving a software prod- uct with possibly fatal flaws. So what are the lessons for soft- ware engineering? Both remark- able software and superb cooking are a mix of science and art;of repeti- tion and innovation;and of theory and intuition.From this blend comes prac- tices that aim to balance quality,scale, and time pressures.Perhaps the most essential lesson is that there are no shortcuts to success.Über-practition- ers like Bob Martin and Martin Fowler make software architecture,construc- tion,refactoring,and testing look sim- ple,but that’s because they’ve put in hours of practice and follow the same principles as master chefs: Keep the
kitchen clean,have the best tools and quality ingredients,learn and practice basic techniques, and have basic recipes,but be prepared to adapt them. Eliza Acton expressed the essence of cooking and software engineering eloquently more than a century ago: “It is not,in fact,cookery books that we need half so much as cooks really trained to a knowledge of their duties”(Modern Cookery for Private Families, Fairleigh Dickinson University Press,1845).There’s noth- ing I can add except, “On to the kitchens,and bon appétit!”
Phillip A. Laplante is an associate professor of software engineering at Pennsylvania State University.Contact him at plaplante@gv.psu.edu.
For further information on this or any other computing topic,visit our Digi- tal Library at http://www.computer. org/publications/dlib.