0% found this document useful (0 votes)
11 views33 pages

Week21LectureAgileDevelopment Cb12c27e Da8a 4ccb 8c1e 6ec23ecdac5d 109054

The document provides an overview of Agile Software Development, highlighting its values, principles, and methodologies. Agile emphasizes adaptability, iterative progress, and stakeholder collaboration to deliver high-quality software efficiently. It discusses various Agile frameworks such as Scrum, Kanban, Extreme Programming, and Feature Driven Development, each with unique processes and benefits.

Uploaded by

Harry Borth
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views33 pages

Week21LectureAgileDevelopment Cb12c27e Da8a 4ccb 8c1e 6ec23ecdac5d 109054

The document provides an overview of Agile Software Development, highlighting its values, principles, and methodologies. Agile emphasizes adaptability, iterative progress, and stakeholder collaboration to deliver high-quality software efficiently. It discusses various Agile frameworks such as Scrum, Kanban, Extreme Programming, and Feature Driven Development, each with unique processes and benefits.

Uploaded by

Harry Borth
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 33

CS5002NT

Software Engineering
Week 21
Agendas
● Agile Software Development

● Values of Agile

● Principles of Agile

● Stages of Agile

● Different methodologies under Agile


What is Agile?

● Agile is the ability to create and respond to change

● It is a way of dealing with, and ultimately succeeding in, an


uncertain and turbulent environment
What is Agile?
● The authors of the Agile Manifesto chose “Agile” as the label for this
whole idea because that word represented the adaptiveness and
response to change which was so important to their approach

● It’s really about thinking through how you can understand what’s going
on in the environment that you’re in today, identify what uncertainty
you’re facing, and figure out how you can adapt to that as you go
along.[i.e Amazon ]
Agility and the Cost of Change
Agile Software Development
● Agile is an iterative approach to project management and software development
that helps teams deliver value to their customers faster and with fewer headaches.

● Instead of betting everything on a "big bang" launch, an agile team delivers work in
small, but consumable, increments.

● Requirements, plans, and results are evaluated continuously so teams have a natural
mechanism for responding to change quickly.
Agile Software Development
● The Agile methodology was created by a group of software developers who
wanted a better approach to the traditional development process, which they
found to be too complicated and weighed down by documentation
requirements.

● In a founding document called the Agile Manifesto, the group outlined 4 values
and 12 principles that guide the Agile philosophy
4 Values of Agile
● Individuals and interactions over processes and tools.

● Working software over comprehensive documentation.

● Customer collaboration over contract negotiation.

● Responding to change over following a plan.[Trend and needs]


12 Principles of Agile
● Satisfy the customer through early and continuous delivery of valuable software.

● Welcome and harness changes for the customer's competitive advantage, even
late in development.

● Deliver working software frequently, from a couple of weeks to a couple of


months, with a preference for shorter timescales.

● Have daily collaboration between business people and developers throughout the
project.
12 Principles of Agile
● Build projects around motivated individuals. Create the environment and support
developers need, and trust them to get the job done.[micro-management ,
self-driven teams ]

● Prioritize face-to-face conversation as the most efficient and effective method of


conveying information to and within a development team.

● Measure progress by the amount of working software completed.

● Maintain a constant and sustainable pace of development indefinitely.


12 Principles of Agile
● Enhance agility through continuous attention to technical excellence and good
design.

● Keep it simple. Simplicity—the art of maximizing the amount of work not done—is
essential.

● Recognize that the best architectures, requirements, and designs emerge from
self-organizing teams.

● Regularly reflect and adapt behavior for continual improvement. [sudden


Benefits of Agile

● Greater stakeholders engagement and collaboration


○ Encourages high degree of input and collaboration between the
client and development team
○ Leads to happier clients due to transparency throughout the
process and developers are better informed on client needs and
wants
Benefits of Agile
● Predictable costs and scheduling
○ By breaking down the development process into iterative sprints, project
managers can more accurately estimate costs and set clear, predictable
timelines.
○ This makes stakeholders happier because they know what to expect and can
plan budgets and marketing strategies more precisely.
○ It also makes the development process easier for teams because they can focus
on delivering quickly and reliably and test software regularly for quality and
efficacy.
Benefits of Agile

● Flexibility amidst change


○ Agile project management is all about being nimble so teams
can adapt to changes quickly while reducing sunk costs.
○ This gives teams the flexibility to refine and prioritize the
product backlog so that they are always delivering high-quality,
relevant products on time and on budget.
Benefits of Agile

● High quality products


○ Agile product development integrates regular testing into the
development process.
○ This makes it easier for the product owner to identify any issues
early on and make changes as needed.
○ The result is higher quality products that are relevant and
thoroughly vetted.
6 Stages of Agile Lifecycle
● Concept
● Inception
● Iteration
○ Requirements
○ Development
○ Testing
○ Delivery
○ Feedback
● Release
● Production
● Retirement
Agile Methodologies

● Scrum
● Kanban
● Extreme Programming
● Feature Driven Development
Scrum

● Scrum is an Agile framework that focuses on cross-functional


teamwork, accountability, and iteration in order to develop,
deliver, and support complex products.

● It’s primarily used for software development, but its principles


can be applied to other project management teams too.
Scrum

● The Scrum framework is organized into key roles, events, and


artifacts:
○ Scrum Roles
■ Product Owner[Vision, requirements]
■ Scrum Master
■ Scrum Development Team
Scrum

○ Scrum Events
■ Daily Scrum
■ Sprint Planning Meeting [prioritize ]
■ Sprint Review[feature demo ]
■ Sprint Retrospective
Scrum

○ Scrum Artifacts
■ Product Backlog
■ Sprint Backlog
■ Increment (or Sprint Goal)[working product version]
Scrum Process Flow
Kanban
● Kanban is an agile model designed to help teams work together more
effectively.

● It follows three guiding principles:


○ Visualize your workflow.[Trello]
○ Limit the amount of work in progress.[Deskboard]
○ Organize the workflow based on priority.
Kanban
● Unlike Scrum, Kanban doesn’t have prescribed roles or timeboxed sprints.

● Instead, Kanban focuses on shorter cycles for faster delivery and transparency
throughout development so everyone understands who is responsible for what and when.

● Tools like an online Kanban board give team members the chance to contribute ideas,
change the status of tasks, and track their progress so everyone works more efficiently
and effectively together.
Extreme Programming (XP)

● XP is the most specific Agile framework for software development practices.

● It aims to not only produce high-quality software but to make the entire process
easier on the development team itself. [Continuous feedback, short development cycles]

● XP values communication, feedback, simplicity[simple,clean code,scale ] courage, and


respect.
Extreme Programming (XP)

● It’s best applied when:


○ There are constantly changing requirements
○ Teams have tight deadlines
○ Stakeholders want to reduce risk under deadlines
○ Teams can automate unit and functional tests
Extreme Programming (XP) ■The most widely used agile process, originally proposed
by Kent Beck
■XP Planning
• Begins with the creation of “user stories”[feature ,
requirements]
• Agile team assesses each story and assigns a cost
• Stories are grouped to form a deliverable increment
• A commitment is made on delivery date[deadline ]
• After the first increment “project velocity” is used to
help define subsequent delivery dates for other
increments[Track and Predict]
• CRC[Class-Responsibility-Collaboration]

28
The Extreme Programming Process
Feature Driven Development
● Feature Driven Development (FDD) is a client-centric[value to the client.] Agile
methodology tool that focuses on development and status reporting across all
levels.

● This approach helps prevent two of the biggest roadblocks in software


development: confusion and rework.
● [Each team knows what to do next] [minimize misunderstandings and
reduce unnecessary changes.]
Feature Driven Development

● FDD follows five basic steps:


○ Develop an overall model
○ Build a feature list[small, functional features]
○ Plan by feature
○ Design by feature
○ Build by feature[Implement, test, and integrate]
Feature Driven Development
● Unlike Scrum, FDD is a scalable [developed simultaneously by different teams] model
that delivers features on a much shorter timeframe than other Agile frameworks.

● For instance, instead of a typical 4-week iteration cycle in Scrum, FDD aims to deliver
features every 2-10 days.

● This makes it easier for teams to track and address errors, adapt to client requests, and
get new team members up-to-date quickly.
THANK YOU!

You might also like