TABLE OF CONTENTS
- Getting started: How to transition to agile
- Benefits of agile development
- Problems with agile development
- Agile project management methodologies
- Choosing tools for agile development
- Agile development requirements gathering
- Testing in an agile environment
- More agile issues, considerations
Benefits of agile development
What are the pros and cons of agile development? No software development methodology is without its challenges, but teams who move to agile development usually see a number of process improvements. Topping the list of improvements, according to our survey respondents, are faster time to market and increased productivity. (Blueprint Systems, for example, completed six releases in its first year of using agile methodologies, compared to a previous average of one release every year and a half.) Other benefits of switching to agile include fewer software defects and reduced software development costs.
According to Steve Whatmore, a Java architect at Toronto-based LYNXDev Inc., the benefits of agile have included "not only time to market with our solution -- which is substantially faster than what our clients expected with the size of the team that we assigned to the project -- but also the robustness of the system as a whole." Whatmore added, "Due to the fact that the base architecture has essentially been tested and retested from day one of our development cycle, we have been able to flush out a lot of the defects that would otherwise be found very late in the game with a waterfall approach."
In addition to fewer errors, Danny Allen, director of security research at IBM Rational, said Agile processes can also help improve security. "Applications developed using an Agile process end up being more secure," he said. "You're not only doing functional testing early and often, but you're also doing the automated security testing. You're catching mistakes early."
Agile methods can also benefit software outsourcing providers. Outsourced development projects face many of the same obstacles as in-house projects -- time and cost overruns caused by scope creep, products that don't meet expectations. Who should take the hit for these problems -- the customer or the contractor? Some outsourcers are addressing this issue through agile methodology, resulting in shared risk, more predictability, and products that better meet customer needs through ongoing collaboration.
Watch the below video to learn why agile design is one of Jon Kern's three keys to software development.
Problems with agile development
Agile isn't perfect. While organizations are reaping benefits with agile, practitioners acknowledge there are some challenges to this style of development. Respondents to SearchSoftwareQuality.com's 2008 survey cited communication as the top Agile challenge, followed by documentation. Resistance to change and tool integration were also cited as challenges. And agile can be particularly challenging when you're dealing with distributed teams.
In addition, there are a handful of major agile testing perils you'll need to watch out for. Make sure software testers realize they'll need to adjust their mindsets. As an agile tester, you are expected to test without having formal requirement documents, to test in real time, to test changing code, to test on changing requirements, to automate most of your tests and to be a part of a close-knit team. Issues to watch for include waiting for a specific build (in agile, you need to test constantly); trying to test everything manually (using automation is key); and losing sight of the big picture.
Continue to the next section: Agile project management and agile tools.
Dig Deeper on Agile Software Development (Agile, Scrum, Extreme)