5 steps to making agile development work
- By Rutrell Yasin
- Jul 08, 2013
Agile development is billed as an iterative, incremental process that can cut down the time it takes build and deliver IT systems to business users. So what makes an agile project successful? How do development teams avoid pitfalls that could sink a project? Various experts from government and industry involved in agile development offer a few tips.
1. Establish strong relationships between IT and business customers. In order for agile to work there has to be a strong relationship between the IT department and contractors with the agency’s business customer. The business customer, in turn, has to be able to work where there aren’t clearly defined processes, according to Jeff Newlin, vice president and general manager of OutSystems, a provider of agile technology.
The Army’s Architecture Services Division within the Software Engineering Center has deployed the company’s platform for the rapid development and migration of applications to a private cloud. The business user has to accept the fact that during agile, priorities will change. The business customers also have to become acquainted with a new way of interacting with IT during the course of the project and IT has to respond quickly to adapt to ongoing changes, Hewlin noted.
2. Start small. “It helps to start with a targeted implementation where you focus your initial effort on projects and teams that are receptive to agile,” said John Edgar, vice president of information technology with the U.S. Postal Service, which has standardized on agile development. Getting some initial success helps to sell the concept internally and demonstrate the value of change. Additionally, if managers decide to establish agile as the development process for the organization, make sure it is done across the board. Just focusing agile on one or two projects while using other methodologies for others won’t give an agency the critical mass of skill sets and the different processes that agile follows, Edgar said.
3. Focus on architecture up-front. On the technical side, there needs to be an up-front focus on architecture. “You have this loose-tight thing going on,” where development has to be loose to allow for creativity and constant adjustment, said Peter Eichorn, director of technology at NIC Inc.
Architects with NIC and the Texas Department of Public Safety mapped out the technical architecture of a new vehicle safety inspection system, putting it on a whiteboard where they could look at relationships with other disciplines already in place such as service-oriented architecture. Not much can be done in the first two-week sprint, but focusing on the architecture upfront gave the team guiding principles and a way to put the solution in a box. The team now had a foundation where they could say, “We have to play within this space, let’s not get out of the box.”
4. Deploy automated testing tools. USPS deployed software development automation tools to improve development practices as the agency adopted agile. This allowed developers to do code review on a daily basis, looking for security defects or coding issues and integrating these tasks into the agile process, Edgar said.
Automation testing tools also give feedback to developers and testers during the development cycle. Rather than waiting until you have written 100,000 lines of code and are at system test stage, automated tools correct issues during the sprint cycle instead of at the end of the project, Edgar said.
5. Take a comprehensive approach. The most important thing is to take a comprehensive approach, to think about this from the architecture and product level, said Bob Monahan, business unit director at Dynamic Research Corp., an information services provider. Agencies using agile must develop a product roadmap to understand all of the teams’ functional needs and business expectations. The roadmap has to be continually updated. Let that drive your development. The tasks that can’t be done right away should be kept in a good product backlog folder. “In the end, this is a long-winded way of saying, ‘Don’t sacrifice the design at the altar of expediency.’ Agile doesn’t mean fast. Look it up. It just means agile,” Monahan said.