Is There An Analogy Between Software Development And Family Dynamics?


A provocative piece in the Wall Street Journal asks if the principles underlying the Agile software development method might be applied to family dynamics. It’s an interesting notion. Agile development came about as a reaction against a top-down, unresponsive method sometimes known as “waterfall.” In the waterfall approach to software development, the presumption is that everything is known up front (at the top of the falls), including all the customer requirements, technical challenges, and user experience design. Software then gets written in the no-going-back, unidirectional quality that waterfalls have, and you get what you get at the bottom of the falls.

Some of the smart folks that write software noticed that this method frequently failed for any number of reasons: when those initial customer requirements proved to be incomplete or changed along the way, when unforeseen technical challenges arose, and when actual users provided feedback on the software (“Uh, this feature is hard to figure out!”). The result was the Agile Manifesto, with four principles:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

So what’s the connection between writing code and family life? Just like software development teams (in which quick daily meetings are known as “scrums”), families sometimes fail to be smooth-running machines. The analogy is an imperfect one for many reasons, perhaps foremost because software teams general work together towards a single goal while individual family members usually have their own individual goals. That said, some of the tools in the Agile toolbox seem useful in any household:

The collaborative spirit   A key in agile software development is supporting other team members, rather than working in competition. Obvious benefits for a family, where siblings occasionally sport less-than-supportive attitudes towards one another.

The retrospective   Agile teams get together regularly to review the past weeks’ work, asking “What went well?” and “What went badly?” and how can we do more of the former and less of the latter. While this may well happen organically over the dinner table, it’s not a bad idea to regularly consider how things are going in a semiformal process.

Feedback   Software developers using the Agile method look frequently for feedback from stakeholders inside their organizations, as well as outside. Based on the feedback, they can make small course corrections and thus have a much higher chance of hitting their ultimate target. Similarly, family members of all ages benefit from feedback- learning to honestly listen and act on feedback is a skill unto itself.