We attended the British Computer Society's (BCS) event on Testing Agile Projects at Sophos's offices in Abingdon. The presenter was Dr. Stuart Reid, CTO of TSG. Dr. Reid is the convenor of the Working Group for ISO/IEC 29119, the draft software testing standard. The talk was billed as providing a variety of options used to integrate testing into Agile projects. However it actually gave a good overview for newcomers to the Agile development process and how important testing is within the cycle. Some interesting points to come out were:
- Dr. Reid believes that Agile requires continuous integration, which cannot be done correctly without automated regression testing and appropriate tools to support it. Without this each sprint would accumulate a 'testing debt' until more of the sprint cycle is dedicated to testing than to developing;
- Dr. Reid regards Test Driven Development (TDD) as industry best practice for Agile and believes strongly in risk-based testing;
- Test automation is essential for successful TDD and regression testing;
- Integrating the development and testing as closely as possible provides the greatest benefit;
- Agile 'stories' should have Non Functional Requirements (NFRs) defined;
- Results of a survey by Scott Ambler (2008) that showed the perceived success rates of Agile teams by level of team member distribution. Whereas co-located project teams were perceived to be successful on 83% of projects this dropped to 72% for near located teams and 60% for far located (including some offshored development) teams. The results can be found here;
- Specialists skills, like performance testing, usability or security testing, are not needed full-time on each team and therefore can be shared between teams;
- Dr. Reid also suggested that there are many open source tools that would meet most developers' requirements.
One of the questions that was raised, probably from a Sophos attendee, was about the suitability of Agile for shrink-wrapped software. This was a good question as the traditional Agile development model assumes that the business customer is also the end-user, whereas in a commercial off-the-shelf (COTS) software provider the business customer is actually product development or sales and marketing. Dr. Reid answered this well, suggesting that although the customer may not be the end-user of the software they are just as able to decide what is needed in the product and whether the delivered software after each sprint meets their requirements.
A follow-on question enquired about what would happen if an Agile development project didn't manage to deliver all the functionality in the number of expected sprints compared to a traditional waterfall approach project. As was pointed out how does this differ from a waterfall project?: either the release date slips or the functionality is limited, with the corresponding impact on marketing materials.
In all this was a useful and informative talk from a respected and knowledgable speaker. Sophos hosted the event well and the talk was attended by a good turnout (somewhere above 100), with many attending from Sophos.