Introducing Agile
Methodologies
Speaker
Dmitry Buzoverya
o Director of Cloud Computing Department
o Over 15 years of Software Development
experience
o Over 10 years of Team Management
experience
o In AMC Bridge since 2001
Traditional Software Development Process
Is it good or bad?
The main feature that we deliver all at once
Sometimes Traditional Software Development
Process is not so good
½ way? Out of time? Cut here
Houston, we have a problem!
In most cases when customer doesn’t care about the cost of changes – it is not so bad.
Simple truths
o It is very hard to gather all requirements at the
beginning of project (especially in case of 5
lines of spec from customer);
o There is a need to handle new client
requirements;
o Some customers require to show some
progress;
o It is hard for customer to trust that team goes
in the right direction.
Transformation
Time
Something is complete, 0% usable
Traditional
About 25% complete, 100% usable
History: The Agile Manifesto
2001 February + ‘The Lodge’ at Snowbird Ski Resort + 17 Thinkers =
Agile Manifesto
The Agile Manifesto
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software
Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.
Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale
Business people and developers must work
together daily throughout the project
Build projects around motivated individuals.
Give them the environment and support they need, and trust
them to get the job done
The most efficient and effective method of
conveying information to and within a development team is
face-to-face conversation
Working software is the primary measure of progress
Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely
Continuous attention to technical excellence
and good design enhances agility
Simplicity - the art of maximizing the amount
of work not done - is essential
The best architectures, requirements, and designs
emerge from self-organizing teams
At regular intervals, the team reflects on how
to become more effective, then tunes and adjusts
its behavior accordingly
Flavors of Agile
Extreme Programming (XP)
Scrum
Lean
Kanban
…
eXtreme Programming
eXtreme Programming (XP)
Planning
o User stories are written
o Release planning creates the release schedule
o Make frequent small releases
o The project is divided into iterations
o Iteration planning starts each iteration
eXtreme Programming (XP)
Managing
o Give the team a dedicated open work space
o Set a sustainable pace
o A stand up meeting starts each day
o Move people around
o Fix XP when it breaks
o The Project Velocity is measured
eXtreme Programming (XP)
Designing
o Simplicity
o Choose a system metaphor
o Use CRC cards for design sessions
o Create spike solutions to reduce risk
o No functionality is added early
o Refactor whenever and wherever possible
eXtreme Programming (XP)
Coding
o The customer is always available
o Code must be written to agreed standards
o Code the unit test first
o All production code is pair programmed
o Only one pair integrates code at a time
o Integrate often
o Set up a dedicated integration computer
o Use collective ownership
eXtreme Programming (XP)
Testing
o All code must have unit tests
o All code must pass all unit tests before it can be
released
o When a bug is found tests are created
o Acceptance tests are run often and the score is
published
Scrum
Scrum
o Focus on delivering the highest business value
in the shortest time
o Allows easy inspect actual working software
o Business sets the priorities
o Teams self-organize to determine the
best way to deliver the work
o Every sprint anyone can see real
working software and decide to
release it as is or continue to enhance
it in the next sprint
Lean
Lean
o Eliminate Waste
o Amplify Learning
o Decide as late as possible
o Deliver as fast as possible
o Empower the team
o Build integrity
o See the whole
Kanban
Kanban
Stop starting, start finishing.
o Visualize Workflow
o Limit Work in Process
o Measure and Improve Flow
Do we really need Agile?
Summary
Agile is not 100% recipe for success
Requirements management is a critical part of success
Methods can be applied according to certain circumstances – case by case decision
Risk and failure are both nature of software projects
Resources
o http://www.agilenutshell.com/
o http://www.agilemanifesto.org/
o http://www.extremeprogramming.org/
o http://www.scrumguides.org/
o scrum.org.ua
303 Wyman Street, Suite 300
Waltham, MA 02451, USA