In recent times, it's become apparent that a major contributor to success or failure on software projects has to do with team communication, both internally and externally. From a systems view, creating great software is about taking expert thinking and domain knowledge, and then efficiently moving it around the team in short feedback loops. This rapid-fire collaboration and conversation is what blends the minds of a team in both an additive and combinatorial process to create high-quality killer apps. Killer apps are essentially software models of the thinking mind, in order for an otherwise dumb device to mimic the logic of intelligence beings.
Three key ingredients often determine project success or failure: domain knowledge, deadlines, and dialog. You can think of them as "The Three Ds." Domain knowledge is obvious. It takes smart people with the right knowledge to create the right stuff. Deadlines are also critical - there has to be adequate time to make things right; under time pressure, haste makes waste. What is also vital is the last D - Dialog. In fact, if you examine the tenets of approaches like Agile software development, you find that collaboration and communication is an essential part of its philosophy, explicitly stated in the value statement known as the Agile Manifesto.
Creating good software is hard, especially under pressure. It gets even more difficult when what you're trying to build is complex or when members of a team are dispersed, which is often the case in a flat world. Recently, as a management consultant, I had the opportunity to compare projects at two case study companies: one a remarkable success, the other a dismal failure. In many ways, the outcomes could be traced to how well or poorly they handled the Three Ds.
Since I tend to favor happy endings, let's consider the failure first. In this story, the company brought in a new "green" team from an outside contractor to augment its staff for a medical IT application being rushed to market. These developers were learning about this product and its features for the very first time. But a critical problem existed: key players inside the company who knew the products had quit and were unavailable to help. Much of the brain of this company was hollowed out, as in a lobotomy because of low morale and attrition.
Score on Domain Knowledge: LOW
Next came the subject of Dialog. Members of the new team were on distant shores, a 12 hour time-zone difference. Processes necessary to move critical knowledge from one continent to another were not well established. They also skipped a critical co-located release planning meeting because it was perceived that "there was not enough time." Thus, face-to-face relationships and a well-knit team weren't established -- quite different compared to a cohesive group where members know and trust each other like family.
Score on Dialog and Communication: LOW
Lastly, time pressure can often make or break a project. Just enough pressure and there's a sense of challenge and manageable urgency, enough to cure an occasional dose of complacency. Too much time pressure and you get what's known as a Death March project (the term is made famous by the book by Ed Yourdon), wherein teams feel hopeless resignation from trying to do the impossible in too little time.
After a few months, the project was cancelled. It never got off the ground because of the looming deadline. As Tom DeMarco and Tim Lister state in another excellent book, Adrenaline Junkies and Template Zombies, "Time removes cards from your hand." This team never had a chance. The deadline was set first, and it was fait accompli that low domain knowledge and ineffective dialog would manifest in lower productivity. They missed every project milestone in quick succession. Management lost faith, pulled the plug, and the VP was asked to resign.
Score on Project: CANCELLED
Interestingly, projects like this often don't make it into industry statistics. When projects disappear, no data is left behind. But what's sometimes left is the lore among those who witnessed it. And in this project and many others is the lesson, "When domain knowledge is low, and dialog and communication fail under an impossible deadline, failure is virtually guaranteed."
Somebody (‘most everybody) Does it Better
Stories like this have played out many times in my 20 years as a software industry consultant. But what about the blazing successes? Indeed, were it not for these, work would get pretty depressing. What if you were a doctor and most of your patients died because they didn't heed your advice? You stay on because other times, there are those who do and they thrive and prosper, creating excitement, hope, and optimism.
One company that comes to mind does all the right things compared to the previous example. It dominates market share, prospers in lean times, and is by all accounts a fabulous place to work. Imagine routinely building killer products with twice the quality and in half the time, at a $1.3 million dollar lower cost (without off-shoring) compared to industry benchmarks. Imagine that management - all the way to the CEO - recognizes this success, expands work at home, growing innovation and the teams that produce it, while rewarding employees. What did they do around the Three Ds?
They kept their best and brightest people and executed a conscious strategy to hold onto their veterans. Domain Knowlede: A+. They built a brand new environment and pooled these bright minds into one large room, pairing programmers side by side, co-located with business analysts and doing the work in short feedback loops. Communication: A+. Group leaders were given autonomy when it came to release planning and estimating, using techniques designed to make sure that there was the right combination of project scope and the dates to deliver. Deadlines: A+.
Manage all Three Ds with aplomb and you get success, not failure, and a team that loves what they do and where they work. What an innovative idea!
Michael Mah is the Managing Partner at QSM Associates Inc., a company that helps solve deadline and budget challenges on software projects, through use of state-of-the-art software measurement and estimating tools combined with techniques from modern negotiation science. He is also Cutter Consortium's director of the Measurement and Benchmarking Practice and senior consultant for the Agile Software Development & Project Management Advisory, and the Sourcing & Vendor Relationships Advisory. His writings (and blog) can be found at www.qsma.com.