Agile Project Management - Session 4
Agile Project Management - Session 4
Being Agile
Agile is an umbrella term for a number of techniques and
methods that have the following similarities:
First, competitors become more challenging every day; an organization can’t stand still
while everyone else is moving forward. It is do-or-die to continuously improve to meet and
beat that competition.
Second, customers become more demanding every day. Everyone seems to want more
features at less cost. Lean helps to meet demanding customers’ needs, while remaining
on time and cost-competitive.
Lean Product Development
The focus of lean is maximizing business Toyota was the pioneer of Lean Product
value and minimizing activities outside Development.
product development.
eBay was an early adopter of lean
Lean product development is a process for principles for product development.The
building products faster with less waste. It company led the way with an approach
improves upon traditional product that responded daily to customers’
development processes by eliminating the requests for changes to the website,
communication silos that typically developing high-value features in a short
separate departments. All teams in lean time.
organizations work on the product from
beginning to end, which allows the
product to evolve and improve.
Guiding Principles of LPD
Implementing Lean Product Development
1. Specify value for your customers - Look at the existing market and work backwards to make sure you have the product your
customers will ultimately buy. This “Market Back” approach allows you to focus on investing in winning products before production
even begins. A surefire way to find what your customers find valuable and will ultimately buy is to try a lot and evaluate fast.
2. Identify and focus on your value stream - Collaboration in the early stages of a project reduce the number of negative
impacts that can happen down the line as progress continues.Focusing on value not only helps your teams eliminate steps that
don’t create value, they also reduce waste and lead directly into the next step in your lean process - flow.
3. Create flow by eliminating waste - A lean organization realizes that the cost of a product is primarily driven by the rate of
flow through the value stream. What needs to be done to make things flow faster? Begin by studying the process to understand
what adds value and what doesn’t, and what tasks can be accomplished at the same time without waiting on dependencies.
4. Respond to customer pull - Pull is the need to buy a product (customer demand) the lens through which flows are viewed and
evaluated for ongoing improvements. When less money and space are tied up in raw goods your organization can be better
prepared to respond quickly the pulls of your customers and use your improved flows for more efficient results. Time spent
validating the demand (pull) and responding efficiently (flow) on behalf of customers can also remove dependencies on forecasting
and guesswork for future endeavors.
5. Pursue perfection through repetition - The cornerstone of successful lean product development is repetition. As value is
defined, value streams are established, waste is removed, and both flow and pull are introduced, it’s time to begin the process again
until a state of perfection is reached, creating measurable value with no waste.
Benefits of Lean Product Development
1. Shorten development cycles - Lean teams begin work before they have sufficient information and
work in parallel with other teams to build products faster. Instead of a relay race, where one team only
begins work when the other finishes, every team in the lean method overlaps and races together.
2. Lower development costs - Because lean teams share knowledge between departments and
understand the entire value chain, they can identify and eliminate wasteful practices and produce more
functional products. This includes reducing inventory like unpublished software, eliminating extra
features, and creating a modular product that can be easily altered.
3. Generate innovative solutions - Lean workers with complete information come up with ideas for how
to improve their own performance as well as that of others.
4. Lower production costs - When lean design works properly, products are cheaper to produce. For
technology products, that typically means fewer work hours, tools, and maintenance costs. For
manufacturers, that could also mean fewer physical materials.
5. Reduce redevelopment cycles - Lean teams are more efficient at catching errors before they reach
production. They can refine the product as it’s developed and refactor often so that there are fewer
bugs and it needs to be redeveloped less often.
Understanding Kanban
One of the most common lean approaches.Kanban is essentially a method for removing waste to
improve flow and throughout in a system.Kanban is based on the following foundational principles -
1. Start with what you are doing now - The Kanban Method strongly emphasizes not making any change to
your existing setup/ process right away. Kanban must be applied directly to current workflow. Any changes needed
can occur gradually over a period of time at a pace the team is comfortable with.
2. Agree to pursue incremental, evolutionary change - Kanban encourages you to make small incremental
changes rather than making radical changes that might lead to resistance within the team and organization.
3. Initially, respect current roles, responsibilities and job-titles - Unlike other methods, Kanban does
not impose any organizational changes by itself. So, it is not necessary to make changes to your
existing roles and functions which may be performing well. The team will collaboratively identify and
implement any changes needed.
4. Encourage acts of leadership at all levels - Kanban encourages continuous improvement at all the levels of
the organization and it says that leadership acts don’t have to originate from senior managers only. People at all
levels can provide ideas and show leadership to implement changes to continually improve the way they deliver
their products and services.
Kanban Practices
Kanban Practices
1. Visualizing a team’s workflow is the first step in identifying potential waste. As teams
visualize the flow of their work (on a whiteboard, on a wall, or in a drawing) and identify
where productivity breaks down, they can easily analyze the root cause and see how to
remove the constraint. And then do it again, and again.
2. When teams keep starting work but don’t finish it, their work in progress continues to grow.
Being agile is all about getting done and receiving feedback on what has been done, so the
goal is to start things only when other things are completed. When product development
teams limit their work in progress, items get completed faster, speeding the pace of
completing each item in their queue.
3. The workflow in a Kanban System must maximize value delivery, minimize time-to-market
and be as predictable as possible. Therefore, empirical control requires transparency,
inspection and adaptation. Bottlenecks and blockages are particularly important and must be
properly managed to improve predictability and system performance. We want the work to
flow as quickly as possible to the client with the highest quality and safety. This is a lean
heritage. We do not manage people, we manage the system to allow a fast flow.
Kanban Practices
4. We must ensure that all decisions, processes, criteria and data are explicit and visible to all
so that there are no rooms for assumptions. Explicit policies result in emerging behaviors that
can be improved through experiments. Policies must be simple, well defined, visible, always
applied and easily modified by those who provide the service.
5. Kanban practices remind us that all services that are working with Kanban must be
interconnected effectively. Feedback loops represent the pulse that keeps an organization
alive and connected. They allow to periodically connect different levels of decision-making in
the organization by exchanging information for continuous improvement.
6. The Kanban Method takes advantage of an evolutionary process to allow beneficial
changes to occur within an organization, protecting it from extinction. The evolutionary
process involves: dealing with differences; select to increase the value contributed to
customers; maintain and amplify the useful change while rejecting or reversing the ineffective
change.
A Kanban board is a visual project management tool that helps teams manage work by
representing tasks as cards and stages of work as columns
To support sprints , scrum teams use specific roles, artifacts, and events.
To make sure that they meet the goals of each part of the process, scrum teams use
transparency, inspection, and adaptation throughout development.
Scrum: Sprints
In Scrum, work is organized into short iterations known as “sprints,” typically
lasting one to four weeks.
During each sprint, the team focuses on delivering a small, tangible piece of the
overall project, known as an increment.
Regular meetings, such as daily stand-ups and sprint reviews, keep the team
aligned and ensure progress is on track.
By breaking the work into manageable chunks and prioritizing flexibility and
responsiveness, Scrum enables teams to adapt quickly to changing requirements
and deliver high-quality products efficiently.
During a sprint, you make all progress transparent and conduct constant
inspections to assess progress toward the sprint goal, and consequently,
toward the release goal.
To organize the day, you hold a daily scrum meeting by coordinating what
the team will work on today. Essentially, the scrum team inspects its progress
toward the sprint goal and adjusts its plan to achieve the sprint goal based on
the reality of the day.
At the end of the sprint, you use a sprint review meeting and a sprint
retrospective meeting to assess product improvements and team
performance, respectively, and plan necessary adaptations.
Scrum is simple: three roles, three artifacts, and five
events. Each plays a part to ensure that the scrum
team has continuous transparency, inspection, and
adapta-
tion throughout product development.
Scrum Roles
Scrum’s three roles — the people working on the product — are as follows:
Additionally, scrum teams find that they’re more effective and efficient when
they work closely with two non-scrum–specific roles:
It provides important information about the product under development, the actions
required to achieve the objectives, and the measures taken during the life of the
product.
They provide structure to the scrum process because they act as guidelines for the
product development plan.
» Product backlog: The full list of requirements that defines the product, often documented in
terms of business value from the perspective of the end user. The product backlog is fluid
throughout the product life-cycle. All scope items, regardless of level of detail, are in the product
backlog. The product owner owns the product backlog, determining what goes in it and in what
priority.
» Sprint backlog: The list of requirements and tasks in a given sprint enabling the team to
achieve a specific sprint goal. The product owner and the development team select the
requirements for the sprint in sprint planning, with the development team breaking down these
requirements into tasks. Unlike the product backlog, sprint backlog tasks can be changed only by
the development team as it sees fit to ensure that it achieves the sprint goal.
» Product increment: The usable, potentially shippable functionality. Within the context of a
single sprint, the product increment includes functionality from requirements that have been
elaborated, designed, developed, tested, integrated, documented, and approved to meet the
business needs for which it was intended. Whether the product is a website or a new house, the
product increment should be complete enough to demonstrate its working functionality. Product
increments are released to the customer after enough shippable functionality has been
demonstrated to meet the customer’s business goals. In other words, it may take more than one
sprint to generate enough valuable functionality to ship to the customer.
Scrum Events
Scrum events provide regular opportunities for enacting the Scrum
pillars of Inspection, Adaptation and Transparency. In addition, they help
teams keep aligned with the Sprint and Product Goals, improve
Developer productivity, remove impediments and reduce the need to
schedule too many additional meetings.
» Sprint: Scrum’s term for iteration. The sprint is the container for each of the other scrum events, in
which the scrum team creates potentially shippable functionality. Sprints are short cycles, no longer than
a month, typically between one and two weeks, and in some cases as short as one day. Consistent sprint
length reduces variance; a scrum team can confidently extrapolate what it can do in each sprint based on
what it has accomplished in previous sprints. Sprints give scrum teams the opportunity to make adjust-
ments for continuous improvement immediately, rather than at the end.
» Sprint planning: Takes place at the start of each sprint. In sprint planning meetings, scrum teams
decide the business goal, scope, and supporting tasks will be part of the sprint backlog.
» Daily scrum: Takes place daily for no more than 15 minutes. During the daily scrum, development
team members inspect their progress and make adjustments to their plan to achieve their sprint goal and
coordinate removal of impediments with the scrum master.
» Sprint review: Takes place at the end of each sprint. In this meeting, the development team
demonstrates to the stakeholders and the entire organization the accepted parts of the product the team
completed during the sprint. The key to the sprint review is collecting feedback from the stakeholders,
which informs the product owner how to update the product backlog and consider the next sprint goal.
» Sprint retrospective: Takes place at the end of each sprint. The sprint retrospective is an internal
team meeting in which the scrum team members (product owner, development team, and scrum master)
discuss what went well during the sprint, what didn’t work well, and how they can make improvements for
the next sprint. This meeting is action-oriented and ends with tangible improvement plans for the next
sprint.
Benefits of the Scrum Framework
Increased productivity: Scrum helps organizations to manage complex, adaptive work by breaking it down into
smaller chunks and tracking progress regularly. This helps to increase productivity and efficiency.
Improved communication and collaboration: Scrum encourages regular team member interaction and
collaboration, which enhances the team’s performance as a whole.
Better adaptability: Scrum is an iterative process, meaning teams can continuously improve and adapt their
processes and practices as needed. This helps organizations to be more adaptable and respond quickly to
changing conditions.
Increased customer satisfaction: The use of Scrum puts the customer at the center of the process and encourages
regular feedback, which helps organizations to deliver products and services that meet the needs and
expectations of the customer.
Faster delivery: Scrum helps organizations to deliver products and services faster by breaking down work into
smaller chunks and tracking progress regularly.
Increased transparency: Scrum provides a clear and transparent view of the progress of a project, which helps
organizations to identify and resolve issues quickly.
Reduced costs: Scrum helps organizations to reduce costs by increasing productivity, reducing waste, and
delivering products and services faster.
Improved quality: Scrum IT professionals are encouraged by regularly testing and feedback, which helps
organizations to deliver high-quality products and services.
Extreme Programming
The focus of extreme programming is customer satisfaction. XP teams achieve
high customer satisfaction by working collaboratively with customers to develop
the functionality the customer needs, when the customer needs them. New
requests are part of the development team’s daily routine, and the team is
empowered to deal with these requests whenever they crop up. The team
organizes itself around any problem that arises and solves it as efficiently as
possible.
When is it applicable ?
Design: The team creates only the essential design needed for current user stories,
using a common analogy or story to help everyone understand the overall system
architecture and keep the design straightforward and clear.
Coding: Extreme Programming (XP) promotes pair programming i.e. two developers
work together at one workstation, enhancing code quality and knowledge sharing. They
write tests before coding to ensure functionality from the start (TDD), and frequently
integrate their code into a shared repository with automated tests to catch issues early.
Testing: Extreme Programming (XP) gives more importance to testing that consist of
both unit tests and acceptance test. Unit tests, which are automated, check if specific
features work correctly. Acceptance tests, conducted by customers, ensure that the
overall system meets initial requirements. This continuous testing ensures the software’s
quality and alignment with customer needs.
Listening: In the listening phase regular feedback from customers to ensure the product
meets their needs and to adapt to any changes.
Extreme Programming Principles
» Coding is the core activity. Software code not only delivers the solution but can also be
used to explore problems. For example, a programmer can explain a problem using code.
» XP teams do lots of testing during development, not at the end. If doing just a little
testing helps you identify some defects, a lot of testing will help you find more. In fact,
developers don’t start coding until they’ve worked out the success criteria for the requirement
and designed the unit tests. A defect is not a failure of code; it’s a failure to define the right test.
» Communication between customer and programmer is direct. The programmer must
understand the business requirement to design a technical solution.
» For complex systems, some level of overall design, beyond any specific function, is
necessary. With XP development, the overall design is considered during regular refactoring —
namely, using the process of systematically improving the code to enhance readability, reduce
complexity, improve maintainability, and ensure extensibility across the entire code base.
Key Practices of Extreme Programming
Values of Extreme Programming
Communication: The essence of communication is for information and ideas to be exchanged
amongst development team members so that everyone has an understanding of the system
requirements and goals. Extreme Programming (XP) supports this by allowing open and frequent
communication between members of a team.
Simplicity: Keeping things as simple as possible helps reduce complexity and makes it easier to
understand and maintain the code.
Feedback: Feedback loops which are constant are among testing as well as customer
involvements which helps in detecting problems earlier during development.
Courage: Team members are encouraged to take risks, speak up about problems, and adapt to
change without fear of repercussions.
Respect: Every member’s input or opinion is appreciated which promotes a collective way of
working among people who are supportive within a certain group.
Extreme Programming Roles
Putting it all together
Putting it all together
Thank You!