Editor’s Note: This is a continuation of our core conversation on “Great Connections Lead to Great Ideas.” Yesterday, Ishita Gupta shared how environment is more powerful than willpower. Today, Bob Gower shows how good conversation makes good software.
Failure is the norm in the software business.
According to a survey of some 8,000 products by the Standish group only 35% of software projects are delivered on time, on budget and with all requested functionality. They go on to note that an astonishing 64% of features are rarely or never used.*
*The Standish Group, 2006 Chaos Report
In other words, most software sucks, and most software projects fail.
Why is this? It’s not because people don’t know how to write code. Nor is it a lack of good ideas. It’s a lack of conversation.
I recently observed about 150 engineers (and others) at a major health care provider talk. For two days they were in animated conversation, and the entire time I thought, “These folks are probably building something good.” It’s when I walk into an office and see everyone sitting quietly in cubicles that I start to get worried. Let me explain why.
Good software requires good communication.
Most software is complex–so complex, in fact, that it requires hundreds, if not thousands, of people to design, test, build and maintain. The sheer number of people involved is enough to cause problems. Add to this the fact that building software is a highly creative process, and things start to get very fragile.
To say that the work of a software engineer is writing code, is like saying the work of a painter is smearing color on canvas. Or that the work of a teacher is standing in front of a room speaking. It’s not what they do; it’s how they do it that’s important.
Great communication is part of that “how.”
A software engineer (or designer, architect, tester, or anyone else involved in the process) needs to know for whom they are building and what that person is trying to accomplish. They also need to know what else is happening on the team, what happened before in the code, and what might happen next, all while solving tough conceptual problems. This requires an intense amount of communication.
A mentor of mine once told me that all breakdowns happen because a conversation didn’t happen and that great managers make sure the right conversations happen at the right time. If you want to improve the quality of software (or any complex product for that matter), the place to start is improving the quality of conversation.
More about Bob: With over 15 years experience in the software and digital agency businesses, Bob Gower has coached and directed UX design and product development for companies ranging from early-stage startups to the Fortune 100. He is passionate about collaboration, emergent design and team happiness as a key performance indicator. In 2010 Bob joined Rally Software where his focus is coaching Agile transformations at large enterprises.