Slot3 SWE201c
Slot3 SWE201c
Slot3 SWE201c
“On February 11-13, 2001, at The Lodge at Snowbird ski resort in the Wasatch mountains of Utah, seventeen people met to talk, ski,
relax, and try to find common ground—and of course, to eat. What emerged was the Agile ‘Software Development’ Manifesto.
Representatives from Extreme Programming, SCRUM, DSDM, Adaptive Software Development, Crystal, Feature-Driven Development,
Pragmatic Programming, and others sympathetic to the need for an alternative to documentation driven, heavyweight software
development processes convened.“
That is, while there is value in the items on the right, we value the items on the left more.
Agile Principles
Big batch vs Small bite-size
Hand-off vs Collaboration
Culture change
Agile project journey
Advantages Vs Disadvantages of Agile model
Advantages: Disadvantages:
• Ability to rapidly and flexibly respond to change • Highly dependent upon the motivation and expertise
• Minimal formal processes of the developers
• Communication between project team members • Difficult for new team members to enter the project
is encouraged • Need good communication skills to interact with the
• Customer feedback is provided throughout the client regularly
entire development process • Difficult to use during large projects due to the
• Development is broken into short intervals with emphasis on real-time communication
frequent software releases
When to use Agile model
Discovering user needs
Conversation
Adaptive
User stories
• As a mobile commerce customer, I want a shopping cart button, so I can easily store items that
I’m interested in purchasing.
• As a dry cleaning customer, I want to receive a push notification when my order is done, so I
can pick it up right away.
• As a student, I want to invite my classmates to download the app, so we can work together on a
project.
• As a manager, I want an option for anonymous feedback, so my employees feel comfortable
sharing information with me.
• As an HR rep, I want to generate a report on employee feedback, so I can understand which
departments need better training materials.
• As a basketball player, I want a court reservation feature, so I can book a private time to
practice at the gym.
Epic user stories
• The epic is the large item of the work that can be broken down into
smaller user stories or tasks.
• Epic stories help you paint a broader picture by summarizing a complex
action composed of smaller actions. In this sense, the epic user story is
like an overview of a product feature
Epic user stories Example
User Story Mapping
The process of creating a user story map can be broken down into seven distinct steps that we recommend you
take collectively with your team during a communal planning session
The process of creating a user story map can be broken down into seven distinct steps that we recommend you
take collectively with your team during a communal planning session
The process of creating a user story map can be broken down into seven distinct steps that we recommend you
take collectively with your team during a communal planning session
The process of creating a user story map can be broken down into seven distinct steps that we recommend you
take collectively with your team during a communal planning session
The process of creating a user story map can be broken down into seven distinct steps that we recommend you
take collectively with your team during a communal planning session
https://prodmapping.com/guides/user-story-mapping-in-product-discovery-with-an-example/
User story map Example
By the team you reach this point, your map has become quite big. In
fact, you may need an entire wall or floor rather than just a piece of
paper. If size is a problem, digital tools may come to rescue. Even
more, while the team proceeds with product development and new
customers feedback becomes available, the map grows with new
ideas and discoveries.
Sooner than later, the product manager will need to prioritize user
stories according to value for the customer and the business.
Practically, this consists of shuffling user stories so that the high
priority ones are on top. Moreover, prioritization requires to look at the
full customer journey, the horizontal direction, so that value spans the
full customer experience. This is why prioritizing on a story map is
better than doing on a backlog. Indeed, a story map allows to prioritize
not only vertically (across user stories), but also horizontally
Once prioritization is done, the whole product team needs to literally
“draw a line” between functionalities that will be delivered in the first
release and functionalities that will go to future releases. The first
release of a product, sometimes called Minimum Viable Product
(MVP), should focus on the core features of the app, so that the
product team can go to market relatively quickly and get early
feedback from users on those stories that matter most for them. Story
mapping can be applied to scoping minimum viable features (MVF),
the equivalent of MVPs for single product features.
Here is how the MVP looks like on the story map of our example.
User story map Example
Example story mapping with the user need to find a book and reserve
User story map Example
Example story mapping with the user need to find a book and reserve
User story map Example
Example story mapping with the user need to find a book and reserve
Product backlog
Agile is a philosophy and a mindset. Agile is not a methodology. Agile consists of a set of
methodologies and frameworks which fulfill certain aspects of the Agile Manifesto described
earlier. I look at Agile as a umbrella with various agile methodology and frameworks under the
umbrella.
o Scrum
o Kanban
o Extreme Programming (XP)
Agile/Scrum
methodologies
Scrum Frameworks
• Product Owner
o Possibly a Product Manager or Project Sponsor
o Decides features, release date, prioritization, $$$
• Scrum Master
o Typically a Project Manager or Team Leader
o Responsible for enacting Scrum values and practices
o Remove impediments / politics, keeps everyone productive
• Project Team
o 5-10 members; Teams are self-organizing
o Cross-functional: QA, Programmers, UI Designers, etc.
o Membership should change only between sprints
Sprint in Scrum
• Sprint Planning
• Daily Scrum
o Daily Standups
• Sprint Review
• Sprint Retrospective
Product backlog in Scrum
A product backlog is a list of requirements, also known as user stories, arranged in a specific order to enhance the
value of the delivered product that needs to work upon to create or maintain the product. The product backlog
should be managed by the product owner. There can be only one product backlog for a product.
Product backlog in Scrum
Product backlog in Scrum
Sprint Backlog in Scrum
A daily stand-up meeting is a short organizational meeting that is held each day. The meeting, generally limited to
between five and 15 minutes long, is sometimes referred to as a stand-up, a morning roll-call or a daily Scrum.
For example,
• “Yesterday I was working on getting the SharePoint list data from
the postman tool”,
• “Today, I am working on updating the list item using the postman
tool”, and “Tomorrow, I will test the postman tool query, and
deploy it in the production.”
• And, I have no impediments, all tasks are going as planned.
Sprint Review
To further hone the process, XP also uses a set of 12 practices throughout the process. They are based on
the Agile manifesto, but adapted to fit XP needs:
1.The planning game: XP planning is used to guide the work. The results of planning should be what you’re
hoping to accomplish and by when, and what you’ll do next.
2.Customer tests: When you finish a new feature, the customer will develop an acceptance test to determine how
close it is to their original user story.
3.Small releases: XP uses small, routine releases to gain insights throughout the process. Often, releases go
straight to the customers, though they can happen in-house.
4.Simple design: The XP system is designed for simplicity—you’ll produce only what is necessary and nothing
more.
5.Pair programming: All programming comes from a pair of developers who sit side by side. There is no solo
work in extreme programming.
6.Test-driven development (TDD): XP’s reliance on feedback requires heavy testing. Through short cycles,
programmers release automated tests and then immediately react.
12 extreme programming practices
7. Refactoring: This is where you’ll pay attention to the finer details of the codebase, removing duplicates and
making sure that the code is cohesive. This results in good, simple designs.
8. Collective ownership: Any coding pair can change the code at any time, whether or not they developed it. XP
produces code as a team, and everyone’s work is held to the higher collective standards.
9. Continuous integration: XP teams don’t wait for completed iterations, they integrate constantly. Often, an XP
team will integrate multiple times a day.
10.Sustainable pace: The intensity of XP works requires you to set a sustainable pace. Teams should decide
how much work they can produce in this way per day and per week, and use that to set work deadlines.
11.Metaphor: The metaphor is, quite literally, a metaphor. It’s decided as a team, and uses language to describe
how the team should function. For example, we’re ants working as a collective to build up the anthill.
12.Coding standard: XP teams follow one standard. In the same way that writers need to take on a brand’s
voice to sound like the same person is always writing, XP developers code in the same, unified way so that it
reads like one developer.
XP – Process Model
Scrum is a framework for helping teams develop complex projects in an adaptive manner. Scrum doesn’t
dictate how developers do the work. XP, as mentioned, puts much emphasis on good programming practices.
Also, XP is obviously about programming. Scrum, on the other hand, can be applied to any project that benefits
from an iterative approach. XP accepts changes to its components. Teams are allowed and even encouraged
to tweak the practices according to their specific needs. The Scrum Guide, on the other hand, is adamant in
stating that “While implementing only parts of Scrum is possible, the result is not Scrum.” Also, Scrum is a
framework that you need to fill out with methodologies and practices for doing the work. That means that it’s not
only possible to use XP and Scrum together but extremely recommended.
KANBAN
What is Kanban?
The Kanban software development process is a method that emphasizes visualizing tasks, limiting work-in-
progress, managing flow, and continuously improving. Here’s how it works:
1. Visualize workflow: Start by mapping out your team’s process on a Kanban board. This might include stages
like “Backlog,” “To Do,” “In Progress,” “Review,” and “Done.” Each task is represented by a card that moves
across these stages.
2. Limit work-in-progress (WIP): Set limits on the number of tasks that can be in progress at any given time.
This helps prevent your team from getting overwhelmed and encourages them to focus on completing tasks
before starting new ones.
3. Measure and manage flow: Use the metrics and analytics provided by your Kanban software to track how
tasks move through your workflow. Look for bottlenecks and areas where tasks tend to stall and adjust your
process to improve flow.
4. Continuously improve: Regularly review your team’s performance and make incremental improvements. This
might involve tweaking your WIP limits, adjusting your workflow stages, or introducing new practices to
enhance productivity.
Kanban work?
Kanban work?
Kanban work?
Kanban vs. Scrum
May vary based on sprint Can lead to reduced lead Strives for rapid and frequent
Lead Time Reduction Central objective
length times releases
Scopes are fixed within Flexible, can accommodate Welcomes and adapts to
Change Handling Adaptable to changes
sprints changes changing requirements
Which projects are most suitable for Waterfall? Which projects are most suitable for Agile?
Waterfall projects are best suited for: Agile projects are best suited for:
• Smaller, well-defined, and simpler projects • Projects with an involved client
• Working with external organizations or vendors, • Instances where there is scope for changing
where a high degree of collaboration may be requirements
impractical • Benefit from phased delivery.
• Projects with a fixed scope, time, and budget • Efforts where your organization is responsible for the
• Projects with a client that is not engaged entire process
• Larger, undefined, complex projects
Reference coursera
https://www.coursera.org/learn/software-processes/lecture/mLIZn/applying-software-development-models
https://www.coursera.org/learn/software-processes/lecture/W387O/model-selection-when-to-use-which-model