0% found this document useful (0 votes)
106 views8 pages

Agile Methodologies

Uploaded by

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

Agile Methodologies

Uploaded by

Sanjay Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Department of Computational Intelligence

CSE (Artificial Intelligence and Machine Learning)

Vision

To be a premier centre for academic excellence and research through innovative


interdisciplinary collaborations and making significant contributions to the
community, organizations, and society as a whole.

Mission

 To impart cutting-edge Artificial Intelligence technology in accordance with


industry norms.
 To instill in students a desire to conduct research in order to tackle
challenging technical problems for industry.
 To develop effective graduates who are responsible for their professional
growth, leadership qualities and are committed to lifelong learning.

QUALITY POLICY

 To provide sophisticated technical infrastructure and to inspire students to


reach their full potential.
 To provide students with a solid academic and research environment for a
comprehensive learning experience.
 To provide research development, consulting, testing, and customized
training to satisfy specific industrial demands, thereby encouraging self-
employment and entrepreneurship among students.

For more information: [Link]

Agile Methodologies 2024-2025


MALLA REDDY COLLEGE OF ENGINEERING AND TECHNOLOGY
IV Year [Link]. AI&DS- I Sem L/T/P/C 3/-/-/-3

(R20A6607) AGILE METHODOLOGIES


PROFESSIONAL ELECTIVE - VI

Course Objectives:

i. To introduce characteristics of an agile development process.


ii. To understand agile software development process models and plan driven process
models.
iii. To understand software project characteristics that would be suitable for an agile
process.
iv. To impart and Identify software project characteristics that would not be
suitable for an agile process.
v. To implement a small scale software project using the Scrum process methodology

Unit 1:
History of Agile Methodologies, Agile and Lean Software Development: Basics and
Fundamentals, Extreme Programming, Scrum, Agile and Scrum Principles Agile Manifesto,
Twelve Practices of XP

Unit 2:
Agile Estimation & Planning ,Agile Requirements,User Stories, Backlog Management,
Agile Architecture

Unit 3:
Tracking Agile Projects, Lean Software Development, Agile Risk management,

Unit 4:
Agile Project Tools, Continuous Integration (CI)

Unit 5:
Agile Testing, Scaling Agile for Large Projects

Text Books:
1) Agile Development with Scrum, Ken Schwaber & Mike Beedle, Prentice Hall, 2001
2) Integrating Agile Development in the Real World, Peter Schuh, Charles River
Media, 2005 (on Books 24x7)

References:
1) Agile Software Development – The Cooperative Game (2nd Edition), Alistair Cockburn,
2007
2) Succeeding With Agile, Software Development Using Scrum, Mike Cohn, Addison

Agile Methodologies 2024-2025


Wesley, 2010 SDLC 3.0 Beyond a Tacit Understanding of Agile, Mark Kennaley,
Fourth Medium Press, 2010 Course Outcomes:
Upon completion of the course, the student will be able to:
i. Define the common characteristics of an agile development process.

ii. List and contrast state of the practice agile methodologies.


iii. Contrast agile software development process models and plan driven process models.
iv. Identify software project characteristics that would be suitable for an agile process.
v. Identify software project characteristics that would not be suitable for an agile
process.
vi. Plan and implement a small scale software project using the Scrum process
methodology.

MALLA REDDY COLLEGE OF ENGINEERING AND TECHNOLOGY

CSE (Artificial Intelligence and Machine Learning)


INDEX

[Link] Unit Topic P. No


1 I History of Agile Methodologies 2

Agile and Lean Software Development


2 I 6

3 I Basics and Fundamentals 12

4 I Extreme Programming, Scrum 14

5 I Agile and Scrum Principles, Agile Manifesto 17

6 I Twelve Practices of XP 21

7 II Agile Estimation &amp 25


8 II Planning 25

9 II Agile Requirements 26

10 II User Stories, Backlog Management 29

11 II Agile Architecture 35

12 III Tracking Agile Projects. 37

13 III Lean Software Development 39


14 III Agile Risk management 45

Agile Methodologies 2024-2025


15 IV Agile Project Tools 46

16 IV Agile Project Tools 48

17 IV Continuous Integration (CI). 49

18 V Agile Testing 49
Scaling Agile for Large Projects
19 V 52

Scaling Agile for Large Projects.


20 IV 59

History of Agile
 In 1957, people started figuring out new ways to build computer programs. They wanted to
make the process better over time, so they came up with iterative and incremental methods.
 In the 1970s, people started using adaptive software development and evolutionary project
management. This means they were adjusting and evolving how they built software.
 In the 1990s, there was a big change. Some people didn’t like the strict and super-planned ways
of doing things in software development. They called these old ways “waterfall.” So, in
response, lighter and more flexible methods showed up.
These included:
1. Rapid Application Development (RAD) in 1991.
2. Unified Process (UP), Dynamic Systems Development Method (DSDM) in 1994.
3. Scrum in 1995.
4. Crystal Clear and Extreme Programming (XP) in 1996.
5. Feature-Driven Development (FDD) in 1997.
Even though these came before the official “Agile Manifesto”, we now call them agile software
development methods.
In 2001, seventeen

 In 2005, Alistair Cockburn and Jim Highsmith added more ideas about managing projects,
creating the PM Declaration of Interdependence.
 Then, in 2009, a group, including Robert C. Martin, added principles about software
development. They called it the Software Craftsmanship Manifesto, focusing on being
professional and skilled.
 In 2011, the Agile Alliance, a group of agile enthusiasts, made the Guide to Agile Practices
(later called Agile Glossary). This was like a shared document where agile people from around
the world put down their ideas, terms, and guidelines. It’s a bit like a dictionary for how to do
agile things.
What is LSD?
Lean Software Development (LSD) is an approach derived from lean manufacturing principles aimed at
optimizing efficiency and minimizing waste in the software development process.
1. Prevent Defects: It integrates quality assurance throughout the development process to prevent
defects.
2. Eliminate Waste: It focuses on activities that add value to the customer and eliminates those
activities that do not add value.
3. Fast Delivery: Reduces cycle time to deliver software quickly and respond to feedback and
changing requirements rapidly.
4. Delay Decisions: Delay decisions until they can be made based on facts.
History of LSD
Here is a brief timeline highlighting the key milestones in the history of LSD:
Timeline Milestone Description

1980s Lean Manufacturing Toyota Production Systems (TPS) developed by Taiichi Ohno and

Agile Methodologies 2024-2025


Timeline Milestone Description

Principles Shigeo Shingo emphasizes on eliminating waste, improving quality,


and continuous improvement. These were the foundation principles for
lean thinking.

The book “The Machine That Changed The World” by James P.


Emergence of Lean
Womack, Daniel T. Jones, and Daniel Roos describes the principles of
Thinking
1990s lean manufacturing.

Lean Principles in The book “Lean Software Development: An Agile Toolkit” by Mary
Early Software Poppendieck and Tom Poppendieck outlines the key principles of
2000s Development LSD.

2000s Adoption and Spread Lean principles started becoming popular in the software industry.

Integration with
LSD becomes more integrated with Agile methodologies.
2010s Agile

Lean principles continue to evolve and influence modern software


Continuous Evolution
2020s development practices.

Seven Principles of LSD


There are 7 established lean principles that come with a set of tactics, practices, and processes that build more
efficient software products:
1. Eliminating the Waste
To identify and eliminate wastes e.g. unnecessary code, delay in processes, inefficient communication, issues
with quality, data duplication, more tasks in the log than completed, etc. regular meetings are held by Project
Managers. This allows team members to point out faults and suggest changes in the next turn.
2. Fast Delivery
Previously long-time planning used to be the key to success in business, but with time, it has been found that
engineers spend too much time on building complex systems with unwanted features. So they came up with
an MVP strategy which resulted in building products quickly that included a little functionality and launching
the product to market and seeing the reaction. Such an approach allows them to enhance the product based on
customer feedback.
3. Amplify Learning
Learning is improved through ample code reviewing and meetings that are cross-team applicable. It is also
ensured that particular knowledge isn’t accumulated by one engineer who’s writing a particular piece of code
so paired programming is used.
4. Builds Quality
LSD is all about preventing waste and keeping an eye on not sacrificing quality. Developers often apply test-
driven programming to examine the code before it is written. Quality can also be gained by getting constant
feedback from team members and project managers.
5. Respect Teamwork
LSD focuses on empowering team members, rather than controlling them. Setting up a collaborative
atmosphere, keeping perfect balance when there are short deadlines and immense workload. This method
becomes very important when new members join a well-established team.
6. Delay the Commitment
In traditional project management, it often happens when you make your application and it turns out to be
completely unfit for the market. LSD method recognizes this threat and makes room for improvement by
postponing irreversible decisions until all experiment is done. This methodology always constructs software
as flexible, so new knowledge is available and engineers can make improvements.

Agile Methodologies 2024-2025


7. Optimizing the Whole System
Lean’s principle allows managers to break an issue into small constituent parts to optimize the team’s
workflow, create unity among members, and inspire a sense of shared responsibility which results in
enhancing the team’s performance.
LSD Process
Here is the overview of the lean software development process:
1. Identify Value: Understand the customer values and focus on delivering features that meet these
needs.
2. Map the Value Stream: This involves mapping out the entire software development process to
identify and eliminate wasteful activities that do not add value.
3. Create Flow: Ensure a smooth and continuous flow of work by minimizing delays and
interruptions.
4. Establish Pull: Develop features based on customer demand rather than pushing features
through the process.
5. Seek Perfection: Regularly review and refine the development process. Always encourage the
team members to identify the areas of improvement and implement changes iteratively.
6. Build Quality In: Use practices such as test-driven development (TDD) and continuous
integration to integrate quality assurance throughout the development process.
7. Empower Teams: Empower development teams by providing them with the necessary tools,
resources, and autonomy to make decisions.
LSD vs Agile
Aspect Lean Software Development (LSD) Agile

It originated from lean manufacturing, It originated from the Agile Manifesto


Origin especially the Toyota Production System. in 2001.

The focus is on waste elimination and value The focus is on customer collaboration
Focus optimization. and iterative delivery.

Process and Kanban, Value Stream Mapping, Continuous Scrum, Extreme Programming (XP),
Practices Improvement (Kaizen). Iterative Development.

Delays decisions until necessary and are Flexible and adaptive to changes as
Decision Making based on facts. they arise.

Iteration and It involves continuous improvement through It involves frequent reassessment and
Feedback regular feedback. adaptation in short cycles.

Customer It involves understanding and delivering It involves continuous collaboration


Involvement customer value continuously. and feedback from customers.

Benefits of LSD
Here are some key benefits of LSD that help organizations to improve their software development processes
and outcomes:
1. Increased Efficiency: LSD reduces delays and inefficiencies by identifying and eliminating
non-value-adding activities.
2. Higher Quality: It integrates quality assurance throughout the development process, thus
preventing defects and ensuring quality products.
3. Faster Delivery: Shorter development cycles allow for quicker release of features and updates,
thus meeting customer demands more rapidly.
4. Adaptability: Delaying decisions until they are necessary and are based on facts, allowing
teams to adapt to changes and new information.
5. Enhanced Collaboration: Engages customers throughout the development process, ensuring
that their needs and feedback are continuously addressed.
Limitations of LSD

Agile Methodologies 2024-2025


Here are some key limitations of LSD:
1. Cultural Resistance: Implementing LSD requires a significant cultural shift and if there is
resistance to change from team members and management then it can hinder its adoption and
effectiveness.
2. Learning Curve: There is a steep learning curve associated with understanding and applying
lean principles and practices effectively.
3. Requires Strong Leadership: Successful implementation of LSD requires strong and
committed leadership to guide the transition.
4. Difficulty in Measuring Waste: In LSD, determining waste is subjective and challenging. It
requires a deep understanding of processes and value streams.
5. Resource Intensive: Implementing LSD requires an initial investment in training, tools, and
process redesign. This can be significant.
The Agile Manifesto consists of four core values and twelve principles that provide a framework for teams to
deliver high-quality software in a more adaptive and responsive manner

Four Core Values


Individuals and interactions over processes and tools
Agile emphasizes the importance of people and their interactions as the primary drivers of project success.
Effective communication, collaboration, and teamwork are vital in Agile environments, fostering a sense of
ownership and responsibility among team members.

Working software over comprehensive documentation


While documentation remains essential, Agile prioritizes the delivery of working software that meets customer
needs. Frequent and incremental releases allow stakeholders to see tangible progress and provide valuable
feedback throughout the development process.

Customer collaboration over contract negotiation


Agile encourages close collaboration with customers and end-users. This customer-centric approach ensures that
the software being developed aligns with their evolving needs, increasing the likelihood of delivering a product
that satisfies their requirements.

Responding to change over following a plan


Agile acknowledges that change is inevitable in software development. Rather than rigidly adhering to a fixed
plan, Agile teams embrace change and view it as an opportunity for improvement.

Frequent iterations enable teams to adapt to new information and feedback, fostering a more responsive
development process. Agile software development thrives on change and adaptability, making flexibility the
heartbeat of its success.

Twelve Agile Development Principles:


the 12 principles from the Agile Manifesto :
1. Prioritize satisfying the customer through early and continuous delivery of valuable software.

2. Welcome changing requirements, even late in development. Agile processes harness change for the
customer's competitive advantage.

3. Deliver working software frequently, with a preference for shorter timescales.

4. Collaborate closely between business people and developers throughout the project.

5. Build projects around motivated individuals. Give them the environment and support they need, and
trust them to get the job done.

Agile Methodologies 2024-2025


6. Use face-to-face communication whenever possible for effective information sharing.

7. Measure progress primarily through working software.

8. Maintain a sustainable pace of work for the development team. Continuous work is sustainable work.

9. Focus on technical excellence and good design to enhance agility.

10. Keep things simple and maximize the amount of work not done (avoid unnecessary tasks).

11. Allow self-organizing teams to make decisions on how to accomplish their work.

12. Reflect at regular intervals on team effectiveness and adjust behavior accordingly.
Iterative and Incremental Development
At the heart of Agile lies the concept of iterative and incremental development. Unlike traditional "waterfall"
methods, where all development occurs sequentially in one large phase, Agile divides the software development
process into smaller iterations or time-boxed cycles.

Each iteration results in a potentially shippable increment of the software, with new features or improvements
being added in every cycle.

This iterative approach offers several advantages:

 Early Value Delivery: Customers can start using and benefiting from the software early in the
development process, gaining tangible value with each iteration.
 Continuous Feedback: Frequent releases allow stakeholders to provide feedback, guiding the
development direction and ensuring that the final product aligns with their expectations.
 Risk Mitigation: By breaking the project into smaller chunks, Agile reduces the risk associated with
large-scale development, making it easier to adjust and adapt to changes.
 Increased Transparency: Teams and stakeholders have a clear view of progress, making it easier to
identify and address potential issues or delays.
Cross-functional Teams and Collaborative Environment
Agile emphasizes the importance of cross-functional teams, where members possess diverse skills and expertise
needed to deliver a complete product.

These teams work together in a collaborative environment, promoting shared responsibility, knowledge
exchange, and collective ownership of project outcomes.

The cross-functional nature of Agile teams fosters a sense of empowerment. Team members are encouraged to
make decisions collectively, take ownership of tasks, and resolve challenges collaboratively. This dynamism
enables faster problem-solving, improved creativity, and a more resilient team structure.

Moreover, Agile methodologies often embrace practices like pair programming, where two developers work
together on the same piece of code. This leads to higher code quality, knowledge transfer, and reduced
knowledge silos within the team.

Agile Methodologies 2024-2025

You might also like