What is Agile
Agile is an approach and mindset primarily used in software development that is based on small and regular delivery of working software by self organising teams of people. There are many frameworks which can be said to be Agile, but by far and away the most common framework utilised is the "Scrum" framework, so named because of it's similarity to a team of rugby players all working towards the same goal. Similarly, in Scrum, the development team are set a sprint goal and all work together to try and achieve it in a highly collaborative manner.
Quality Built in From the Start
A key cornerstone of Agile delivery is continuous delivery and constantly building quality in to products so that they do not become difficult and unwieldy to manage. In order to do this it is important that the development team decide how they will build the product, or there can be the possibility that the functional demands of the Product Owner outweigh the best practice software development approaches which should be followed, thereby resulting in "Technical Debt" which must be addressed later.
There are many quality assurance approaches which can ensure that products achieve and maintain a high level of quality such as unit testing, automation testing and manual testing. These quality assurance processes are not specified or mandated in Agile frameworks, but the frameworks advise that teams comprised of sufficiently skilled and knowledgeable individuals be allowed to utilise them in such a way that ensures quality is built in from the start, rather than added in at a later date.
Additionally, the architectures should be designed by the teams responsible for maintaining the products and should be implemented in such a way that provides scalable, performant and resilient products, suitable for their use cases and as the agile manifesto says: "The best architectures, requirements, and designs emerge from self-organizing teams."
Delight and Satisfy the Customer
Agile development approaches mean that it is more likely the solutions delivered will be fit for purpose, because the customer has a chance to regularly see, interact with and provide feedback on the product. This is because the Agile Manifesto states "Our highest priority is to satisfy the customer through early and continuous delivery of valuable software." and "Deliver working software frequently, from a couple of weeks to a couple of months, with a
preference to the shorter timescale."
There is a big focus on "minimum viable" products and "maximising the amount of work not done" allowing earlier release to market in order to gain valuable feedback from end users. This valuable early feedback allows changes to be built in the product from the first couple of weeks, rather than spending months building something which may not be fit for purpose.
A Highly Engaging Process for Stakeholders
Agile delivery encourages "Business people and developers working together daily throughout the project". Stakeholders are often welcome to observe the team daily via the Daily Scrum and to regularly interact with the team during the Sprint Review. The Sprint Review also enables stakeholders to review and interact with the latest working version of the product, which allows them to provide immediate feedback on what has been built, along with collaborative direction regarding the next things to focus on.
Reducing Risk
By releasing often and validating assumptions early, there is a greater chance that the product being delivered will meet both stakeholder and customer requirements. Additionally, by adopting an agile mindset, the team "welcome changing requirements, even late in development". This reduces the risk by ensuring that the development teams do not spend too much time building things which aren't required and therefore cost and time are reduced.
Highly Collaborative Teamwork
Agile encourages regular reflection on a number of topics, not just the progress of what is being built, but all the processes of the team. Experimentation is encouraged, so that the team can try new ways of working to see if they are beneficial. As Nelson Mandela said "When I try new things, I either win, or I learn", similarly Agile teams reach a high level of team collaboration through not being afraid to experiment with new ways of working.