Дмитро Бузоверя
Директор Cloud Computing департаменту в компанії AMC Bridge
Agile підхід до управління проектами існує вже більше 15 років, він досі є об’єктом багатьох дискусій та вважається інноваційним у деяких областях.
Дмитро Бузоверя, зробить огляд методології Agile у розробці програмного забезпечення. Він розкаже про історію Agile, його принципи та більш детально зупиниться на різних методиках: Extreme Programming (XP), Scrum, Lean та Kanban.
Ця лекція допоможе зібрати пазл з Agile термінології в єдину картинку.
2. 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
4. Sometimes Traditional Software Development
Process is not so good
In most cases when customer doesn’t care about the cost of changes – it is not so bad.
½ way? Out of time? Cut here
Houston, we have a problem!
5. 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.
7. History: The Agile Manifesto
2001 February + ‘The Lodge’ at Snowbird Ski Resort + 17 Thinkers =
Agile Manifesto
8. The Agile Manifesto
That is, while there is value in the items on
the right, we value the items on the left more.
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
9. Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software
10. Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.
11. Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale
12. Business people and developers must work
together daily throughout the project
13. Build projects around motivated individuals.
Give them the environment and support they need, and trust
them to get the job done
14. The most efficient and effective method of
conveying information to and within a development team is
face-to-face conversation
23. 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
24. 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
25. Designing
eXtreme Programming (XP)
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
26. 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
27. 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
29. 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
31. 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
35. 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