As discussed in my previous blog post, the main advantage with Agile software development is its ability to adapt to changes in the users’ needs/wants, but what gives it this advantage? One of the fundamental tenets of the Agile Manifesto is to put people over processes, that is to work closely with the consumer instead of blindly creating a system and hoping it fits. While traditional models aim to adopt some of these practices, they only do so at the beginning of the system development life cycle. Agile continuously incorporates them throughout the process.
One way to discover the needs of the end user is by carrying out surveys and interviews. This allows the developer to not only find out exactly what the end user needs, but also what they would like in their system. The benefit to doing face-to-face interviews is that, due to their personal and conversational nature, they can often yield information that would not have been initially anticipated.
Prototyping is also a strong way of trialling individual aspects of a system by allowing the people who will be utilising the system to evaluate it before a large amount of time and resources is invested in its development. The users can then tell the developers what they like and what they don’t, and this feedback can be used to adapt the system to more accurately reflect their needs.
In summary, Agile incorporates the expertise of the customer in order to develop the best system possible for their needs by working closely with them, getting their feedback, and providing them with samples of the end product to try out.