Agile Development: Where and When Should It Be Used?
With the launch of Windows 10 in 2015, Microsoft declared that this would be the last ever roll out of a new version of its operating system. Henceforth, all development of the platform would be iterative and deployed on a rolling basis. This has been greatly facilitated by the advent of the ‘always on’ nature of internet connectivity. Gone are the days of receiving a CD in the mail with a new software update which had to be installed on every computer in an organisation.
The old way meant that development teams had to batch a whole set of changes into a major new release for the purposes of being able to deploy a new version. Now, constant and better internet connections have meant that development teams can release a new version of a piece of software in the knowledge that any issues can be patched immediately, rather than waiting until the next release. Further, the rise of software as a service (SaaS) has changed the game in terms of what customers and stakeholders expect from software.
One approach to this new, fast-paced world of software development is agile development. TheAgile Manifesto was put together in 2001 and is based around the following values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
These values inform12 key principles of agile development. In summary, these are about regular delivery of software updates, collaboration between product owners and developers, frequent communication across the team, keeping things simple, a commitment to quality and an undertaking to continuously reflect and improve on working practices.
Where and When to Use Agile Practices
Agile development methodologies are great if:
You have a development team continually working on a project
You can assign a product owner to work closely with the development team and ensure they can regularly review progress communicate with the development team and input into ideas throughout the development process
You want to rapidly iterate ideas and test them out with stakeholders and customers
You want the ability to try new things, be daring and learn from mistakes, if necessary
Agile development methodologies are less ideal if:
You want to produce a detailed brief, conduct up-front discussion and then have no involvement until the development entirely meets the brief and have minimal input from the business during the process
You want to fully plan a brief and work out all the details before starting any development
You have a project in mind which has a lot of dependencies and features which need other features to be fully implemented in order to progress
You don’t want to put new development output live unless it is 100% finessed
Your business or organisation’s procurement systems require a fully determined output up front
Supporting Agile Web Development with FlexMR
One of the key strengths of agile development is that you have the opportunity to develop, test, tweak and iterate throughout the development process. Showing your work to users of the system early and often is one of the key principles of agile.
Online research tools such as FlexMRare very helpful in this regard. You can specially recruit a team of users to test a key new feature development, or even better, run a continuous panel in which you can gather constant feedback on the usability new features as they go live.
Report CardMR in particular is a useful tool for acquiring feedback from users as it allows you to ask a mixture of qual and quant questions on a scheduled basis. This ensures continuous feedback from users as your development progresses. Or for more in-depth feedback, why not discuss users’ experiences of a particular new tool or feature using an online focus group tool such asLive ChatMR?
Either way, the key to using FlexMRto support agile development is to get your users to test little and often.
What Researchers Can Learn from Agile Processes
Why not go one step further and apply agile principles to your research? Online research is ideally suited to an iterative, flexible research process where you can build on the findings of one piece of research by quickly reacting to follow up to obtain more depth or scale. An online research platform and working methods which allow for a flexible research schedule can expedite this (see my previous blog:How Flexible Can Online Market Research Be?).
Using FlexMRfor your online market research means you have a range of tools at your disposal. You can launch a survey, then if this raises further questions, run a diary study to find out more about what consumers actually do. Or, if an issue is raised in a forum thread which seems to have been encountered by several participants, run a quick poll to quickly quantify the issue.
Agile Development Meets Agile Research
A final word of warning: the key to successfully using agile research techniques to test development is stakeholder engagement. This is important because your stakeholders need to be in a position to constantly make changes to the product and pass these changes to users for iterative testing. A common failing in projects where these methodologies are used is that updates can’t really keep up with the pace of feedback from users, leading to frustration from participants and a lower volume of testing throughput.
However, with engaged stakeholders who are empowered to learn from user feedback and continuously implement user feedback, agile development and research practices go hand-in-hand to produce fantastic user experiences.
How have agile development methods worked for your team? How have you integrated agile research methods into your working practices? Let us know in the comments below.
Annette translates traditional research requirements into cutting edge online tools with an intuitive UX. She integrates feedback into the FlexMR platform to maintain our position as a world leading technology provider.