Enterprise software development can be an unwieldy process as teams work to meet a broad range of business demands and coordinate among disparate parts of the organization. The nature of enterprise application delivery is such that there is frustration on the part of both business-side executives and IT departments, according to a recent Forrester Consulting study, conducted on behalf of EffectiveUI. The study found that just 39 percent of business decision makers believe their internal IT organizations are capable of delivering projects on time and within the designated budget.
Among the reasons development does not meet business expectations, according to IT leaders surveyed for the same study, are constantly changing business demands and user requirements (cited by 56 percent), teams trying to do too much at once (50 percent), a lack of clear executive direction (34 percent), a lack of development talent (34 percent) and a lack of stakeholder consensus (32 percent). To overcome these obstacles, organizations may need to move toward more integrated processes, Forrester concluded.
“Having developers, marketing, business, etc. under one team has helped them move faster … they are doing well with their complex applications because of this organizational structure,” one survey respondent explained.
Leveraging automated testing for faster development
Enterprises have struggled with on-time and on-budget delivery of applications for years, and a number of project management practices have emerged as attempts to address common organizational shortfalls. A 2012 McKinsey study identified four major drivers of project failures: lack of focus or unclear objectives, content issues such as technical complexity, lack of skills and execution issues such as unrealistic schedules. To combat these issues, the firm recommended organizations work to build the right teams before starting on projects and establish strategic goals early on.
On a process level, organizations can improve their rate of output by shifting from a waterfall methodology to a lean, agile or continuous approach that establishes smaller goals and leverages automated tools such as static analysis software to continually evaluate changes and correct problems as they occur. The McKinsey report juxtaposed the development efforts of two organizations: One went far over budget and never finished by building a complex backend architecture for its application without focusing on end user functionality goals. The other combined a methodology focused on delivering a functional product with approaches such as source code analysis to avoid critical defects and deliver an error-free product on time.
“Large-scale IT projects are prone to take too long, are usually more expensive than expected, and, crucially, fail to deliver the expected benefits,” McKinsey’s Michael Bloch, Sven Blumberg and Jurgen Laartz wrote. “This need not be the case. Companies can achieve successful outcomes through an approach that helps IT and the business join forces in a commitment to deliver value.”
Using tools like static analysis software can enable companies to move toward more integrated, flexible development methodologies while ensuring quality. By catching errors as they emerge, the cost and time expenditures of going back to make changes during a testing phase can be avoided, helping projects meet initial delivery goals and avoiding much of the friction between business and tech units in the organization.