L3a - Agile Software Development v1
L3a - Agile Software Development v1
Agile methods
Agile development techniques
Agile project management
Scaling agile methods
Project A
Project B
Project C
Project D
Project E
Plan-based
• Separate development stages with
the outputs to be produced at each
of these stages planned in advance.
• Iteration occurs within activities.
• Not necessarily waterfall model. Plan-
driven incremental development is
possible.
Agile
• Specification, design, implementation
and testing are inter-leaved. The
outputs from the development
process are decided through a
process of negotiation during the
software development process.
• Iteration occurs across activities.
(Reference: http://agilemanifesto.org/)
COMP3297 by Leo Yeung L3 - Agile Software Development 7
The principles of agile methods
Principle Description
Customer involvement • Customers closely involved throughout the development.
• They provide/prioritize system requirements, and evaluate
system.
Incremental delivery • Develop software in increments
• Customers specify requirements in each increment
People not process • Recognize and exploit development team (& their skills)
• Develop their own ways of working without prescriptive
processes
Embrace change • Expect the system requirements to change
• Design the system to accommodate these changes
Maintain simplicity • Focus on simplicity in both software and process.
• Actively work to eliminate complexity from the system
“I choose a lazy person to do a hard job. Because a lazy
person will find an easy way to do it.” ― Bill Gates
COMP3297 by Leo Yeung L3 - Agile Software Development 8
Agile method applicability
Task cards
Re-organization of a
class hierarchy to
remove duplicate code.
Tidying up and renaming
attributes and methods
to make them easier to
understand.
The replacement of
inline code with calls to
methods that have been
included in a program
library.