Agile notes
Agile notes
The Agile method works in ongoing sprints of project planning and execution, enabling you to
continuously adapt and mature your plan, scope, and design throughout the project.
Agile projects require an iterative approach, which supports incremental, frequent, and
consistent delivery of workable products to your customer or client. This innovative approach
ensures your project team can consistently deliver concrete products without being delayed by
changes and evolving requirements.
Agile has a high level of customer involvement and includes frequent reviews of progress with
both the project team and the customer.
You can run an Agile project using several different frameworks. Some of the more popular
ones include:
Scrum
Kanban
Extreme Programming
DSDM
The Manifesto for Agile Software Development outlines 12 Agile principles that all projects
should follow. These are:
1. Our highest priority is to satisfy the customer through early and continuous delivery
of valuable software. The first principle of Agile methodology states that customers should
receive project deliverables or iterations across regular intervals throughout the project’s life
cycle, rather than just one product delivery at the end.
4. Business people and developers must work together daily throughout the project. This
Agile principle states that regular communication with all stakeholders is critical to the
project’s success. Commonly, this involves a short daily meeting with both the project team
and any other key stakeholders.
5. Build projects around motivated individuals. Give them the environment and support
they need, and trust them to get the job done. A central concept of the Agile project
management methodology is that the right people need to be placed in the right positions and
given the autonomy required to do their jobs well. It’s essential to design a project team based
on capabilities rather than job positions or titles. The project manager’s focus should be on
motivating the project team and supporting them, rather than micromanaging them.
6. The most efficient and effective method of conveying information to and within a
development team is face-to-face conversation. The Agile Manifesto emphasizes the
importance of co-locating teams and stakeholders whenever possible, as face-to-face
communication is more effective than email or phone. If your team cannot be co-located, video
conferencing is an option that can still capture the value of non-verbal cues.
8. Agile processes promote sustainable development. The sponsors, developers, and users
should be able to maintain a constant pace indefinitely. According to this principle, Agile
projects should have a consistent pace for each iterative cycle or sprint within the project. This
breakdown should eliminate the need for overtime or crashing schedules while promoting
frequent output of workable products. It should also create a repeatable cycle that the team can
continuously follow for as long as necessary.
9. Continuous attention to technical excellence and good design enhances agility. An Agile
project’s primary focus should be on improving the end product and achieving advancements
consistently over time. Each iteration should always improve on the previous one, and the team
should always be looking to innovate.
10. Simplicity – the art of maximizing the amount of work not done – is essential. An Agile
project aims to get just enough done to complete the project and meet the requested
specifications. Any additional documentation, steps, processes, or work that does not add value
to the customer or enhance the project outputs should be avoided or eliminated.
11. The best architectures, requirements, and designs emerge from self-organizing teams.
Agile is based on the belief that you need motivated, autonomous, and skilled teams to deliver
the best results and products. Teams should be empowered to organize and structure themselves
as required. They should have the freedom to collaborate and innovate as they see fit, without
being hampered by too much oversight.
12. The team discusses how to become more effective at regular intervals, then tunes and
adjusts its behavior accordingly. A successful, self-motivated team requires a strong focus
on advancing their skills and processes to grow and improve. The team should have regular
reviews on their performance and outcomes, including discussions on improving as they move
forward.
The benefits of agile project management are many, particularly for the following organizations
and project types:
Any project that evolves or does not have clear scope and requirements at the start.
Organizations that work in a fast-changing environment, such as technology.
Organizations that need to work closely with their customers and other external parties
throughout the life of the project.
Companies that emphasize process and product improvement and are constantly
looking to innovate.
Projects with many interdependent tasks, where the team needs to work closely and
frequently communicate to ensure success.
Companies that need to create a prototype before building the final project outcome.
Projects that require rapid feedback from stakeholders about each product iteration
before moving on to the next version or draft.
Traditional project management methods generally only had the project team in touch with the
customer at the start and end of the project. If customer requirements or expectations were not
captured correctly in the beginning or changed over time, the project team had no idea until it
was too late. With Agile, there’s ongoing contact throughout the entire process and iterative
deliveries to ensure your team is on track, so the end product will be exactly what the customer
wants.
What if your customer told you halfway through a project that they needed a scope change?
Using a traditional approach to project management, this either couldn’t be accommodated or
likely involved significant increases to both the project cost and schedule. With Agile, you can
incorporate changes with minimal effort, no matter how far along in the project.
3. Faster delivery
Agile incorporates a continuous development approach that ensures your team is continuously
delivering workable products. Instead of waiting for six to 12 months or longer for an end
product, your client is getting a working version of the product at much shorter intervals,
typically every two to four weeks.
4. Lower project risk
Your team is developing versions of the product regularly and getting customer feedback early
on, minimizing the risk of a project failing. Breaking a large project into iterations reduces your
risk of an iteration or draft failure. You’re more likely to find small problems early that can be
addressed quickly, rather than discovering a large issue only at the time of final testing before
the end delivery. If later you encounter a problem or need to cancel the project, you’ll have
invested less time and money.
5. Ongoing innovation
Agile supports collaboration and continuous improvement, both of which can lead to
innovation and the development of new products and features. Co-locating teams and having
daily meetings encourages brainstorming and idea creation. Agile supports an “idea
meritocracy” where the best idea wins out, no matter who it comes from. The project team,
other stakeholders, and the customer can figure out functionality and features together.
Scrum
Scrum is a framework used in Agile software development for managing and completing
complex projects. It emphasizes iterative development, collaboration, and flexibility in
responding to change.
Product Owner: Represents the stakeholders and is responsible for defining the features of
the product, prioritizing the backlog, and ensuring the team delivers value to the business.
Scrum Master: Facilitates the Scrum process, helps the team stay focused and remove any
obstacles, and ensures adherence to Scrum principles and practices.
Development Team: Cross-functional group responsible for delivering the product increment
during each sprint. Team members collectively possess all the skills necessary to complete the
work.
Artifacts:
Product Backlog: A prioritized list of all desired work on the project, maintained by the
Product Owner. It represents the requirements or features to be built.
Sprint Backlog: A subset of items from the Product Backlog selected for a particular sprint. It
contains the work the team has committed to completing during the sprint.
Increment: The sum of all the completed Product Backlog items at the end of a sprint,
potentially shippable to the stakeholders.
Events:
Sprint: A time-boxed iteration, typically lasting 2-4 weeks, during which the Development
Team works to complete the items in the Sprint Backlog.
Sprint Planning: A meeting held at the beginning of each sprint where the team selects items
from the Product Backlog and creates a plan for the sprint.
Daily Standup (Scrum): A brief daily meeting where team members synchronize their work,
discuss progress, and identify any obstacles.
Sprint Review: A meeting at the end of each sprint where the team presents the completed
work to stakeholders and receives feedback.
Sprint Retrospective: A meeting at the end of each sprint where the team reflects on their
processes and identifies opportunities for improvement.
A Scrum master is the facilitator of scrum, a lightweight agile framework focusing on time-
boxed iterations called sprints. Scrum masters act as coaches to the rest of the team, or servant
leaders, as the Scrum Guide puts it.
Good scrum masters are committed to the foundational elements of scrum but remain flexible
and open to opportunities for the team to improve their workflows.