There is a growing trend across many industries to return to more ‘traditional’ production methods - from the craft beer revolution to coffee machines to surfboards, there’s more interest than ever in firms that not only design but also produce their goods. In contrast to Fordist mass production, consumers are now interested in more specialized, locally produced and individualized experiences.
Since 2001, there’s been a similar revolution in the way we build and design applications and software. For a long time, our approach to development took after the Fordist approach: software was seen as no different to other mass-produced goods and would often be sold in stores as such. The design and development process followed the ‘waterfall’ methodology with different, siloed teams carrying out distinct activities in the production process. Initial coding, requirements gathering, design and software testing would all be carried out by different teams, just as Henry Ford’s factories saw specialized teams repeating the same activities day in, day out.
Agile development has grown enormously in recent years as an alternative method of software development. By encouraging a project management approach that emphasizes collaboration, flexibility, transparency and responsiveness, proponents of Agile claim it makes end products more user friendly. Crucially, Agile breaks down the silos which traditionally separated testers and other team members and encourages them to work closer together and merge roles.
So, in an Agile world, what exactly is the role of a software tester?
What is Agile development and what do testers do?
Agile development is an approach to IT project management, but it doesn’t refer to one specific set of processes and procedures - there is in fact a range of Agile methods, including Scrum and XP (‘Extreme Programming’). Fundamentally, Agile offers a much more cooperative approach to managing projects. Key characteristics include:
- Daily communication between team members across the project. Rather than separating the production process into different stages where teams never speak to one another, Agile emphasizes constant discussion and ideas sharing.
- A customer first approach. This means team members should constantly focus their energies on delivering a product which corresponds with what the customer or end user needs.
- Iteration. This translates as regular, small improvements to the end product, rather than large, time consuming builds
In the past, testers would receive a build from the development team. The testers would then go about trying their best to break the tool by finding bugs and asking questions of the tool’s organization, navigation and user journey. Testers would ask questions like “what happens if I do this?”; “what happens when I do that?”; “why do I have to do things this way?” in order to find unexpected bugs and issues.
In an Agile IT project by contrast, testers are involved in the project throughout - from requirements gathering to development to the testing of different iterations. Agile testers need to have a much more general understanding of the build process as they contribute to the production throughout. So, what do you need to be an Agile tester?
The qualities of an Agile tester
In a waterfall IT project, the tester is only involved at one isolated stage of the process. In an Agile project, however, they treat communication, collaboration and transparency as the key components to create for a better workflow. Agile values the following traits above all else:
- A good communicator. It’s essential to be able to listen to and express the ideas of other project members. Agile testers need to be able to summarize their ideas clearly in a way different stakeholders can understand - from professional developers to the end user.
- The ability to see the bigger picture. Agile testers cannot simply spend days focusing on finding problems in the build, because this is just one step in an evolving project. Testing must always focus on delivering an excellent product to the customer.
- Be a generalist when it comes to technical knowledge. While testers don’t need to know how to write code, they should at least be able to read it. Agile testers need a decent understanding of the product they’re using so they can discuss this to a reasonable level of detail with the development team.
- Embrace change. The Agile method in general means testers must be able to respond to change effectively to keep up with the constant improvements that the product, brief and targets all undergo.
- Courage. The Agile method means testers cannot simply ‘hide away’ while testing an app. They need to be prepared to make evidence based arguments at meetings on a daily basis.
Great apps happen by design
No matter what the results seem to point to, not every organization will find the Agile approach suits them. If you’re able to build great products that still satisfy your customers, it’s not always necessary to adopt a new approach. However, if you are an organization that values both customer and employee satisfaction, then it is difficult to argue against adopting the Agile approach. Addressing the elements of collaboration and effective change, Infragistics’ employ elements similar to those of an Agile tester in their rapid prototyping and UI Controls. Letting you create multiple iterations of your products faster and more effectively than ever before.
Want to build your desktop, mobile or web applications with high-performance controls? Download Ultimate Free trial today or contact us and see what it can do for you.