Agile development is a software development methodology that prioritizes flexibility, collaboration, and customer satisfaction. It emerged as a response to the limitations of traditional, rigid development methodologies, such as the Waterfall model. Agile focuses on iterative and incremental development, allowing teams to respond quickly to changing requirements and deliver a product that meets the customer's needs. Here's a detailed description of Agile development:
Principles of Agile Development:
Individuals and Interactions Over Processes and Tools:
Agile emphasizes the importance of communication and collaboration among team members. While processes and tools are essential, the primary focus is on fostering effective human interactions.
Working Software Over Comprehensive Documentation:
Agile values a working product as the primary measure of progress. While documentation is necessary, the emphasis is on delivering a functional solution to the customer.
Customer Collaboration Over Contract Negotiation:
Agile promotes a collaborative approach with the customer throughout the development process. Rather than relying on fixed contracts, Agile teams engage in ongoing discussions to ensure the product aligns with customer expectations.
Responding to Change Over Following a Plan:
Agile recognizes that change is inevitable in software development. Instead of rigidly following a plan, Agile teams adapt to changing requirements, allowing for more flexibility and responsiveness.
Agile Methodologies:
Scrum:
Scrum is one of the most popular Agile frameworks. It organizes work into fixed-length iterations called sprints, typically lasting two to four weeks. The development team works collaboratively to deliver a potentially shippable product increment at the end of each sprint.
Kanban:
Kanban is a visual management method that emphasizes continuous delivery and flow of work. Work items are represented on a Kanban board, and teams pull work through different stages, focusing on limiting work in progress to enhance efficiency.
Extreme Programming (XP):
XP is an Agile methodology that emphasizes technical excellence and close collaboration between developers and customers. Practices include test-driven development, continuous integration, pair programming, and frequent releases.
Key Concepts in Agile Development:
User Stories:
Agile projects use user stories to describe features from an end user's perspective. These stories help prioritize development efforts and ensure that features align with customer needs.
Sprints:
In Scrum, development occurs in fixed-length iterations called sprints. Sprints provide a consistent and manageable timeframe for delivering incremental improvements to the product.
Product Backlog:
The product backlog is a prioritized list of features and tasks that need to be addressed in the project. It is dynamic and evolves as the project progresses.
Daily Stand-ups:
Daily stand-up meetings, or daily scrums, are brief, time-bo
1. SEN 452 Agile Development BSE 7 Fall 2023
SEN 452 Agile Development BSE 7 Fall 2023
Agile Development
Dr. Engr. Sohaib Ahmed
Senior Associate Professor,
Department of Software Engineering
Bahria University, Karachi Campus,
Contact:
Sohaib.bukc@bahria.edu.pk
dr.sohaibahmed@gmail.com
Agile Fundamentals
2. SEN 452 Agile Development BSE 7 Fall 2023
Your Responsibilities
2
❑ As a Student
Attend classes regularly – No Attendance shortage issue
Ask questions if you have any queries regarding course material or anything
Submit assignments in time
Don’t miss assignments, mid term and final examinations – Can get good
result ☺
No Plagiarism is allowed in any sort of a written material – Write in
your own words
3. SEN 452 Agile Development BSE 7 Fall 2023
Marks Distribution
3
Activities Marks Distribution
Quizzes 10
Assignments 20
Mid Term 20
Final Term 50
Total 100
4. SEN 452 Agile Development BSE 7 Fall 2023
Recommended Books
4
❑ Text Book
Agile Project Management: The Complete Guide For Beginners to Scrum, Agile
Management, and Software Development by Greg Caldwell 2021, Alakai Publishing
LLC.
❑ Reference Books
Agile and Lean Concepts For Teaching and Learning Bringing Methodologies from
industry to the classroom Edited by David Parsons & Kathryn McCullum 2018
Springer
Learning Agile: Understanding Scrum, XP, Lean and Kanban by Andrew Stellar &
Jennifer Greene (Orielly), 2014 1st Edition
5. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
5
❑ What is Agile?
6. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
6
❑ What is Agile?
Agile --readiness for motion, nimbleness, activity, dexterity in motion
❑ Agility
The ability to both create and respond to change in order to profit in a turbulent
business environment
Companies need to determine the amount of agility they need to be competitive
7. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
7
❑ What is Agile?
❑ Chaordic
Exhibiting properties of both chaos and order
The blend of chaos and order inherent in the external environment and in people
themselves, argues against the prevailing wisdom about predictability and planning
Things get done because people adapt, not because they slavishly follow processes
8. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
8
❑ What is Agile Method?
Why do we want to talk about this?
What are Agile Methods and Practices?
In my mind all of this has to do with success
9. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
9
❑ What is Success?
For Organizations
10. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
10
❑ What is Success?
For Customers
11. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
11
❑ What is Success?
12. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
12
So success is intersection point of various other successes as
defined by the parties involved.
What has this got to with Agile Methods?
What are Agile Methods?
13. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
13
Is this what we mean by agile method:
public Method agileMethods{
getMethod(Agile.agile);
}
14. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
14
❑ Agile Philosophy – Definition
Agile methods are processes that support the agile philosophy.
Examples include Extreme Programming and Scrum
Agile methods consist of individual elements called practices.
Practices include using version control, setting coding standards, and giving weekly
demos to your stakeholders.
Agile Methods combine these practices to accentuate parts that support agile
philosophy
15. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
15
❑ Again Looking At the Success
16. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
16
Organization success is about delivering value – and agile
philosophy has this at the heart of it.
Personal success is, well Personal, but everyone gains from
improved collaboration.
Technical success, because of practices like Test Driven
Development and pair programming you are continuously
improving. This overlaps with personal
17. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
17
❑ Agile Practices
Every project is unique. So the trick is to customize an existing agile method to your
project
Thinking - Pair Programming, Energized Work, Informative Workspace, Root
Cause Analysis, Retrospectives etc
Collaborating – Trust, Sit Together, Real Customer Involvement, Ubiquitous
language, stand-up meeting, coding standards, sprint demo, reporting etc.
Releasing – Done, No Bugs, Version Control, Continuous Integration, Collective
Code ownership, documentation etc.
Planning – Vision, Release Planning, Iteration Planning, estimating etc.
Developing – Customer Tests, Test Driven Development, Simple Design etc.
18. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
18
❑ Well-Known Agile Methods
Scrum
XP (Extreme Programming)
Lean
Kanban
Agile Unified Process
Crystal
FDD (Feature Driven
Development)
And Others..
19. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
19
❑ Why Agile Rocks?
❑ Speed To Market
Agile lets you get your concept to your users as quickly as possible
During every sprint an agile project delivers something of value
At any point, you may determine you want to launch what has been delivered and
start building a user base or testing your hypothesis
❑ Flexibility
Agile is based on accommodating change
Software projects consistently change. As a product comes to life or the market
expands, you should be able to react and update the product accordingly.
Agile also realizes that great ideas are bound to come mid-project and being locked
into a scope doesn’t let you take advantage of these realizations
20. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
20
❑ Why Agile Rocks?
❑ Risk Management
Incremental releases means that the product can be used early in the process by
stakeholders and users
This lets you identify issues and feature deficits early in the process
Being adaptable to change means it isn’t a problem to change the scope midway
through the project, something that would be impossible in a waterfall style project
❑ Cost Control
Unlike a fixed budget project, agile is flexible with regard to scope
More often than not, our clients realize features they originally requested are no
longer necessary
This allows them to launch sooner and pay less
21. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
21
❑ Why Agile Rocks?
❑ Cost Control
Agile isn’t about paying a lot with uncertainty, it’s about paying for only what you
need
Need to stick within a budget? No problem! We can rearrange the product backlog
so that critical new features are implemented at the expense of less important
features, not your budget
❑ Quality
Agile integrates testing throughout the process
Consistently delivering tested software means higher overall quality and less time
spent on QAing the full application
22. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
22
❑ Why Agile Rocks?
❑ Right Product
Incremental releases let you test your product early and often
Even if you don’t release it to the public, it’s much easier to locate flaws and things
that can be improved when you have an actual product to play with vs a series of
designs
❑ Transparency
Agile lets you see, feel and use a project consistently throughout the project
You don’t see things in compartmentalized silos; you see how things work together
23. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
23
❑ Agile Misconceptions
❑ It’s Different
“I’ve never used agile before and I’m scared it will be too hard to get my whole
team on board with it.” It has been heard too many times.
And this is because agile may be new to you and your company. But while it might
take a slight rewiring of how stakeholders think about projects from the onset-- and
how designers and developers are used to working at your firm
It quickly becomes apparent that projects consistently run smoother on agile and
better results are produced
Plus, you likely can admit that waterfall isn’t the perfect process
While it might feel like it is more under control because everything is mapped out
from the beginning, projects undoubtedly take longer than they need to and cost
more than they should
Waterfall also doesn’t allow the flexibility to change things mid-project as new
insights come to life
24. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
24
❑ Agile Misconceptions
❑ Fixed Budget
“I have a fixed budget. That doesn’t work with Agile!”
On the contrary! Nothing about agile says it can’t meet a strict budget.
Agile gives you dedicated resources. Generally, there is a fixed cost to a sprint that
includes X team members
An agile team can estimate approximately how long it will take to complete the
goals that you have outlined and that will give you a budget
As the project evolves and you choose to add a new feature, agile lets you drop a
similarly sized feature so that you can stick to the initial budget
25. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
25
❑ Agile Misconceptions
❑ It’s Unpredictable
Agile can be unpredictable. But all projects are unpredictable
It is impossible to know exactly what your end users want
Agile embraces this unpredictability and leverages it to produce better results
❑ Developer’s Make All The Features
Another common misconception of agile is that the developers get to choose what is
important and what is implemented when
That could not be further from the truth.
Before each sprint begins there is a comprehensive sprint planning meeting where
all the key stakeholders determine which features will be implemented in that sprint
This meeting includes developers, designers, business people and anyone else
involved in the product
Not just developers determining what to build willy-nilly
26. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
26
❑ Agile Misconceptions
❑ It Doesn't Consider The Long Term
Some people believe that because agile focuses on short-iterative releases it doesn’t
take into account the long-term needs and goals
Agile actually benefits the long term.
At a minimum, it is just a different means to get to the end
By having something that you can actually test earlier in the process, it lets you
make better decisions for the long-term
27. SEN 452 Agile Development BSE 7 Fall 2023
Agile Fundamentals
27
❑ Agile Misconceptions
❑ It Require More Teamwork
Agile requires collaboration between designers and developers
Fortunately, most designers and developers love to collaborate
While there can be a bit more upfront work to get everyone on the same page, the
end result is a better product, faster and for less money