1. 2015 – OpenArc Campus – BIT UCSC
IT4305- Rapid Software Development
Upekha Vandebona
upe.vand@gmail.com
2. Rational of Agile
Agile development isn’t a silver bullet
Agile teams have above-average productivity
Agile teams have ability to release software more
frequently
…etc
Will agile development help us be more successful?
3. Understanding Success
Project 1 - “Completed on time, on budget, with all
features and functions as originally specified.”
Project 2 - “Completed and operational but over
budget, over the time estimate”
Project 3 - “Cancelled at some point during the
development cycle.”
4.
5. Organizational Success
Senior management and executives aren’t likely to care
whether your software is elegant, maintainable, or
even beloved by its users; they care about results.
Agile methods set expectations early in the project, so
if your project won’t be an organizational success,
you’ll find out early enough to cancel it before your
organization has spent much money.
6. How to use Agile
To “be agile,” you need to put the agile values and
principles into practice.
Agile Manifesto
7. Lean Software Development
Lean has its origins in manufacturing.
Lean Production on Toyota : Producing JIT
The lean software development principles are
Eliminate waste, build in quality, create knowledge,
defer commitment, deliver quickly, respect people, and
optimize the whole.
Five core pillars of Lean Thinking.
•Value
•Value Stream
•Flow
•Pull
•Perfection
8. Kanban (contd.)
Two Kanban principles critical to success are
Visualizing workflow
Teams use a Kanban board (often a whiteboard, corkboard, or
electronic board) that displays kanbans (indications of where
in the process a piece of work is).
The board is organized into columns, each one representing a
stage in the process, a work buffer, or queue; and optional
rows, indicating the allocation of capacity to classes of service.
9. Kanban (contd.)
The board is updated by team members as work proceeds, and
blocking issues are identified during daily meetings.
Limit work in progress (WIP)
To limit WIP, understand where your blocking issues are,
address them quickly, and reduce queue and buffer sizes
wherever you can.
Editor's Notes
Project 1 - would gain high customer satisfaction.
Project 2 – success is Challenged
Project 3 – success is impaired
Success can be self satisfaction/ personal reward
What agile focus on is this
Agile teams
communicate quickly and accurately, and they make progress even when key individuals are
unavailable. They regularly review their process and continually improve their code, making
the software easier to maintain and enhance over time.
Individuals and interactions over processes and tools
Recognizing that software is made by people, not processes
or tools, agile places a higher premium on people working
together effectively. Processes and tools can aid in that but
can’t replace it.
Working software over comprehensive documentation
Valuing working software over comprehensive documentation
stands in stark opposition to the Waterfall model. A highly
detailed, accurate, and comprehensive specification document
is of no value if it doesn’t result in working software that
meets users’ needs. Working software may involve
documentation, but agile only uses it in service to creating
working software, not as an end (almost) unto itself.
Customer collaboration over contract negotiation
While agile isn’t ignoring the reality of contracts, it values active
collaboration throughout the software development process
as a better way to deliver value instead of a carefully worded
contract.
Responding to change over following a plan
Except for the most incredibly simple systems, it’s massively
difficult to think of every feature, every piece of data, and
every possible use case for software. That means, in a
collaborative process with the customer, a lot is discovered
during the process of developing software. Also, the world
changes pretty fast: Business needs and priorities can shift
in the months or even years it can take for a large system to
be fully built. Agile values the ability to change in response
to new discoveries and needs over sticking to a plan created
before everything was known.