What is Agile Methodology?
First off, Agile is not a methodology, but a collection of practices for software development, based on Agile principles. These principles, crafted in the early 1990’s, were published as the Agile Manifesto. Its goal was to create a way to build software in an ever-changing environment, and succeed, where traditional Waterfall approaches failed. Agile principles propose continuous, incremental, and iterative development and testing activity throughout the software development lifecycle. It allows for faster delivery, predictable development cycles, flexibility, and quicker bug fixes. (Fun Fact: Many folks think that the Manifesto is a long read. When, in fact, it can fit on one page!)
Since the Manifesto was published, tons of buzzwords are thrown around in relation to the Agile “methodology”. Over the next few weeks, we will define and clarify how these concepts are related (or not) to Agile.
First, let’s get familiar with the foundation of Agile, its four key values and 12 principles (spoiler alert: Popular “Agile” terms are not found in the Agile Manifesto — scrum master, Kanban Board, chickens, and pigs, etc.)
Agile Manifesto includes four key values
- Value individuals and interactions over processes and tools — Value people. Understand and respond to the needs of people versus the “system”, communicate with individuals, not schedules.
- Value working software over comprehensive documentation — Streamline documentation to provide developers with information to start building and iterate, versus documenting and approving every detail.
- Value customer collaboration over contract negotiation — Involve the customer throughout the entire process, including the development activity. Not just the beginning and end of the project.
- Value responding to change over following a plan — The goal is to provide software the meets the customers needs. Change should be viewed as a manageable and welcomed event that leads to a better product.
12 principles of the Agile Manifesto
- Our highest priority is to satisfy the customer through 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 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 and the Appirio Way
At Appirio, we apply a methodology that borrows heavily from the Agile values and principles above — we call it “The Appirio Way”. It offers a hybrid approach to software development includes both Agile principles of iterative development and predictive design.
We built this methodology through experience, not theory. Thousands of projects leading millions of users to the cloud led us to a honed, scalable, and straightforward approach that works for our teams and our customers.
5 Guiding Principles of the Appirio Way
The Appirio Way has its foundation set by Five Guiding Principles (some may sound a bit familiar):
- Maximum configuration: Minimum customization.
- Keep it simple: Avoid too much technical debt.
- Get the data model right: Requires close collaboration with the client team for mapping and transformations. Load real data early and often.
- Get creative on requirements: There is more than one way to accomplish the objective — minimize timeline, effort, and risk to the project.
- Always drive user adoption: Involve a set of core, cross-functional users in iteration reviews.
From these principles we have built methods, tools, training, and reusable assets to give every project, team, and customer the benefit of our exceptional experience.
In the end, these Agile principles provide organizations with a place to start — four basic values and 12 principles. Within that, there are myriad frameworks to apply. To be successful, organizations must determine what works for them and their customers, and make adjustments accordingly. To achieve consistent success, an organization’s methods should be analyzed continuously, and tested against those basic values — whether from the Agile manifesto, or a company-owned manifesto.
Next Week, we will take a closer look at Agile in practice. In the meantime, check out our Resource Hub for more ways Appirio can help transform your Worker and Customer Experiences.