Columns

Books in brief: Are you experienced?

There’s long been a debate in the software development community over whether software is an art or a science. Neither point of view seems to have served us well. Projects still come in late and over budget.

Author Steve McConnell argues that instead of thinking about software developers as "computer scientists," we should think of them as software engineers. He points out, "Scientists learn what is true, how to test hypotheses, and how to extend knowledge in their field. Engineers learn what is true, what is useful, and how to apply well-understood knowledge to solve practical problems." Given those definitions, wouldn’t you rather have software engineers developing your next product instead of computer scientists?


Part of the problem, he says, is that while students are trained in computer science, we expect them to be software engineers. After graduation, they need several years of on-the-job training, with good supervision, to acquire the skills needed to produce quality production code. Because few firms can afford this type of training, "some software developers work their entire careers without acquiring this knowledge."

McConnell also has some interesting things to say about the way we structure our dev teams. In the engineering realm, he notes, there are engineers and technicians to support them.

He sees the same thing happening in software development. Eventually, he says, software engineers will be responsible for the design of a software system, while the technologists will do most of the actual coding.

Finally, McConnell tackles those issues associated with organizational and industry practices. Perhaps one of the thorniest issues is how to deal with low-productivity programmers. This requires more effort than simply doing performance reviews. You must properly structure your dev teams, provide them with tools and create an environment that will help them to thrive.

Although the book is not specific about how to proceed or what steps to take, it gives individual developers, and those responsible for their organization’s software, a framework that will help them to approach the challenges they face.

"Professional Software Development" by Steve McConnell. Addison-Wesley Professional, Boston, Mass. ISBN 0-321-19367-9. 272 pages.

About the Author

Dan Romanchik is an engineering manager turned writer and Web developer. His current passion is amateur radio. You can read his amateur radio blog at www.blurty.com/~kb6nu.