Agile development methodology wiki illustrates how Agile is the opposite of traditional waterfall projects where you make a detailed plan and implement the plan. Making detailed plans is an efficient way of approaching projects when it is clear what the end product.
When you are not, you need to accept it will take multiple iterations to create the desired end product. That is where Agile methodology has a clear advantage over traditional project scope management. Agile accepts there will be changes and pro-actively accepts this in their methodologies.
Agile is not a new concept and can be traced back to 1957, in the early 1990’s a number of software development methodologies were being used by software teams such as DSDM 1995, Scrum 1996, Crystal & XP 1996, FDD 1997. Even though these were all created before the existence of “Agile” they were the basis for Agile as we know it. In 2001 a group of methodology and software experts who used these methodologies came together to create a unified Agile Manifesto.
The Agile Development Methodology four values:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
12 Principles behind 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 behaviour accordingly.
Agile development methodology was originally created for software projects but can be applied to any knowledge work/project. Below is a great TedTalk where Bernie Schroeder discusses “failing fast” and iterating for creating a business.
For software development, there are multiple Agile methodologies which is what people will more than likely associate with Agile.
An agile framework means using a pre-designed approach that helps narrow your focus. A framework is just a set of guidelines you can choose to follow.
Frameworks offer more flexibility in how you use individual components. Following the framework’s structure can improve your chances of achieving superior outcomes for your clients.
In contrast, agile methodologies are more prescriptive and entail defined steps that need to be taken in a specific order, explaining why the steps are essential and how they should accomplish each goal.
- Scrum Agile Development Methodology
- Lean Software Development
- Feature-Driven Development (FDD)
- Crystal Agile Development Methodology
- Extreme Programming (XP)
- Dynamic Systems Development Method (DSDM)
- Devops and Agile
Essential Agile Information
Scrum Agile Development Methodology Wiki
Scrum is one of the most popular Agile methodologies as it has been widely adopted in recent years. It is an iterative and incremental agile software development framework. Scrum is based on planning work for a 2-3 week sprints where the team deliver an increment after each sprint.
Scrum is an iterative and incremental approach that delivers value in small increments through short development cycles called sprints. It provides stakeholders with what they need while still being efficient with their time. With this agile framework, you focus on having multiple product iterations.
In Scrum, the best way to create a product is through collaboration. It views teamwork and transparency as key, so team members should openly discuss their progress and any problems they face rather than anxiously downplaying them.
Scrum teams consist of people with different associated roles who all work together to complete a project. Events, artifacts, and rules also help guide the team and keep everyone on track.The team would meet every morning at a daily stand-up where only Engineers give updates on what they did/plan on doing and any blockers.
A Scrum team will typically consist of a Product Owner (Business) who prioritizes the backlog and provides business feedback, Scrum Master (Agile Coach) who ensures Scrum is implemented correctly and removers any blockers, and Engineers who choose what is done in iterations and complete the actual work.
- Backlog Refinement/Grooming
- Sprint Planning
- The Sprint
- Daily Scrum/Stand-Up
- Sprint Review/Demo
- Sprint Retrospective
More Information on Scrum development methodology and Scrum Master responsibilities check out our detailed post on Scrum Methodology.
SAFe (Scaled Agile Framework) and leSS (Large-Scale Scrum) are two agile scaling frameworks that provide…
Hardening Sprint is an integral part of the Agile Framework. It is a time-boxed event,…
There are many misconceptions about the Scrum Framework. Some people think there are only three…
An epic vs story vs task is one of the most common misunderstandings in Agile…
Daily Scrum is a meeting that gives a team an organized forum to provide an…
There are 5 scrum ceremonies to practice Scrum efficiently. Scrum meetings are the same thing…
The Scrum development methodology is an iterative and incremental software development methodology. Scrum has a…
Lean Software Development
Lean Software Development method was originally created by Mary and Tom Poppendicks but is heavily based on Lean Manufacturing mainly by Japanese company Toyota. It focuses on lean, or simple and efficient methods, to deliver value to the customer and continuously improving the “value stream”.
Lean Software Development Principles
- Eliminate Waste
- Empower the team with icebreakers
- Deliver fast
- Optimize the whole
- Build quality in
- Defer decisions
- Amplify Learning
More information on Mary and Tom Poppendicks website The Lean Mindset.
Kanban methodology promotes continuous collaboration within the team and continuous improving the workflow. Kanban originally came from the concept of Lean and is best known for the Kanban board which can be seen below.
Kanban 3 Principles
The word ‘Kanban’ is Japanese for “visual board or signboard.” This framework uses visual elements to plan and track progress on development projects.
The Kanban board is the fundamental component of the Kanban method. The graphical approach of the Kanban board allows visualization of the entire project progression on boards so that transparency is increased and collaboration between team members is easier.
Ideal for businesses with knowledge-based works, you can use Kanban to improve flow by optimizing the way work is deployed. It demands complete transparency and communication between team members to ensure that everyone is always on the same page and understands the project’s development stage.
Rule #1: Visual Workflow
Rule #2: Limit Work in Process (WIP)
Rule #3: Measure and Improve
More information can be found on our post about Kanban and Leans relationship and history.
A Kanban board template is a tool that helps limit work in progress, help visualize work, and maximize flow and efficiency. Also, it helps the DevOps and agile teams establish order. Kanban boards help service and technology teams with the amount of work and its execution. Elements of a Kanban Board Template The Kanban board…
Feature-Driven Development (FDD)
The first of these is Feature Driven Development (FDD). FDD is based on an agile iterative-driven method, where the length and contents of each iteration/release is based on delivering a complete business feature. It begins with establishing an overall model shape and then a series of 2 week iterations, finally delivering a feature. A typical software development would follow the following process:
Build Overall Model
Build feature list
Implementation of Features
Plan by Feature
Design by Feature
Build by Feature
*Iteration length non determined is based on requirements
FDD 8 Practices
- Domain object modelling
- Develop by feature
- Class ownership
- Feature Teams
- Regular build schedules
- Configuration Management
- Reporting visibility of results
More information on Feature-Driven Development dedicated website http://www.featuredrivendevelopment.com/.
Extreme Programming (XP)
XP is a disciplined approach to delivering software quickly and continuously. It uses a numerous feedback loops starting with Pair Programming to Release Planning as depicted in the below image. XP works in iterations usually of 1-3 weeks and the team would work with the business very closely. We have written a detailed post going through the complete history and practices on XP Agile Development Methodology here.
This agile framework emphasizes teamwork, communication, and feedback. It focuses on continuous development to satisfy more customers in the process. Like Scrum, this method also uses sprints or short development cycles developed by a team to create a productive and highly efficient environment.
In XP, the project is continuously tested and improved through feedback from customers and users. It allows for customer requirements to be easily implemented at any stage of development.
XP is best for constantly changing customer demands. It motivates the team to accept changes, even if they arise during the later stages of development.
XP 12 Development Methodology Principles
- Planning Games
- Small Releases
- Simple Design
- Pair Programming
- Collective Code Ownership
- Continuous Integration
- 40-hour Work Week
- On-Site Customer/Whole Team
- Coding Standards
Extreme Programming (XP) Development Methodology is intended to improve software quality and responsiveness to changing customer requirements. Extreme Programming (XP) has a number…
More information on XP on the official website http://www.extremeprogramming.org or our post on different roles with Extreme Programming (XP) Development Methodology
Crystal Agile Development Methodology
Crystal delivery methods is one of the most lightweight out of all Agile development methodologies. Crystal process usually would consist of defining an initial Project Charter, followed by iterative releases containing multiple development releases with an implementation and reflective workshop for each release.
Crystal is a highly flexible framework that gives the team the freedom to develop efficient processes. Its focus is on individuals and how they interact with one another.
This framework aims to produce the best software possible by focusing on key concepts such as people, interactions, community, skills and talent, and communication.
Crystal emphasizes that a team’s talent and how members interact with each other can benefit the whole project. It is a light framework in terms of agile documentation, where teams can find their preferred work modalities. It removes management overheads and creates a more “free” process.
- Frequent delivery
- Constant communication
- Reflective Improvements
- Freedom to speak
- Easy access to experts
- Productive technical environment
- Scale based on team/dollars spent/business criticality
Status of development defined as one of the following: Clear – Yellow – Orange – Red
Estimating Size: 0-8 10-20 20-50 50-100
Critically: Comfort Discretionary Essential
More information on Crystal Development Methodology check out its creators website Alistair Cockburn.
Crystal is a family of agile software development methodologies invented by Alistair Cockburn. The methodology is based on the experiences of software developers who have found success using agile development practices. It is characterized by specific values, guidelines, and properties that distinguish it from other agile frameworks. Crystal is a family of Agile software development…
Dynamic Systems Development Method (DSDM)
DSDM dates back to 1994 and was previously known Rapid Application Development (RAD). RAD evolved into a unstructured approach and as a result the DSDM Consortium was created with 9 core principles. These principles centre around empowered teams, frequent delivery, business need/value and stakeholder engagement. DSDM primarily concern is to apply the 80/20 rule where the team tries to focus on 80% of the system in 20% of the time. Requirement prioritization uses the MoSCoW rules and all critical work must be completed in a DSDM project.
DSDM 9 Principle’s
- Active user involvement
- Empowered Teams
- Frequent Delivery
- Fitness for business use
- Iterative development
- All decisions can be changed
- High level requirements only
- Integrated testing
- Collaboration & cooperation
An action plan template is a checklist of tasks or steps that you need to…
A value stream map is a process that visualizes the steps needed to transform a…
A service blueprint template helps visualize steps that are part of the service process and…
Design Sprint is an activity based on time and involves design team members to help…
An MVP (Minimum Viable Product) is a product that has enough features to validate an…
A product launch plan contains the work which must be done to release a new…
A Product Canvas is a content-rich and concise tool that conveys what a product is…
Sprint planning is an event to assist and make the team understand the needs and…
You can use a number of different project management tools to set up a new…
Many agile facilitators and product teams use PI Planning template for team alignment and to…
Jobs To Be Done (JTBD) is a consumer demand theory that examines why and how…
A pre-mortem template is a risk management method and was developed by Gary Klein in…
An agile business requirements document used to describe the needs for a product or service…
An agile status report template is a document that captures the current status of a project’s…
A Kanban board template is a tool that helps limit work in progress, help visualize…
Sailboat retrospective template is a retrospective technique for agile teams. It is a metaphor for…
Epic templates are intended to be used for big, new pieces of work that will…
Free Start Stop Continue templates to quickly start retrospectives. Perfect for scrum masters looking for…
A story map template is a graphical representation of the user stories in a product…
There are several reasons for unsuccessful feature updates or product launches. However, the most common…
A sprint review is a scrum event in which the product backlog is reviewed and…
Agile reporting is an approach to business intelligence that embraces iterative development and rapid delivery….
This article will discuss product backlog templates as tools of organization in the area of…
Are you thinking about using agile templates for your next big project? You may be…
In an agile team, the Product owner manages the product backlog and defines the project…
An OKR, or Objectives and Key Results, is a framework for setting measurable goals and…
The What So What Now What model is a three-step process that can help you…
What? So what’? Now What? is reflective technique that allows people to evaluate shared experiences…
Keeping your agile team engaged is critical so trying a different using different end of…
After each release/iteration, the Scrum Master or Team Leader should hold a sprint retrospective which…