Once associated only with small application development projects and teams, the Agile methodology is moving upstream into large-scale enterprise development. As the methodology’s popularity has increased to over half of development projects – according to 2010 CapGemini and SearchSoftwareQuality.com surveys – CIOs, systems architects, project managers and other development thought leaders are finding ways to use Agile practices effectively in complex enterprise applications. Along the way, however, they are encountering challenges.
Table of contents
Reporter Colleen Frye notes issues brought up in SSQ’s annual survey exploring Agile adoption:
“But the more things change, the more they stay the same, an adage that some of the survey results support. For example, respondents cite the top challenges of adopting Agile processes are some age-old issues: documentation, communication and resistance to change.”
In this e-guide, experts deliver advice on handling many of the problems that result from working with enterprise-scale projects in an agile environment. Planning, collaboration, ALM tools, outsourcing and transitioning from a traditional environment are all areas that need to be carefully considered before embarking on large-scale Agile. If your organization has already made the switch, but is experiencing growing pains, this e-guide will help get you back on track. Whatever stage of Agile transition you are in, the following expert advice will give you the information you need for successful project implementation.
Scaling agile software development to large organizations successfully requires concentrating on scaling agile practices and workloads, writes software engineer and consultant Nari Kannan in this article. He offers advice on how to learn agile practices and spread that knowledge to the rest of the organization. Also, Kannan explains the differences in organizing work and people when moving from small Agile projects to large enterprise, mission-critical application development.
Whether your application is big or small, the first step of any project is planning. In this tip, Agile expert Lisa Crispin gives some good advice about planning and collaboration on agile projects of any size. However, with large-scale or complex applications, there needs to be extra considerations in your planning efforts. Most likely the project will consist of multiple teams, and the makeup and assignments on those teams will be crucial to the overall success of your large project. Collaboration between teams will be an additional challenge. The larger the project, the more coordination between teams and integration points there will be. Find out what advice Crispin has for strong project planning in a multi-team agile environment.
You’ve done your planning and now the development work has begun. How is it managed? In this tip, SSQ contributor and software consultant Chris McMahon describes the importance of workflow and application lifecycle management (ALM) on large-scale Agile projects. While sticky notes and index cards may work for small teams, once you grow to a larger team with distributed members, tooling becomes important. McMahon describes some of the most important attributes of a strong ALM tool-suite including flexibility, transparency and collaboration throughout the lifecycle.
What about testing large-scale projects? What return on investment can you get on your test investment? In this tip by consultant David W. Johnson, different test approaches are discussed, along with some advice from Johnson on how to maximize your return on investment. Johnson looks first at key factors including experience, agile approach, existing legacy code-base and long-term ownership of the code. He then creates a table outlining return on testing investment of reviews, scripted testing, exploratory testing and traditional automation testing. Take a look at this tip to find out which type of testing Johnson suggests yields the highest return in each situation.
Though outsourcing is traditionally not a recommended approach in Agile environment, many organizations have outsourced teams, yet still want to operate in an Agile manner. Is it possible? Consultant Nari Kannan says that while there are challenges, a set of best practices can be used to address the problems appropriately. In this tip, Kannan suggest a hybrid methodology, collecting requirements up front, but not in the same rigid manner as a waterfall methodology would require. Kannan suggests additional best practices for teaming. Communication, change management and quality assurance when working with outsourced teams on an Agile development project.
Though setting up a Scrum shop with a small team is somewhat straight forward, transitioning from a traditional environment to a Scrum environment becomes much more challenging for large teams. Infrastructure, tooling and organizational culture must be taken into account. In this tip from consultant Matt Heusser, an approach is described that will help the transition go more smoothly. Heusser suggests starting small and then taking an iterative approach to the transition, evaluating along the way. This methodology of transitioning itself could be described as Agile since concepts of iteration, retrospectives and continuous improvement are used.
How to avoid the struggles of DevOps at scale
Why pain is your ally when it comes to scaling DevOps