About Steve
Steve is the Principal Consultant at Construx Software. His professional career has spanned more than four decades over which he has worked as a programmer, analyst, designer, and researcher for organizations that include Lawrence Livermore National Laboratory, Boeing, and Rockwell Collins. At Construx, Steve applies his deep knowledge and experience in object-oriented development, model-driven requirements & design, software engineering economics, software development process, software project management, estimation, and software quality to help a wide variety of clients deliver high quality, high value software on time, with minimum investment.
Steve has a Master’s of Software Engineering from Seattle University and a B.A. in Computer Science from the University of California, Berkeley. He has been an adjunct professor in the Master of Software Engineering program at Seattle University, and is the author of numerous articles and technical papers as well as two books: Return on Software guides software professionals in making decisions and helps them appreciate the business consequences of the decisions they make. How to Engineer Software, shows how software can be developed and maintained under a true engineering discipline analogous to the discipline in civil engineering, chemical engineering, mechanical engineering, and aeronautical engineering.
Steve has been a long-time contributing reviewer of the IEEE Computer Society’s Guide to the Software Engineering Body of Knowledge and is author or co-author of four chapters in Version 4 of the guide. He is a Certified Software Development Professional (CSDP) and the past chair the Certification Committee of the IEEE Computer Society.
Contact
Links
What Steve Says About Himself
Travel—My first commercial airplane ride was in 1977 on a Japan Airlines B-747 from San Francisco to Tokyo on what was the first leg of a nearly two month long business trip to Korea. At that point I was hooked. The ability to see the sights around the world (I stopped counting around-the-world trips after my 10th), experience and enjoy the history and diverse cultures of this planet, meet and make friends on almost all continents, is one of the high points of my life. We are a deeply interconnected and interdependent world. The sooner we accept and take advantage of that fact, the better off we will all be. And the food?
Foodie—How could you say you’ve experienced any depth of a culture without trying its cuisine? I love to sample local dishes, find my favorites, then reverse-engineer recipes so I can cook them for family and friends. My personal recipe book includes dishes from varied destinations including Brazil (Feijoada, Caiprinha), China (Szechuan Chicken, Black Pepper Beef), Egypt (Koftas), Germany (Bratwurst, Spaetzle), Hungary (Csirke Paprikas), India (Kerala Chemmeen Fry, Basmati Rice Pulao, Dhal Makhani, Biryani), Korea (Sam Gae Tang, Nakkji Bokkum), Lebanon (Kastaletta), Malaysia (Rendang, Penang Curry), Mexico (Molcajete, Tamales), Moldova (Mamaliga), Puerto Rico (Mofongo), Spain (Paella), and Thailand (Pad Thai, Tom Kha Gai). With respect to local delicacies my philosophy is, never ask, What is that? Only ask, What was that? If it hasn’t killed the locals, it’s highly unlikely to kill me, so why not give it a try?
Home brewing—What better to accompany all that wonderfully diverse cuisine than fresh-because-you-made-it-yourself beer? I’ve been home brewing since 1994 and have a 10 gallon all-grain rig with three kegerator taps in my house. While I appreciate most beers around the world, my favorites are the Belgians.
Retro-computing—I started writing code in 1975 on a Digital Equipment Corporation PDP-8/e. That very same computer now sits in my office and can be seen in the background of my on-line video work. I also own the PiDP-8/I, PiDP-11/70, IMSAI 8080esp, and am anxiously awaiting the PiDP-10. What’s the saying, In software, if it’s more than 10 years old then it must be obsolete? Through retro-computing, one quickly realizes that what many think of as modern programming practices actually date back far earlier than appreciated. To name just a few: ReST (2000), Scrum (1995), Design patterns (1987), Object-oriented design (1984), Modularity (1979), Lean (1975), Encapsulation/information hiding (1972), Interactive debuggers (1972), Object-oriented programming (1967), Exceptions (1962), Test-driven Development (1959), and Functional programming (1958). In fact, use of i, j, and k as loop indices dates back to 1954.