Agile is often times used as a label to describe a process or a strategy, this is incorrect and is misleading, instead Agile is a set of values and principles meant to help guide decision making. Agile started in 2001 when a group of software developers created “The Manifesto for Agile Software Development”(http://agilemanifesto.org).
This “manifesto” is a short list of values and a set 12 principles. The ideas explained in the Agile Manifesto are focused, but open because they do not provide specific examples, instead, the Agile Manifesto delivers an explanation of an approach to building a great team that could build a better product. Agile does this by keeping the user involved throughout the development process, having self-motivated and driven team members, and constantly iterating and re-tooling the product once it is in the market. Agile was primarily meant for Software Development, but as you go through the values and principles below, please consider your team and how this approach can apply to you. So what is Agile?
Agile Software Development makes it very simple to understand its values, the creators simply said, we value certain items on the over others. This does not mean there is no value placed on the “other” items, only that others are valued more.
Individuals and interactions vs. Processes and Tools
Much like UX, Agile Software Development puts its focus on people. In Agile, motivation, collaboration, and self-organization are more important than the OS that the team members computers are running or what time everyone is going to be coming into work.
Working software vs. Comprehensive Documentation
When presenting an idea to a client, Agile values prototypes, and wireframes over a document filled with data. Working software show progress and is tangible, therefore being more useful to the client.
Customer collaboration vs. Contract Negotiation
Agile puts a lot of value on user involvement. Instead of spending a large amount of time planning each feature before the project starts, Agile suggests starting the project and iterating along the way based regular involvement from the users. This helps see what users think as the project grows and allows for incremental improvements and feedback.
Responding to change vs. Following a Plan
While following a plan always begins well, being able to respond and adapt to any changes is very important in Agile Software Development. While developing new problems show up all of the time, and being able to quickly fix and adjust is crucial.
In each of these, it is easy to see an argument that contrasts Agile’s stance, but Agile’s creators made it clear that although these are the values they promote, the other items still have value in the Agile Software Development world. For example, if one has the greatest software engineers, but has out of date computers, the engineers’ success will be decreased. Instead, one must look at it as “what should I spend my time on”, my team’s flow and collaboration, or introducing a new communication tool to the office. Agile argues, that your team should be established and effective first.
Agile’s principles are meant to provide some high-level examples of their values. To summarize, it explains their obsession and focuses on the user, even to the point of welcoming change at any point if it brings benefit to the user. Also, to keep problems from mounting for the user and keep the product constantly evolving and advancing, Agile promotes frequent and regular updates through “sprints” which are short periods of iterative and incremental work. That only covers three of the principles, as mentioned in the values, Agile Software Development puts great emphasis on the team and the other 9 principles support this.
To build an Agile team, one must have the business people, who have the company goals in mind, working closely with the developers, this brings synergy to the project and ensures a well-rounded product. Then once these teams are together, it is crucial that they are motivated and have the necessary tools and environment to complete the project. Agile also promotes regular face-to-face conversations for the team to communicate ideas and objectives, this helps guarantee efficiency and keeps technical and design goals at the focus. These regular meetings, also known as “standups”, should cover completed, current, and upcoming projects. Overall there is a huge focus on the individuals on the team, they must be motivated, self-organizing, consistent, focused on efficiency, and work at a constant pace, along with that it should be important to the company to support this in their employees. Finally, it is important for teams to regroup regularly to go over productivity and find ways to improve, this keeps the process adapting to the team’s needs.
Below are the 12 principles of Agile:
- Our highest priority is to satisfy the customer through an early and continuous delivery of valuable software.
- Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
- Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of conveying information to and within a development team is the face-to-face conversation.
- Working software is the primary measure of progress.
- Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity--the art of maximizing the amount of work not done--is essential.
- The best architectures, requirements, and designs emerge from self-organizing teams
- At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Agile is not meant to make decisions for you or tell you exactly what to do, instead, it is meant to be used as a tool in decision making. Any business, no matter how big, small, tech-related, or not can implement the values and principles of Agile Software Development. At the center of Agile is the individuals who are creating the product and those users who the product is for which we at Key Lime Interactive feel should be the center of any good product or company.
READ MORE: Key Lime Interactive UX Design Services for Agile Development, Planning a Better Usability Study, Incorporating a UX Strategy Into Your Business, What's Your Excuse for Not Testing Your User Experience?, How to Create Trust Through Digital Design