Software development models have been talked about a lot recently, especially with the emerging popularity of DevOps and CI/CD, but Agile remains the most widely used model according to our 2017 State of Testing Report.
With this in mind, I asked our in house Agile expert and Product Owner of QAComplete, Jeff Martin, a few questions to get the scoop on Agile best practices.
1. How important is planning to a successful Agile program?
Planning is an often under-estimated, but critical, part of any Agile program. Starting with a structured and easy to understand framework for Agile program execution is essential as it allows the team’s efforts to be expended on more valuable activities. Every minute spent on process is a minute that could have been spent developing or testing. However; Agile is meant to be flexible so care must be exercised to ensure that there is not over-planning. Another essential part of planning is tool selection, as care must be taken to ensure that all tooling supports the process goals and does not add additional maintenance or integration overhead. (Tweet this)
2. How important is communication and collaboration?
Communication is vital to any team-based project, but is even more important on Agile teams. The back-and-forth and often consultative nature of an Agile team demands effective and efficient communicators. Too much communication is a problem that can arise and reduce effectiveness, but it is far better a problem to have than too little. Communication is easier to reduce than scale up. Software-based collaboration, comment, and review platforms can provide a valuable common communication method that reduces unnecessary communication and allows communication to be formally tracked. (Tweet this)
3. How important is testing to project success?
Testing is as important and valuable for an Agile project as the actual development. It is however necessary to ensure that testing efforts are focused on providing feedback to the team, not just finding defects – or similar defects will occur every cycle. Verification testing is of course necessary, but validation is of paramount importance within Agile. Requirements and features must be tested such that not only is the functionality working as designed, but that the functionality meets the end-user’s needs. Focused testing like this demands systems that enable tracing manual and automated Tests and their results to the original requirements. Test Automation at both the UI and API layers need to be use-case based to fully realize this traceability; often this is most easily achieved using solution that support recording based test case generation as they enable quick capture of workflows. (Tweet this)
4. What areas do teams often overlook when adopting Agile?
Often the “early” parts of Agile are not focused on as much as they should be. Bringing peer review processes into play for requirements, code, and other documents very early in the cycle reaps large benefits later. This is because the earlier a problem is identified, the less time it takes to resolve. This communication and review further helps inform later activities and when done well can reduce time spent on tracing issues. One specific example I see becoming increasingly common is clean, clear, collaborative definition and documentation of APIs using tools such as Swagger and Swaggerhub – defining this early has a very large impact in Agile teams and enables faster, higher quality, releases. (Tweet this)
5. What's the best way to win support from management?
Early, demonstrable, and measurable success is the surest way to win support. Because of this, care needs to be taken when starting the first few critical iterations that all benefits have clear measurements that are then communicated far and wide.