Programming Toolkit

Lessons Learned
 
Books
 
Sites
 
Messages
 
About
 
 
 

 
Saturday, 04 September 2010
Books for the Practicing Programmer

Pete McBreen
Software Craftmanship: The New Imperative
2002 (Addison-Wesley); 187 pages
A great book! Well-written, fun to read. McBreen argues (as do the Pragmatic Programmers) that writing software is a craft, not a process which can be mechanized through time and motion studies. He illustrates this through a metaphor: writing software is much closer to the process of designing a car than it is to that of assembling cars from pre-manufactured parts according to a fixed design.
McBreen advocates creating software through small groups led by master programmers, with perhaps two journeyman (skilled, but not masters) and two apprentice programmers per master. In this system, as in similar systems which used to exist in smithing and other crafts, the apprentices learn by doing, and the masters are continually pushed to excel by teaching, and by their visibility as leaders of small shops.
McBreen also suggests that current software engineering practices, particularly the use of large teams of intermediate-skill programmers, lead to poor quality. Large teams provide anonymity, so that individual programmers do not have personal responsibility for their work. Large teams also hamper communication, both with the customer and within the team. Further, within large teams, junior programmers achieve scant attention from the busy senior programmers, and little or no feedback from the end user, and so improve their skills slowly at best.