Succeeding with Agile

Milan Brankovic
4 min readNov 3, 2020

Most of the key factors described here can be applied to the whole team, but the focus of this article is on testers/testing.

#1 Use the whole team approach

When the whole team takes responsibility for testing and quality, a mix of variety of skill sets and experience levels will work together to overcome the challenges which might arise.

By making testers truly part of the development team, understanding of the requirements become clear, product becomes more stable, code quality increases, etc. as they provide a unique viewpoint that will promote delivery of a great product.

The whole team approach involves constant collaboration, where everyone takes responsibility for testing tasks. Having diverse viewpoints can only mean better tests, greater code coverage and delivery of highest possible business value.

#2 Adopt an agile mind-set

By being part of an agile team, programmers do tests and testers do whatever they think might help the team deliver the best possible product. An agile testing attitude is: proactive, creative, open to new ideas and willing to take on any task.

Testers are always ready to collaborate and willing to help both the team and the business succeed. They focus on the team's goal (keeping in mind customers satisfaction) and do whatever they can to help everyone do their best work.

Testers always try the simplest approach first when working on a test, they seek for help when necessary and experiment with new ideas. In order to create an impactful product one must: focus on delivering value, communicate directly and often, remove obstacles for others, be flexible and remember that agile development is people-centric.

#3 Automate regression testing

It is practically impossible to succeed without test automation. All of the time will be spent in doing manual regression testing, and there will be no time for exploratory testing that will uncover the flawed or breaking behaviours of the product.

By using tests to guide development, the team has short feedback cycles and safety net that regression suites provide. Test automation is a team effort, and the whole team should be a part of discussion to choose appropriate tools for each test type. Use the test automation pyramid to help automate different types of tests effectively.

Changes doesn't come easy, but with right tools and skill sets the burden of manual testing will free up the time for the team to do the best work, experiment with new stuff and incorporate the highest value into the product.

Manual tests are not the only thing which can be automated. Builds, deploys, integrations, setups and other test types (web service tests, GUI tests, load tests…) are also areas where by investing time for automation, product will be/become more reliable, robust and exceptional product.

#4 Provide and obtain feedback

Feedback is a core agile value. It helpsa team to stay on track. Testers should give feedback (tests are failing, defect/s is/are found, new idea about implementation, explain customer requirements, etc.) and also ask for feedback (is this the right way to test the flow, is team getting enough information to fix defect, etc.) in order to drive the quality of the product.

Feedback should not only cover day-to-day questions and tasks, but also cover other areas as much as it can. In order to deliver the best product testers need to question the whole product and processes. By being part of the design sessions, checking for examples, doing exploratory testing, questioning unit/component tests and demystifying performance, load and security tests testers will make an impact in understanding and clearing out the requirements as well as bringing quality out of the door.

Remember that giving feedback timely, early and often is way better than providing it once and late.

#5 Build a foundation of core practices

By using the practices listed below the team will be able to deliver high quality software:

  • continuous integration/deployment
  • separate test environments
  • technical debt management
  • zero bug management
  • work incrementally/small releases
  • combining coding and testing

A single practice can make a difference, but combination of multiple is even better. Keep in mind that some of the practices don't work well in isolation. Refactoring cannot be done without automation tests which will verify that the work is done without side effects (new defects, missing behaviour, etc.)

#6 Collaborate with customers

Direct communication to customers is encouraged. The team should do as much as direct communication as possible. But the greatest value that testers can contribute to agile team is helping customers clarify and prioritize requirements and turning the requirements into executable tests.

Often, customers don't really know what exactly they need or want until they can see, feel, touch or use it. Testers are there to help the customers to clear out their requirements by: asking questions, using examples and providing multiple viewpoints.

#7 Look at the big picture

As testers are closely communicating with customers, they tend to look at the big picture, as programmers usually have the focus on technical implementation of requirements. It's easy for everyone on the team to narrowly focus only on the task at hand, but having the big-picture viewpoint adds a huge value to the task. By questioning relations of new feature (or defect) to the whole system makes the team become aware of the possible implications of the change.

--

--

No responses yet