At last month’s BayCHI meeting, Alan Cooper of Cooper gave the best talk I’ve seen on software development, Ending the Death March. Unlike the rest of the BayCHI talks, this one wasn’t recorded or podcast. (Aside: please email BayCHI and Alan and ask them to make this available.)
However, Allison at BayCHI did take good notes.
Key point number one: bad software is a business problem, not a technology problem:
Death marches happen, according to Alan Cooper, for three reasons related to managers, who are still (1) using intuition instead of methods to run businesses, (2) letting programmers intimidate them with techno-babble, and (3) assessing the economics according to industrial era logic.
Key point number two: engineering organizations are badly structured:
The Triad of Entirely Separate Roles in Software Construction:
Programmer â€“ Interaction Designer â€“ Design Engineer
Programmer: Construction for shipment
Interaction designer: design for humans
Design engineer: Design for CPUs
Product managers are not Interaction Designers. If they are professional interaction designers, they arenâ€™t doing the work of product managers. Keep those roles clear, Cooper said emphatically.
These three software construction roles are separate roles and have separate career paths. Cooper reiterated that the roles are fundamentally different: “You donâ€™t graduate from one to the other, and one is not more advanced than another.”