Agile Model: The Ultimate Guide to Agile Methodology 2021
10 minutes read
Posts a few seconds ago
What is Agile methodology in Software Development Life Cycle (SDLC)?
The Agile model is an SDLC (Software Development Life Cycle) model that is characterized by building products using short cycles of work that allows for rapid production and constant revision. It makes the software highly responsive to customer feedback and seeks to respond to a changing market.
This software development life cycle is increasingly popular because of its powerfulness, flexibility, and efficiency. But it has some drawbacks as it can also lead a project going off-track by heavily relying on customer feedback. It’s also suitable for a strong team with excellent communication.
This model has multiple iterations and each iteration includes design, development, testing, deployment.
The business users or end-users can get a fully functional application after each iteration, even if it’s very limited.
Each iteration takes around 2 weeks to complete as recommended. But it can be flexible based on your team's needs and agreements (one to four weeks is acceptable).
The Values & Principles of the “Manifesto for Agile Software Development”?
4 Agile 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 Agile Principles
- Customer satisfaction through early and continuous software delivery
- Accommodate changing requirements throughout the development process
- Frequent delivery of working software
- Collaboration between the business stakeholders and developers throughout the project
- Support, trust, and motivate the people involved
- Enable face-to-face interactions
- Working software is the primary measure of progress
- Agile processes to support a consistent development pace
- Attention to technical detail and design enhances agility
- Self-organizing teams encourage great architectures, requirements, and designs
- Regular reflections on how to become more effective
6 Phases of Agile Methodology
Is the 1st stage in an iteration and usually cover these actions below:
- Project’s objectives
- Define requirements
- Estimate time & effort
The team will take the outcome from the Plan stage and design the solution to be able to implement it in Develop stage. It will cover actions below:
- Visual design including UI/UX design
- Architecture Design of the system
The development phase is about writing the code to implement features defined in requirements and follow the design in the design phase.
- Check the performance
- Looking for the bugs
- Validate features
Roll out the features to production. In this stage, the team usually uses CI/CD as a modern approach solution to cost-effective and faster deployment.
- Collect feedback from customers.
- Validate features in the market.
The key roles in the Agile model
The Agile model states the values & principles but the Agile frameworks will define the how. Depending on a particular Agile framework, we will have different roles applied on a team, but these are the 4 key roles that will take action across all development stages.
Product Owner (focus on product)
- Define the goals and quality expectations.
- Get customer feedback
- Create & manage product backlog
- Review deliverables before launch
Scrum Master (focus on process)
- Ensure the team follows the best Agile practices
- Check the work progress of team members daily
- Get customer feedback from the Product Owner
- Manage sprint, guide the whole team in the sprint meeting
Team Member (developers, UI/UX designers, testers, etc…)
- Mainly work on the tasks
- Learn & improve & share through each iteration of the development cycle.
- Give the solution, idea based on their skills and experience.
The Pros & The Cons of Agile Methodology in SDLC?
- Speed up the SDLC phases
- Reduce the unnecessary features during the development
- Respond to requirement changes quickly
- Product get to market faster
- Cost efficiency
- No much time wasted on documenting the unnecessary features
- Enable concurrent development
- Little or no planning required
- Hard to predict the final product and cost
- The final product is not released first
- Documentation gets left behind
- May lead the project going off-track by relying heavily on customer feedback
- Transfer of technology to new team members may be challenging due to a lack of documentation.
Common Agile Frameworks in Agile methodology?
While the Manifesto states the values and the principles of the Agile methodology, the Agile frameworks guide the development team on how to apply Agile to a particular project at each stage of the software development life cycle. There are various Agile frameworks but Scrum and Kanban are the most popular.
Scrum is an Agile framework designed from Agile’s values & principles to guide teams in the iterative and incremental development of a product.
Scrum is frequently used in software development but its principles can be applied to all kinds of teamwork.
Based on continuous improvement, Scrum helps teams adapt to changing conditions and user requirements.
Through the short release cycles, the team can continuously validate the features and re-prioritize which features should be released to market first and improve from what they didn’t do well.
3 Artifacts in Scrum:
- Product backlog
- Sprint backlog
- Sprint Goal
- Organize the backlog
- Sprint planning
- Daily Scrum or Stand up
- Sprint review
- Sprint retrospective
- Product Owner
- Scrum Master
- Team member
Similar to Scrum, Kanban is an Agile framework designed from Agile’s values & principles to guide teams in the iterative and incremental development of a product.
The main idea of the Kanban method relies on the Kanban board and is implemented with the help of whiteboards or online Kanban boards that contain sticky notes or Kanban cards where each card represents a task.
A typical Kanban board includes 3 columns:
- To Do
- In Progress
It aims to help you visualize your work, maximize efficiency, and improve continuously.
- The values of the Kanban system
- The roles in Kanban
- The benefits of the Kanban system
- Principles of the Kanban system
- Practices of the Kanban system
- 5 Best tools designed just for Kanban
The Crystal framework is one of the frameworks implemented based on the Agile Manifesto’s values & principles.
Unlike other frameworks, the Crystal framework recognizes that the performance of each team will be governed by team size, criticality, and the priority of the project.
Depending on the size of the team, the project will be categorized into one of these groups below:
- Crystal Clear: 1-6 members
- Crystal Yellow: 7-20 members
- Crystal Orange: 21-40 members
- Crystal Red: 40-80 members
- Crystal Maroon: 80-200 members
- Crystal Diamond and Sapphire: more than 200 members. Critical, significant, large-scale project.
The Crystal Agile framework empowers people to work autonomously and not be encumbered by rules and regulations but same as other frameworks, it needs to follow particular Principles. Check 7 Principles of Crystal framework to know how it’s applied in a particular project.
- The values of the Crystal Agile framework
- The roles in the Crystal Agile framework
- The benefits of the Crystal Agile framework
- The 7 principles of the Crystal Agile framework
- The best practices of the Crystal Agile framework
- 5 Best tools designed just for Crystal Agile framework
- The advantages & disadvantages of the Crystal Agile framework
Dynamic Software Development Method (DSDM)
Dynamic Software Development Method (DSDM) is an Agile software development methodology. It’s an iterative, incremental approach to software development.
The DSDM framework explicitly states “any project must be aligned to clearly defined strategic goals and focus upon early delivery of real benefits to the business”.
The major phases of DSDM are:
- Pre-project phase
- Lifecycle phase
- Functional model iteration
- Design and build integration
- Post project phase
DSDM has 8 key principles:
- Focus on business need
- Deliver on time
- Build incrementally from firm foundations
- Developer iteratively
- Communicate continuously and clearly
- Demonstrate control
To learn more about the DSDM and its advantages & disadvantages, check this blog post “The Ultimate Guide to Dynamic Software Development Method 2021”.
Feature Driven Development (FDD)
Feature Driven Development (FDD) is an Agile framework that is customer-centric, iterative, and incremental.
As its name suggests, this approach focuses on making progress on features. By doing that, it encourages status reporting at all levels, which helps to track progress and results.
FDD was designed to follow a 5-steps development process:
- Develop an overall model
- Build a feature list
- Plan by feature
- Design by feature
- Build by feature
To learn more about the pros and cons of the Feature Driven Development method, check out this blog post “The Ultimate Guide to Feature Driven Development 2021”.
Adaptive Software Development (ASD)
Adaptive software development is a direct outgrowth of an earlier Agile framework, Rapid Application Development (RAD).
It aims to enable teams to quickly and effectively adapt to changing customer demand, requirements, and market needs. To do so, it promotes lightweight planning and ongoing learning during all processes of evolving their products.
The ASD encourages the team to develop through a 3-phase process:
ASD has an interesting story behind it. To learn more about how ASD is created, by whom and for what, also the advantages and disadvantages of it, check out this blog post “The Ultimate Guide to Adaptive Software Development (ASD)”.
Lean Software Development
Lean Software Development (LSD) is an Agile framework with an aim to optimize the development time, resources, eliminating waste by just focusing on delivering products that reach market needs.
As a result, the Lean approach is also often referred to as the MVP (Minimum Viable Product) strategy, in which a team will release just a bare-minimum version of its product to the market, and then learn from what users really like to continuously improve on the next version.
7 Principles of Lean software development:
- Eliminating waste
- Building Quality In
- Amplifying Knowledge
- Delaying Commitment
- Delivering Fast
- Respecting People
- Optimizing the whole thing
Lean Software Development is really a simple, but powerful approach to the software development life cycle. To learn how to adapt it to your project and learn the advantages and disadvantages of it, check out this post “The Ultimate Guide to Lean Software Development (LSD) 2021”.
Extreme Programming (XP)
Extreme Programming is an Agile software development framework that is intended to improve software quality and responsiveness to changing customer requirements. Same as other Agile frameworks, the Extreme programming methodology supports frequent releases in short development cycles to quickly and effectively adapt to changing requirements and market needs.
Values of Extreme Programming:
- Streamlined communication
- Consistent, constructive feedback
Rules of Extreme Programming:
To understand the advantages and disadvantages of Extreme programming, also the scenarios we should use, check out this blog post “The Ultimate Guide to Extreme Programming 2021”.
When do we use Agile methodology?
The Agile method is not one solution for all. We should use it wisely based on your requirements’ expectations, time, and cost. Below are some cases that you can take a consideration.
- Time-critical Projects
- Strong team with excellent communication skills
- The project that’s frequently updated to respond to customer feedback.
- Any kind of project that has no fully defined requirement at the start.
Mobytelab focuses on software consultant, product design, UI/UX design, web & mobile application development and ASO.
Do you need help on building a custom software. Leave a message to us.