The No-Cry Software Development Methodology

August 20, 2010

Trendy software engineering management is a lot like trendy parenting, and both are harmful:

It strikes me as silliness to think that one can create a universal methodology for something as complex as potty training an individual toddler, or releasing any arbitrary piece of software. But I do think it's great to draw on the experiences of others when trying to solve a problem.

However, there is no value in a methodology if it does not solve a real problem. On the contrary: any tactic, strategy, methodology or philosophy that you adopt which is not solving a specific problem that you are having right now is a problem in and of itself. As with bloated code, a bloated process adds inertia and inflexibility. The more bloated it gets, the harder it will be to solve the unique problems you're going to face — for which there is no prescription.

In other words, methodologies are great frameworks for consistently misunderstanding how to solve a problem. (via @rands)

Related: Wikipedia's article on the Chrysler Comprehensive Compensation (C3) System, the massive mid-90s project for which Kent Beck invented the Extreme Programming (XP) methodology. Today XP is a widely accepted software development methodology, even though the C3 project that spawned it is widely considered a failure.