Introduction to Agile Methodology in project management
Waterfall
(Traditional) VS Agile Methodology
Waterfall
(Traditional) process
1.
Serialized Process: a
previous phase has to be completed before starting new phase.
2.
Planning far in
advance: product no longer match the reality by the time they are released.
3.
Lack of visibility:
teams don’t realize they are way behind the schedule.
4.
Project timeline:
planned at start. If one phase is delayed then all other phases also delayed.
5.
Static requirement:
requirement can’t be changed once finalized.
Agile Methodology
1. Serialized Process: iterative approach with tasks broken into small increments. Planning far in advance: plan for what we know and we left sufficient allowances in our plan for what we don’t know. Lack of visibility: clear visibility of each activity with better collaboration. Project timeline: allow the development team to get feedback from the customer throughout to be on schedule. Static requirement: scope is never closed. Continual re-assessment of requirement priorities by the business.
· Agile manifesto is a collection of 4 core values which applies to the agile methodology to create uniqueness of agile over the traditional process.
In the past, a lot of
software teams would concentrate on having the best possible tools or processes
with which to build their software. The Agile Manifesto suggests that while
those things are important, the people behind the processes are even more so.
That why agile team comprises of members who are very well organized and
motivated in order to take up the task. Having the right group of individuals
on your software team is vital to success. The best possible tools in the wrong
hands are worthless. Perhaps even more important is how these individuals communicate
with each other. The interactions between team members are what helps them to
collaborate and solve any problems that arise.
In Traditional way, software developers would spend lots of time in creating detailed documentation before they even started writing a single line of code. The Agile Manifesto places shipping software to your customers as one of the highest priorities. You can then gather feedback to help you improve future releases.
3. Customer collaboration over contract negotiation
According to the Agile Manifesto, the focus should be on continuous development. You need to build a feedback loop with your customers so that you can constantly ensure that your product works for them.
4. Responding to change over following a plan
Agile Manifesto
suggests that a software team should have the ability to pivot and change
direction whenever they need to, with a flexible roadmap that reflects that. A
dynamic roadmap can change from quarter to quarter, sometimes even month to
month, and agile teams are able to keep up with those changes.
Principles of agile
Above 4 core values
are divided into details and we call them as 12 principles of agile.
- 1. Customer satisfaction
through early and continuous working software delivery –
Customers are happier
when they receive working software at regular intervals, rather than waiting
extended periods of time between releases. In order to keep the customers
happy, it’s important to continuously engage them with a working version of the
product. Show small increments every sprint planning and make changes as required.
In the case of
traditional management methodologies, customers get to see the product only
after completion and when several tests and quality checks have been performed.
- 2.
Welcome changing
requirements throughout the development process –
Handling a huge and
complex task would be both time and energy-consuming. So a better way is to
divide the task into smaller parts that can be easily completed. Divide large
chunks of work into smaller and achievable tasks for quicker completion and
easier integration of changes.
- 3.
Frequent delivery of
working software –
Agile suggests that
set a smaller time frame and delivers the working software frequently. This
iterative process requires team members to continuously improve their performance.
- 4. Collaboration between the business stakeholders and developers throughout the project
All stakeholders must
frequently collaborate to ensure that the project is going in the correct
direction. The Agile principles encourage all stakeholders to remain involved
in all stages of the project in order to ensure constant feedback and a
valuable end product.
- 5.
Support, trust, and
motivate the people involved –
Create a supportive
environment to motivate team members and encouraging them to get the job done. It
is the responsibility of the project manager to create a motivating environment
and support where members are not afraid to voice their opinions and give
suggestions for the betterment of the team’s performance.
- 6.
Prefer face-to-face
communication over other methods
7.Working software is
the primary measure of progress
The only factor to
measure success is the delivery of a working product that satisfies the
customer.
8. Try to maintain a
constant pace (maintainable speed) of development
A repeatable,
iterative, and maintainable speed pattern should be established at which they
can deliver working software, and repeat it with each release. This prevents
the team members from being overwhelmed and over-stressed, while the project
keeps on progressing at an acceptable rate.
9. Maintain the quality
of the product by paying attention to technical details
Providing value to
the customer is the primary objective of any agile team. It’s extremely
important to have a multi-skilled team that can handle all the technical
aspects of the project and provides the opportunity for continuous improvement.
10. Maintain
simplicity
Develop just enough
to get the job done for right now. Too much planning and adding extra features
to the product should be avoided during the development.
11. Self-organizing teams
encourage great architectures, requirements, and designs –
A self-organized team
with decision-making powers would simply perform better because the
responsibility of satisfying the customers will on the team members, rather
than a single project manager.
12. Regularly reflect on
your performance for continuous improvement-
Agile methodologies
stand on the concept of iteration, where teams learn from their past mistakes
and continuously improve their performance. Project managers should promote
sessions where the whole team reflects on their performance and discuss ways to
improve their technical and management skills.
Agile Frameworks
- ·
Scrum
- ·
eXtreme Programming
(XP)
- ·
Dynamic Systems
Development Method (DDSM)
- ·
Feature Driven
Development (FDD)
- ·
Adaptive Software
Development (ASD)
- ·
The Crystal Method
- ·
Lean Software
Development (LSD)
- ·
Disciplined Agile
(DA)
- ·
Scaled Agile
Framework (SAFe)
- ·
Rapid Application
Development (RAD)
Scrum
Scrum is not a
process or a technique for building products; rather, it is a framework of
rules, roles, events, and artifacts used to implement agile projects. It is an
iterative approach, this approach ensures that your team delivers a version of
the product regularly. Scrum was designed using a software model that follows a
set of roles, responsibilities, and meetings. It can be used for any complex
project but works best when the result is a concrete product rather than a
service. The Scrum framework consists of Scrum Teams and their associated
roles, events, artifacts, and rules. Each component within the framework serves
a specific purpose and is essential to Scrum’s success and usage.
Scrum roles
1.
Scrum master: This person is a facilitator, responsible
for arranging the daily meetings, improving team interactions, and maximizing
productivity. The scrum master is accountable for ensuring that the process is
effective and is always improving. Through teaching, coaching, facilitating and
mentoring.
The scrum master
might:
- ·
Facilitate sprint
planning, reviews, keeping them focused and ensuring that everyone can
contribute.
- ·
Ensure that the daily
scrum happens and is useful to the development team.
- ·
Work with the product
owner as they develop a release strategy, track progress, manage stakeholders,
and priorities the backlog.
- ·
Understand the team
dynamics and seek to guide them into productive ways of working, promoting
whole-team thinking.
- ·
Lead the team through
problems, not by providing the solution but by helping them to identify all of
the options before deciding themselves what to do.
2.
Product owner: A product owner is a decision maker. He/she
is responsible for representing the customer’s best interest. This person has
the ultimate authority over the final product. A product owner is responsible
for maximizing the value of what gets shipped and ensuring the delivered
product meets customer needs. The product owner is responsible for the
project’s success. They define work responsibilities and prioritize. They’re
the face of the project, and they interact with everyone from the designers to
stakeholders and even the customer. They also need to know what each person
involved needs.
Product Owner
responsibilities
- ·
Create and maintain
the product roadmap, plan sprints, and create action items along with the
product manager.
- ·
Define a product’s
strategic vision and align new products to it.
- ·
Collaborate with
business owners to ensure that new products or updates meet requirements and
priorities.
- ·
Manage the discovery
phase for new and existing products and services
- ·
Plan and organize the
deliverables of the agile processes.
- ·
Measure and find new
opportunities to improve workflows with every iteration.
- ·
Write detailed
stories and acceptance criteria based on product scope documents and epics in
order for the engineering teams to develop software.
- ·
Maintain and
prioritize/reprioritize the product backlog through planning, grooming, and
stakeholder review.
- ·
Protect the scope of
work in a sprint against incoming requests.
- ·
Motivate the team
through the whole product development process.
- ·
Review working
software with your team and internal/external stakeholders to make sure that
each product change is understood, shared, and supported.
- ·
Execute high-level
product testing along with the QA team to guarantee the definition of done was
achieved.
3.
Scrum team: The development team
can contain all kinds of disciplines, including programmers, writers, testers,
architects, designers, and more. Together, they are each responsible for their
own work. The Team is set up considering all the essential skill set required
to successfully develop, test & deliver the product increments every Sprint
without the outside help. Thus, the team is expected to be self-sufficient and
cross-functional. The product owner establishes the priority; then, the development
team works together to get it done. This usually involves taking high-priority
items from the backlog and working on them one task at a time.
Delivering work: Split the workload into sprints. It’s the
development team’s job to complete every task in a sprint.
Ensuring transparency: Good communication
forms the foundation of a successful scrum team. When it comes to the
development team, daily standups are the place to share thoughts, talk about
issues, or ask for help.
Users: We have the users who have responsible for letting us know that what exactly you have to do. When we talk about business users, they always contribute from the point of a user perspective or from a market standard that but when we are creating a product, it's just not about meeting the expectations or the acceptance criteria. Sometimes it is also important to understand the issue for users. So users will let you know that if I have to work on this particular application, I would need this Particular feature to be there, or I would prefer to have this option somewhere here.
1. Sprint Planning: The sprint planning ceremony happens at the
beginning of every new sprint and it helps the team prepare for the upcoming
sprint. Everyone in the team decides what they need to complete in the sprint.
The backlog items are prioritized and the team collectively discusses how long
it will take to complete all the items in the list (called user stories). Detailed
project milestones are outlined for each smaller goal and possibly, a
mini-blueprint are created that’ll guide how each sprint is carried out.
Participants: Scrum Team, Scrum
Master, Product Owner
Timeframe: Ideally, reserve an
hour of planning for every week scheduled in a sprint, i.e. a 2-week sprint
should require a 2-hour planning session.
The scrum master do:
- ·
Takes notes of the
team’s progress.
- ·
Takes notes of
obstacles encountered by team members in order to tackle them,
- ·
Adjusts strategy in
case any unforeseen contingencies require it.
Participants: The scrum master and
all team members.
Timeframe: A daily scrum can
last from a few minutes to half an hour.
Participants: Developers, Scrum
Master, Product Owner, Project Stakeholders
Timeframe: A sprint review might
take as much time as is necessary.
Participants: product owner, scrum master, team members, as
well as relevant staff who had a role to play in the sprint’s completion.
Timeframe: ideally 60 – 90 minutes to work through.
