By: Clay Shannon
Abstract: Steve McConnell, the author of several important programming books, such as "Code Complete", "Rapid Development", "Software Project Survival Guide", and "After the Gold Rush", answers questions about his current projects
BDN: In "After the Gold Rush", you recommend a certification system for software developers. Is there anything new on that front? Has your thinking changed, or are you even more concerned about this now?
Steve: Yes, I still recommend voluntary certification as one of several prongs in a comprehensive program to increase the level of professionalism among software developers, development organizations, and the industry at large. I think it's easy to get emotional when the topics of certification and licensing come up, and there's a lot more smoke than fire in most of the arguments. I also recommend codifying the body of knowledge that makes up software engineering, improving the educational infrastructure, providing more support at the organizational level for improved skills and more support for using good practices, and lots of other steps to improve the industry. Frankly, I don't completely understand why people focus on my comments about certification as much as they have. There are lots of pieces to the puzzle, and certification is just one of several pieces.
BDN: Do you think this will ever really happen?
Steve: It already is happening. The IEEE Computer Society launched a Certified Software Development Professional exam about a year ago, which has been well received. The Project Management Institute has had a Project Management Professional certification for many years that is not specifically targeted at software, but which many software project managers have obtained. There are various testing and QA certifications, too. Of course there are numerous other technology-focused certifications that have been around for a long time.
Steve: Yes, I will have a second edition of After the Gold Rush, to be titled Professional Software Development, published in August 2003. I'm still working on a book on software estimation, though that has been a low priority background task.
BDN: Will there be an update of the classic "Code Complete", perhaps with more example Delphi and C# code, pointers on working on N-tier systems, or web services, or any of the technologies which have emerged since you last updated the book?
Steve: Yes, but it will be another year before the second edition comes out. I'm quite pleased that I think about 90-95% of the content of the first edition is still on target 10 years after its initial publication. The specific programming languages used in the examples are starting to make the book look dated, but the underlying principles that the examples illustrate are as applicable as ever. And that really was the whole point of the book in the first place -- there are programming principles that transcend languages and transcend the technologies of the day, and it's worth a programmer's time to learn what those principles are. The fact that so much of Code Complete is still relevant 10 years later really proves the point.
BDN: Where do you live, exactly? If you are not native to that area, where are you originally from?
Steve: I live in the Seattle area, in the shadows of both Boeing and Microsoft. Both of those companies have very strong software development cultures, but cultures that are stylistically at opposite ends of the spectrum. I think it's been beneficial to me to be forced to understand how two companies can be so different and yet still both be so successful.
BDN: How did you get started in programming (How were you introduced to it, when did you realize you wanted to pursue it as a profession)?
Steve: I originally took programming classes in college because I thought they were easy and because I didn't know what I wanted to do when I graduated. I thought if I took one class a term I could get a job as a programmer when I graduated that would allow me to pay the bills while I figured out what I really wanted to do. Basically, that's what I did, and I spent the first couple years out of college trying to figure out what I really wanted to do. One morning I woke up and realized that I was *already* doing what I wanted to do -- programming.
BDN: How many years experience do you have as a programmer?
Steve: I've been working in the software industry for 19 years.
BDN: What languages do you work with? Which ones do you currently utilize?
Steve: I've done most of my programming in C++ and Visual Basic.
BDN: Would you recommend a career in programming to young people today?
BDN: What courses would you recommend they take? What languages/technologies should they key on?
Steve: I would recommend that a young person think hard about enrolling in one of the many undergraduate software engineering degree programs that has sprung up in the past 5 years. I would expressly not focus on languages/technologies. I think the programs that focus on software engineering generally tend to focus on more long-lasting principles, and those will be what serve a programmer for a long chunk of his or her career.
BDN: Which software project/product that you have participated in are you most proud of?
Steve: Obviously, I'm proud of my books. I wrote most of the code for SPC Estimate Professional 2.0, which won a Software Development magazine productivity award. I'm proud of that work because I think it showed that I'm not just writing about software from an academic perspective, but when I apply the principles I've written about the results are literally award quality. I worked on Windows 3.1 on True Type, which was very cool technology for its day. I'm also proud of work I did on some vertical market applications that are less well known.
BDN: What project[s] are you currently working on?
Steve: My focus the past few years has been on building and running my company, Construx Software. I wear the hats of both CEO and Chief Software Engineer at Construx, and we've been producing many things that I think have the potential to be extremely helpful to the industry. We've produced a professional development ladder that both individuals and organizations can use to provide meaningful, structured career paths for most software professionals including programmers, testers, analysts, and project managers. We've produced a software engineering framework called CxOne that provides numerous tools that software professionals can use to jumpstart and accelerate their process improvement efforts. Many of these resources are downloadable from our website at www.construx.com.
BDN: What is the name of your businss?
Steve: Construx Software. www.construx.com.
BDN: If you weren't a programmer, what do you think you'd be?
Steve: I think it would be cool to be a civil engineer. You'd get to build roads, bridges, dams. You'd get to sit in those huge earth moving trucks. You'd get to use dynamite. How can you beat that?
BDN: What is your favorite programming book?
Steve: Maybe Psychology of Computer Programming by Gerald Weinberg.
BDN: Steve, thank you for your time, thoughtful answers, and your great books (especially Code Complete).