The following “quick-wins” offers some relatively easy-to-implement initiatives that could help an organization with the transition from a Waterfall way of working and drive it towards a more Agile approach.
Physical proximity: Communication is the very foundation in Agile! To facilitate constant interaction, it is a necessity that the team sits in the same room.
Definition of Done: Clearly defined guidelines that indicate when a feature is consider being ready for release. Here is a list of what i consider to be a basic “Definition of Done”.
Unit Tests: Unit tests are a very important part of the test harness and are key to agile development. The unit test coverage should be measured and ideally cover 85% or more of the code. The tests should be peer-reviewed before considered done and QA should also (ideally) provide feedback.
Automation: Automation can be an effective and time saving way of executing tedious regression test cases. However, it is important to set the scope right. Advanced test cases are generally too complex to automate and too time consuming to maintain. Rather create a simple smoke test suite that easily can be automated and maintained. The higher complexity, the more maintenance is required which might lead to poor ROI. Keep it simple!
Agile Testing: Scripted testing alone is often too time consuming and ineffective in an agile environment. Set up a pilot project to introduce and investigate Exploratory Testing/Session-Based Testing.
Continuous Learning: In order to improve test competence and encourage a culture of continuous learning; start a test related book circle; send out weekly links to interesting test topics followed up by discussions; implement test retrospectives; start a weekly team meeting that focuses on sharing skills.
Early QA involvement: Testers should take an active part already when new features are being discussed in the sprint pre-planning meetings and provide feedback from a testing perspective as well as starting to work on test scenarios.
Risk-Based Testing: Risk-Based Testing provides an effective way to decide what to test, how much, and in what order. All test should be prioritized based on how likely the feature under test is to fail and what impact failure would have on the end-user.
Pair Testing: A very helpful technique for troubleshooting and a great coaching tool.
Workshops: To foster the notion that quality is the whole team’s responsibility (not only the testers), setup workshops where the whole team (developers, requirement specialist, testers) discuss quality and how to improve it.
Visibility: Make the test work visible. Let people know what is being done to improve testing. Display quality metrics and progress in a public location.
Mnemonic for the key points: Valued Warp (Visibility, Agile, Learning, Unit, Early, Definition, Workshop, Automation, Risk, Pair)