Achieving Success in Large, Complex Software Projects

Insurance Networking News, July 11, 2014 | Sriram Chandrasekaran, Sauri Gudlavalleti, and Sanjay Kaniyar

Using cross-functional teams to break down silos improves the chances of success when building highly complicated systems.

Large technology-led transformation programs are important for creating business value and building strategic capabilities across industries. With many organizations spending around 50 percent of their IT budget on application development, the ability to execute software programs faster and at lower cost is essential to success for many transformation projects. However, the quality of execution leaves much to be desired. A joint study by McKinsey and Oxford Uni­versity found that large software projects on average run 66 percent over budget and 33 percent over schedule; as many as 17 percent of projects go so badly that they can threaten the very existence of the company.

Some large-scale application-development projects are particularly challenging because of their complexity and high degree of interdependency among work streams. This category includes development of systems for telecommunications billing, insurance claims, tax payments, and core retail-banking platforms. These projects demand close coordination due to frequent refinements to the original user requirements.

Such coordination can only happen by breaking down the traditional silos in application development—an achievement often associated with the agile software-development approach. But agile is mainly applicable to smaller projects with minimal up-front definition of user requirements that can be cleanly divided into a number of parallel subprojects.

Elements of iterative application-development practices inspired by agile, lean and test-driven development will certainly play roles in complex projects such as the ones mentioned above. However, in our experience, these approaches need to be combined with a new organizing construct featuring cross-functional teams. We call these teams “work cells.”

The three disciplines involved in application-development projects—business analysis, development, and testing—often work in silos, with inefficient information flow between them. This is a minor issue in small application-development projects, but the communication problems grow larger in big, complex programs. The risk increases further when, as is often the case, project managers and business analysts, who gather user requirements for the applications, are located onshore while developers and testers are offshore. This slows communication because there’s limited overlap of working hours between time zones. What’s more, information is exchanged among disciplines in a hub-and-spoke manner. For example, the code defects identified by testers are assigned to a senior application developer, who then assigns the coding rework to the rest of the team. These multiple handoffs can result in miscommunication and bottlenecks.

Click to access full article

Leave a Comment