Introduction To: Agile Software Development — Agile Cockpit
--
So what is Agile? According to the Agile Alliance, Agile is: “The ability to create and respond to change in order to succeed in an uncertain and turbulent environment.” This is especially important when building software as it is inherently unpredictable. Creating software is a bespoke process and not a commodity skill. Therefore methods that allow quick feedback are vital.
Agile Software Development is an umbrella term that is used to describe a set of methods and practices to deliver frequent value to customers. At the core of Agile, self-organizing and cross-functional teams use practices appropriate to their context to create solutions through collaboration.
A Short History of Agile
During the late 1990s, a variety of different software development methodologies began to increase in popularity, each having its own set of ideas. However, each of the approaches had common overlaps emphasizing:
- Collaboration between the development team and business stakeholders
- Frequent delivery of business value
- Small, self-organizing teams
- Innovative ways to create, test and deploy code
The term “Agile” was applied to this collection of methodologies 21 years ago in 2001 when 17 software development practitioners co-located in Utah to debate and share their various approaches to software development to create the Agile Manifesto.
A Short History of Agile
During the late 1990s, a variety of different software development methodologies began to increase in popularity, each having its own set of ideas. However, each of the approaches had common overlaps emphasizing:
- Collaboration between the development team and business stakeholders
- Frequent delivery of business value
- Small, self-organizing teams
- Innovative ways to create, test and deploy code
The Agile Manifesto resulted in an agreed set of 4 values and 12 principles between the group, which form the basis of Agile Software Development and are still in common use today.
Glossary — Key Agile Concepts
Image Credit: LeanKit
Kanban
Kanban is Japanese for “visual signal” or “card.” Kanban helps you harness the power of visual information by using sticky notes on a whiteboard to create a “picture” of your work. Seeing how your workflows within your team’s process lets you not only communicate status but also give and receive context for the work.
How Kanban Works:
- Visualize Work
- Limit Work in Process
- Focus on Flow
- Continuous Improvement
For more information regarding Kanban and its application have a look at LeanKit or Everyday Kanban.
Scrum
Image: Scrum Framework Poster
Scrum is a simple framework for effective team collaboration on complex software projects. The Framework is based on The Scrum Guide which Scrum co-creators Ken Schwaber and Jeff Sutherland have written to explain Scrum clearly and succinctly.
Sprint
Image: Scrum.org
Sprint
A sprint, also known as an iteration, is a short (ideally two to four week) period in which the development team implements and delivers a “done” product increment. A new Sprint starts immediately after the conclusion of the previous Sprint.
Learn more about Agile Software Delivery by Agile Cockpit