In 2001, a group of well-known software industry pundits converged on the small town of Snowbird Utah. These notable industry pundits included some of the most notable minds in software history including Martin Fowler, Kent Beck, James Shore, and others. The aim of this group was simple, to hash out a set of best practices for software projects and help alleviate a convergence of pitfalls that had cost the lives of thousands of software companies in the past.
The talks were intense but the resolve amongst the pundits was strong. After a period of contention these visionaries developed and release the “Agile Manifesto” [http://agilemanifesto.org/], which would reshape software methodology implementations around the world. The Agile Manifesto proclaims 4 simple pillars (guiding points) and 12 basic principles for Agile oriented software development.
The Agile Philosophy
The Four Pillars:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
The Twelve Principles of Agile
- 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 behaviour accordingly.
At this point it is probably safe to provide a few basic definitions around what Agile IS and is NOT. First and probably most obviously Agile is NOT a noun. It’s NOT something that simply can be done. Instead it’s something to strive for. Something to continuously improve upon. Agile is a verb so instead of doing Agile, an organization can only work towards agility.
able to move quickly and easily.
|synonyms:||nimble, lithe, supple, limber, acrobatic, fleet-footed, light-footed, light on one’s feet;More|
Based on what we have seen so far it is safe to say that Agile is different and innovative. Agile stands in stark contrast to the traditional “Waterfall” development methodology leveraged by most organizations in the past. Its implementation is leaner, nimbler, and provides the team with the ability to take interrupts. The following diagram highlights the fundamental benefits of an Agile based organization in comparison to a traditional waterfall one.
|Planning Scale||Short Term||Long Term|
|Distance between DEV & Customer||Small||Large|
|Time between specification & implementation||Short||Long|
|Time to react to and repair defects||Short||Long|
|Project Delivery Risk||Low||High|
|Ability to take changes late in the cycle||Yes||No|
It is important to note that the authors of the Agile manifesto aptly described the system using the verb “Agile” for a reason. This was to help encourage software teams to be more flexible, be more reactive to change, nimble, and adaptive. The aim of these bright minded individuals was to encourage speed, flexibility, and velocity (we will get into that later). By being more Agile, software development teams can better adapt to changing requirements, the teams can continuously deliver based on iterations, and can adapt to stresses of the modern software organization more easily. Thus-far we have only scratched the surface of modern Agile practices. This begs the question “if Agile is a philosophy what practical implementations exists?”.
From the Agile Manifesto, orthodox devotions were created
Upon publication of the Agile Manifesto, software teams around the world began working to turn these fundamental beliefs into practical software methodologies. From its original inception, numerous methodologies took form. Some of the more notable ones still in use today include SCRUM, SAFE, SCRUMBAN, CRYSTAL, XP etc. These methodologies each leverage the core conceptual philosophies prescribed in the Agile Manifesto, never the less each is its own methodology.
Such methodologies pay tribute to Agile and follow the general principles of the Agile Manifesto but as such do not define agile itself.
Why is adopting Agile Important?
Becoming more agile in business is important for a lot of reasons. Business by nature is a highly competitive playing field. It is completive on the executive front, the business front, the team front, the management front, and the individual contributor front. Let’s take a moment to explore WHY becoming more Agile is important for each of these fields.
Agile for Executives – Agile from the executive perspective helps ensure teams are leveraging a unified and repeatable process. For executive’s confusion and chaos in the enterprise leads to a loss in productivity and an increase in OpEx costs. If Opex costs increase year over year, the business will go under. Keeping these costs in line by increasing productivity and efficiency can help keep your organizations headcount controlled and maintainable.
Agile for Business – Many organizations spend significant amount of time and investments in Engineering only to find out that the engineering effort was spent building the wrong thing. In addition to this problem, some teams spend 2 years creating a product only to tank the org from a lack of innovation or a failed product launch. In many ways, we can liken Agile to building a skateboard first, determining if customers like it, then building a scooter, then a bike, then a car. By leveraging Agile the organization can pivot engineering resources quickly onto a different task when the business realizes they are sinking resources into something that customers won’t pay for. This saves time, which saves money, which in turn keeps the business afloat.
Agile for Teams – Every team has rock stars and rocks. Agile makes the efforts of the team transparent. It’s a very sleek way of keeping everyone on the team honest to their word. This helps your rock stars shine and your rocks stand out. Agile encourages teams to keep each-other accountable and to continually push harder towards excellence.
Agile for Management – Management is under constant pressure to complete features, deliver value and drive the team forward. By leveraging Agile, management can incrementally deliver value and have their team’s efforts be transparent and accountable. This takes pressure off management to deliver features of sub-par quality and helps encourage them to create business value.
Agile for Team Members – As an individual contributor Agile provides a framework from which, team members can rely on to maintain a steady pace. It allows them flexibility in taking interrupts and helps ensure they don’t get tangled in development, test, or deployment efforts that prove to be un-valuable to the organization.
Which Agile solution is right for me and my team?
In many ways implementing an Agile methodology is like joining a church. Each organization is unique and has its own set of unique challenges. The recommendation is this, it is important to select the right agile implementation for the org and that may differ from one org to the next. To accomplish this, the organization will need to first discuss what they are trying to achieve by adopting Agile. Is it faster delivery time? Better visibility into what team members are doing? Better tracking of delivery deadlines? The need for the ability to take interrupts without breaking cadence? Each of these are valuable reasons to adopt an Agile methodology; but not every methodology provides the framework needed for delivering everything. To help assess these questions Exeter Studios Agile Coaches evaluate business requirements of Agile and help decide on a methodology that best meets these requirements. We then couple it with a Kai-zen (Changer for Good) approach to help ensure the processes are continuously improved and reviewed regularly so the organization can adjust accordingly.
What Agile services are offered by Exeter Studios?
Exeter Studios offers a wide array of Agile services that are uniquely tailored to each customer. We offer everything from offsite training on the agile philosophy and methodologies to onsite custom engagements and participatory coaching. Each team and organization is unique and their challenges are unique as well. It is the aim of Exeter Studios to help our clients find the right solution for their org that brings them the most return on their investment into the Agile universe. The following is a table which describes some of our more popular Agile services.
|Agile & SCRUM for Teams (Onsite or Remote)||We introduce the basic elements of Agile, SCRUM, Story sizes, Story Points, Batch Size, and more. We educate on collaboration and compare it with other methodologies (Waterfall etc.). Teams will have hands on exercises that teach them Agility, SCRUM and the Agile way.||Call for a quote|
|Agile & SCRUM for Management (Onsite or Remote)||We introduce Agile as a mechanism for project management as well as how to leverage it to understand the current state of projects. We cover batch size, team autonomy, basic SCRUM master principles and how to conduct sprint planning, stand-ups, and retrospectives||Call for a quote|
|Intro to Kanban (Onsite or Remote)||In this course, we educate the Teams and Management on Kanban. We teach them about the principles of Kanban, WIPs, and how to adopt Kanban in the organization.||Call for a Quote|
|SCRUMBAN in Action (Onsite)||In this course SCRUMBAN is educated. ScrumBan leverages the best parts of both SCRUM and Kanban to facilitate a high velocity and dynamic team. Previous knowledge of SCRUM and Kanban are preferred but not required.||Call for a Quote|
How can I contact Exeter Studios for Agile services?
We are happy to assist you at your convenience and offer a custom quote for our Agile services. Our trained agile experts have years of in the field experience with Agile philosophies and methodologies, and are happy to assist. We are diverse and flexible and are experienced with SCRUM, Kanban, SCRUMBAN, XP and others. Please feel free to reach out to us either by phone or by mail. Our phone number is +1-512-999-4524 and our email is firstname.lastname@example.org
organizational goals for Agile
When adopting or improving an Agile methodology, it is important to keep in mind the objectives of that endeavour. The following worksheet aims to help you reflect on the current process at your organization and define a set of objectives in relation to your Agile implementation.
- What specifically are you trying to accomplish by implementing an agile methodology?
- What are the business deficiencies that are driving the switch to agile?
- where did you first hear about agile? Is it a buzzword to you or a solution to a problem?