In the past decade, application development has undergone a revolution: the Agile Manifesto, cloud computing development platforms and the explosion in the iPhone, iPad and Android device markets have changed everything. But despite the many changes in application development, most IT organizations are doing an excellent job with their core development processes, according to a recent survey by Serena Software Development. It's the "bookend" processes-requirements management and the delivery of software into production-that need help.
"The survey findings strongly suggest that IT organizations can "forget" about core development processes, and instead, spend more time focusing on the "bookends" of ALM-requirements management and release management," says Miguel Tam, senior product marketing manager of Serena Software. Serena, a specialist in IT orchestration, recently conducted a survey on application development processes with nearly 1,000 IT professionals across a range of industries. "These findings are consistent across all industries that were surveyed. Nailing what customers really want and actually getting it into their hands without many bugs are the things that IT organizations need to focus on going forward."
IT Has Application Development in Hand
The survey found that respondents across all industries rated development the highest of the four major application lifecycle management (ALM) processes, with an average score of 2.77 on a scale of 1 to 4, with 4 being "excellent."
Development encompasses the process of developing and managing software, including QA collaboration, development audits and peer review. Demand management-the process of capturing and reviewing demand, including submission of requests, approval of project proposals and customer status updates-also received generally high marks, with an average score of 2.74. Release management entails the process of deploying releases into production environments, including release automation, post-production fixes and component reuse. The average score came in at 2.65. Finally, requirements management-the process of defining and managing requirements, including stakeholder collaboration, requirements reuse and traceability-trailed the list with an average score of 2.58.
Communication with the Business Is a Sticking Point
While the scores for all areas were above a theoretical average of 2.5, Tam notes that it is the areas where the IT organization has to communicate and work with the rest of the business that consistently receives the lowest ratings.
"I'm not suggesting you can just forget about development completely and go on your merry way," Tam says. "You need to continue working with your developers. But looking across the IT landscape, if you're the CIO or the VP of applications, you want to really look at how you interact with the business."
Digging in a bit deeper to specific tasks within the development process, Tam says respondents had the best opinion of their ability to get code quickly packaged for deployment once QA approves it. The survey also found that IT organizations have few rejected turnovers of code from QA to development and there are a reasonable number of turnovers to QA once code is initially frozen.
Tam says this indicates development and QA are actually working quite well together, even though they are popularly portrayed as antagonists. "Agile's principles of creating more collaborative teams and having QA involved earlier in the software development lifecycle are definitely helping development across all industries," he says. "This is especially impressive considering the growth of new development technologies and platforms, especially with mobile and cloud."
Requirements Management Needs a New Focus on Process
While application development tasks all received high marks, the same is not true of the requirements management process.
"What is clear from the survey responses is that the "front end" of application development needs a lot more help when it comes to collaboration," Tam says. "This is true not only with external stakeholders, but with other development teams as well, especially when it comes to requirements reuse."
The three lowest scores among the requirements management processes were given to requirements clarification/approval, requirements reuse and requirements collaboration. Tam points to a number of potential culprits that are making these areas particularly tricky: a plethora of new form factors with mobile platforms, lack of standardization on tools and the sheer number of stakeholders involved.
"Unlike core application development, the survey responses for requirements management show that IT organizations are still struggling with the fuzzy front end," Tam says. "While all is not lost, IT organizations should invest in putting a process-not more tools-in place that helps everyone share requirements more easily across a complex technology and organizational landscape. By finalizing requirements early, IT will be able to deliver better software to the business."
DevOps Needs Revised Process, Automation
The actual process of getting apps out to customers, DevOps, also needs work, Tam says. Delivering working software quickly is a key principle of the Agile Manifesto, but the survey suggests IT organizations are struggling to make it happen. The respondents indicated they are doing a good job following a standard release process across applications and quickly fixing post-deployment issues, but they are faring less well when it comes to reducing post-deployment bugs. And deploying on time without issues was the lowest rated score across all the survey questions at 2.15.
"These survey results for release management seem to indicate that even with more frequent Agile sprints, deploying apps into production has not necessarily turned into a free-for-all," Tam says. "However, that is not the whole story. The extremely low score for deploying on time without issues clearly shows that the "standard" release process is not working well. So, while enterprise IT is adhering to a standard release process, it's only the ability to quickly fix issues that is keeping application releases on track."
Tam recommends that IT organizations revisit their current release process, which is likely geared for more infrequent deployments, and revise it for the new world of faster deployments. He also suggests automating as much of the release process as possible to eliminate manual errors, instituting controls like a release vault to ensure that the correct code is deployed and implementing appropriate approval processes.
To help IT organizations understand where they stand, Serena has created an online assessment tool that allows organizations to benchmark their application development and delivery processes against all survey respondents, as well as comparing specific ALM processes to industry peers.
Thor Olavsrud covers IT Security, Open Source, Microsoft Tools and Servers for CIO.com. Follow Thor on Twitter @ThorOlavsrud. Follow everything from CIO.com on Twitter @CIOonline and on Facebook. Email Thor at firstname.lastname@example.org