4. Agile Processes AP-1 Venkat Subramaniam Agile Processes Focus - - PDF document

4 agile processes
SMART_READER_LITE
LIVE PREVIEW

4. Agile Processes AP-1 Venkat Subramaniam Agile Processes Focus - - PDF document

4. Agile Processes AP-1 Venkat Subramaniam Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum AP-2 Venkat Subramaniam Objective To minimize the risk in development


slide-1
SLIDE 1

AP-1

Venkat Subramaniam

  • 4. Agile Processes

AP-2

Venkat Subramaniam

Agile Processes

  • Focus on creating a working system
  • Different attitude on measuring progress
  • XP
  • Scrum
slide-2
SLIDE 2

AP-3

Venkat Subramaniam

Objective

  • To minimize the risk in development

– Understand requirements better – Be ready to change as requirements change

  • To succeed in the development process
  • To complete the project

– in budget – on time

  • If the project has to be cancelled, do so with

minimal damage

  • Create a system that is

– easier to maintain – less expensive to evolve

  • Keep the bug count low

AP-4

Venkat Subramaniam

What about extensibility?

  • Your system should be able to change

with least cost

  • You should anticipate change?
  • Does it mean that you build for what you

think may be needed?

  • It depends
  • Here are questions to ask
slide-3
SLIDE 3

AP-5

Venkat Subramaniam

Cost of the new feature

  • What are the chances you will need to add new

feature?

  • How much does it take now to provide it?
  • What is the worth of that feature to customer?
  • How much will it cost to provide it in the

future?

  • If it will cost almost the same in the future, and

you are not certain of the feature’s worth, it may be better to wait

– If the features are important, we can implement it later – If it is not needed, we did not implement it

AP-6

Venkat Subramaniam

So Should I not worry about extensibility?

  • You should!
  • However, there are ways to address it
  • Check on your ability to anticipate the

need and change

  • Check on your ability to build the system

so the change in the future is incremental

  • Refactor the system as it evolved
slide-4
SLIDE 4

AP-7

Venkat Subramaniam

Control Variables

  • Cost

– Too little, does not solve problems – Too much, some times more of a problem

  • Time

– More time can improve quality and increase scope. – Too much time hurts as well

✂✁☎✄✆✄✆✝✟✞✡✠☞☛✍✌✏✎✒✑✔✓✖✕✘✗✚✙☞✗✜✛✒✄✢✕✤✣✦✥★✧✩✑✔✓☞✝✟✪✆☛✜✛✫✣✬✓✖✥★✣ ✗✭✣✦✕✮✧✡✄✢✑✔✠✆✛✫✣ ✯✰✄
  • Quality

– Sacrificing this may result in short term gains – Over the long haul, lost is enormous

  • Scope

– Lesser the scope, better the quality – You can deliver sooner as well – Assuming it meets the business needs

AP-8

Venkat Subramaniam

Set of Values

  • Communication
✱✳✲ ✄✍✄☞✝✴✛✵✓✶☛☎✓✖✕✴✕✷✪✖✥✸✣✬☛✹✠✆✛✵✄✺☛✡✑✻✣ ✛✼✣✬☛✜✠✢✽✆☛✿✾✆✠✢✥✍❀✸✄✮✣❁✥★✑✔✄✍❂✟✪✸✣❁✑✔✄✢✕❃✄✢✥✡✛❄✗❆❅✟✝✸✄☞✗✿✣✬❀❇✥✰❅ ✄✍✛❄☛✍❈ ✱✳❉ ✪✆✛❊✣✦✥✮✧✰✽✬✠☞☛✹✄✮✧✸✑✔✠☞☛✚✛❋✣✬☛✜✄✆✗●✛✫✾✆✠✆✛■❍✏✣❏✽✦✽✆✄✸✥✢✾✆✠✸✥✆☛✹✄❑☛✹✓✖✕✮✕✷✪✖✥✢✣ ☛✹✠✆✛✼✣✬✓✖✥
  • Simplicity
✱ ✁✍✣❏✥✆✝✴✗✡✣❁✕✴✧✰✽✬✄✆✗✚✛▲✛✫✾✸✣✦✥✆❀✷✛✫✾✍✠✆✛▼❍✏✣✦✽❏✽✍❍◆✓✖✑✒✌ ✱✳❖ ✪✢✣✦✽✬✝✴✗✜✓✖✕❑✄❃✛❋✾✸✣❁✥✆❀✴✗❆✣❁✕✴✧✩✽ ✄❑✛❄✓☞✝✩✠✍✙✷✠✖✥✍✝P✧✍✠✆✙✷✠★✽❁✣ ✛◗✛✫✽✬✄❃✛❄✓✶☛✿✾✆✠✖✥✍❀✸✄ ✛❄✓✖✕❃✓❘✑✒✑✔✓☞❍❙✛✫✾✆✠✖✥✮✞✩✪✢✣✦✽✬✝✴✗✹✓✖✕❃✄❃✛❋✾✢✣✦✥✆❀✴☛✹✓✖✕✴✧✩✽✦✣✬☛✜✠✆✛❄✄✆✝✷✛❄✓☞✝✩✠✍✙✶✛✫✾✆✠✆✛❊✕❃✠✍✙ ✥✆✄✡✯☞✄✢✑❚✞✍✄✴✪☞✗☎✄✍✝
  • Feedback
✱❱❯ ✥✸✣ ✛■✛❄✄✍✗✜✛❄✗✭✧✩✑✔✓☞✯✖✣✬✝✸✄❃✎❲✄✆✄☞✝✟✞✆✠☞☛✿✌ ✱❨❳ ✓✖✑✻✑✔✄✆☛✚✛✒✄✆✝P✣❁✥✮✕✮✣❏✥✸✪✍✛❄✄✆✗●✠✖✥✍✝✴✝✩✠✍✙✰✗❆❅❩✥☞✓✆✛▲❍◆✄☞✄✢✌❬✗ ✱❪❭ ✗✚✙✰✗✚✛❄✄✢✕❫✛❋✾✍✠✆✛❴✗✚✛❄✠✍✙✰✗●✓✢✪✆✛❴✓✆✎❵✛✫✾✆✄★✾✍✠✖✥✆✝✩✗❛✓✆✎▲✪☞✗✹✄✸✑❜✗✭✣✬✗❝✛❋✑✔✓✢✪✢✞✸✽✬✄❃❍❞✠✖✣ ✛✼✣❁✥✍❀ ✛❄✓❡✾✍✠✖✧✸✧✡✄✢✥
  • Courage
✱✳❢ ✓❡✥✍✓✆✛❣✾✍✄✆✗✡✣ ✛✵✠✆✛❄✄❃✛❄✓✺✛✫✾✢✑✔✓✆❍❤☛✜✓☞✝✸✄✺✠✆❍❞✠✍✙P✣ ✎❇✙✰✓✢✪❑✎❄✣❁✥✆✝✴✠✮✞✍✄✍✛❜✛❄✄✢✑▼✗✿✣❁✕✴✧✸✽ ✄✢✑ ❍❞✠✍✙ ✱✳❢ ✓❡✥✍✓✆✛❣✾✍✄✆✗✡✣ ✛✵✠✆✛❄✄❃✛❄✓✶☛✜✠✖✽❁✽✆✠✍✛❜✛❄✄✢✥✡✛✫✣ ✓✖✥❑✛✵✓❡✧✸✑✔✓✖✞✩✽✬✄✢✕❃✗✭✣ ✎❵✛✫✾✆✄✡✙✶✠✖✑◗✄ ✗✡✣✬❀✟✥✩✣ ✎✵✣✬☛✜✠✖✥✡✛▲✠✖✥✆✝✷❍❛✣✦✽✦✽✸✞✍✄✸✥✆✄✡✎✵✣ ✛▲✎✵✑✔✓✖✕✤✑✔✄✆❍❞✓❘✑✒✌✆✣❁✥✍❀
slide-5
SLIDE 5

AP-9

Venkat Subramaniam

What’s XP?

✁✖✄✸✥✍✛ ❖ ✄✆☛✿✌ ✄✂ ❉ ✾✆✠☞✗✭✥✆✓✆✛✫✾✢✣❁✥✍❀ ✥✆✄✍❍❝❅❘✙✰✄✍✛❣✣ ✛❣✾✍✠☞✗❛✗✜✓✖✕❃✄✍✛❋✾✸✣✦✥✆❀P✥✍✄✍❍✆☎ ✞✝❜✛■✛❄✠✖✌❆✄✆✗●❀✢✓☞✓☞✝✮☛✹✓✖✕✮✕❃✓✖✥✆✗☎✄✸✥✆✗✹✄✮✧✸✑✒✣✦✥✆☛✡✣✦✧✩✽ ✄✆✗❛✠✖✥✍✝P✧✸✑✔✠☞☛✹✛✫✣✬☛✹✄✍✗●✛✵✓✶✄✠✟☞✛ ✑✔✄✸✕✺✄ ✽✬✄✡✯☞✄✢✽✬✗ ✡☞☛✍✌✏✎✒✑✔✓✖✕✘✗✍✕✚✙✜✛ ✕✣✢✤✛ ✥✧✦✖✑✔✑✔✓✩★✪✢✫✕✠✬✮✭✯✭✖✗✰✕✚✙✜✛ ✕✣✢✱✎✒✑✔✓✠✕✳✲✩✭✯✭✵✴✷✶✣✕✸✴✷✛✯✹✺✕ ✻✽✼✿✾✚❀ ❁❃❂✵❁❅❄❇❆❈❁❉✾✚❊✧❊✧❀ ❋●❆ ✡☞☛✍✌❃✴❍✕❈✥■✴✷✛✯❏✚✦❑✛ ✥✧✦✠✑✔✑✔✓✠★▲✕✚✙✔✕✩✗◆▼✘❖✣✑✔✓❈▼✳✢✧✛✮✭✯✭✵✴❍✕❈✥■✴P✲✩✭✯✭◗✴✷✶✚✕✸✴✷✛✮✹✸✕ ✻✘❘✜❙◗❚ ❯❱❯◆❲❇❳❨❯❩❚ ❙✒❬✸❭❫❪❵❴✵❲●❛❇❲✚❜ ❝❈❞■❲✚❡◆❳❫❢✚❣✍❤❇❙●✐❥❯❩❚ ❝✣❙✒❦✚❜■❯◆❲❇❳❨❯❩❚ ❙✒❬✸❭❫❪✧✐●❤✒❳❨❯❉❝✣❧♠❲✚❡◆❳ ♥☞♦✍♣✏q✖r❈s◗t ✉✪✈✇t s①✉✖②✔②✖q✠③⑤④♠r✠⑥✯⑦✯⑦✖⑧✺⑨✩⑩❇r❶t ❷❹❸✣⑨✩❺◆❷P②❈♣❃r✚❻✔r✩❺◆❼✜❽✚②✖q❈❼✩⑥ s✧q✠⑨✩t✮⑦ ❼✘❽✔❾❈s✵t✮✈✚r❈s✒s ❿✽➀✚❲●❣➁❦➂✐❥❯➃❝✣❡✰❚ ❙✒❬ ♥☞♦✍♣✏s◗t✯⑧➄❸✖⑦✯t ➅◗t ❷➆❼✘t s✧✉✖②✔②✔q✩③✪④✫r✠⑥✯⑦✯⑦✠⑧✺⑨✩⑩❇r❶t ❷❹❸✣⑨✩❺◆❷P②❈♣⑤❷✷➇✚r➈s❫❼✔s■❷❍r✩⑧➉④✧t ❷✷➇✳s◗t✯⑧➄❸✖⑦ r❈s■❷ q✠r❈s✵t ✉❱✈➊❷✷➇✚⑨✚❷Ps✵❾✠❸✠❸✚②✜❺➃❷❍s➊t ❷❍s✧➅✵❾✩❺➋❺✍r✩✈◗❷➌♣➆❾✠✈✣➅■❷✷t ②✜✈✚⑨✩⑦✮t ❷➆❼ ♥☞♦✍♣✏⑨✩❺✍➅◗➇✠t ❷❍r❈➅■❷❥❾✠❺✍r✘t s➊t✯⑧➄❸✚②✜❺➃❷❍⑨✩✈✵❷❍③⑤r✚❻✔r✩❺➃❼✩❽✣②✔q❈❼✳④①t✯⑦✯⑦◗④✫②✜❺❍⑩➍q✠r✣♣❩t✯✈✩t✯✈✚✉➄⑨✩✈✚q❑❺✍r✚♣❍t✮✈✖t✮✈✚✉ ❷✷➇✣r✳⑨✩❺✍➅◗➇✖t ❷❍r❈➅❫❷❥❾✩❺✍r✳⑨✩⑦✮⑦✵❷✷➇✚r✺❷✷t✯⑧✸r ❿✘❧♠❲✒❯➃❦✚❞✵➎●❝❈❡ ♥☞♦✍♣➏t✯✈◗❷❍r❈✉❱❺✍⑨✚❷✷t ②✜✈➐❷❍r❈s■❷✷t✯✈✣✉✽t s➊t✯⑧✇❸✣②✜❺◆❷❩⑨✩✈◗❷➋③❱❷✷➇✣r✩✈➊④♠r✜⑥✯⑦✯⑦✖t✯✈◗❷❍r❈✉❱❺✰⑨✚❷❍r✳⑨✩✈✚q➈❷❍r❈s■❷Ps✒r✚❻❈r✩❺✰⑨✩⑦ ❷✷t✯⑧✺r❈s✧⑨✳q✠⑨✚❼ ❿✇➑✖❝✣❙■❯❩❚ ❙◗❤●❝✣❤➂❳❹❚ ❙■❯➃❲➂❬✣❡❉❦✒❯➆❚ ❝❈❙ ♥☞♦✍♣✏s◗➇✚②✜❺➃❷❹t ❷❍r✩❺✰⑨✚❷✷t ②✜✈✚s✧⑨✩❺✰r✳✉✖②✔②✖q✖③✪④✫r✠⑥✯⑦✯⑦✖⑧✺⑨✩⑩❇r✺❷✷➇✚r✘t ❷❍r✩❺✍⑨✚❷✷t ②❱✈✚s➊❺✍r❈⑨✩⑦✮⑦ ❼✖③✏❺✰r❈⑨✩⑦✯⑦ ❼ s◗➇✚②❱❺◆❷➒♥➈s✒r❈➅✒②✜✈✚q✠s✧⑨✩✈✚q❑⑧✇t✯✈✠❾◗❷❍r❈s✧⑨✩✈✣q✽⑧➄t✯✈✠❾◗❷❍r❈s✧⑨✩✈✣q❑➇✣②✩❾✠❺✰s➂③✏✈✣②✣❷➓④♠r❈r✩⑩❇s✧⑨✜✈✣q ⑧✺②✜✈✵❷✷➇✣s✧⑨✩✈✚q➈❼✔r❈⑨✩❺✍s ❿✸➔✠➎●❲➐❞✵❜ ❦✚❙✵❙◗❚ ❙✒❬①❬✵❦✚❧♠❲

AP-10

Venkat Subramaniam

XP Principles

  • The Planning Game

– Scope next release with business priorities, technical estimates – Update the plan based on reality

  • Small Releases

– Put simply system into production quickly – Release new version in short cycle

  • Metaphor

– Guide development with simple shared story of how the whole system works

  • Simple Design

– Design as simple as possible at any given moment.

  • Testing

– Continually write and run unit tests

slide-6
SLIDE 6

AP-11

Venkat Subramaniam

XP Principles

  • Refactoring
  • ✁✄✂✆☎✞✝✠✟☛✡✆☞✌✝✍✡✎✟✏✂✑☎✌✒✓☎✌✝☛✂✄✔✖✕✘✗
✝✠✙✛✚✎✡✆✝✜☞✛✙✣✢✄✤✆✥✦✗✧✤✣✥★✗ ✝☛☎✪✩✣✂✫✙✆✢✣✬✭✗ ✚✄✟✮✝☛✚★✟✯✂✎✔✰✚✆✬✱✂ ✲ ✡✎✳✫✴✵✗✶☞✷✢✆✝✸✗✶✚✄✤✱✹✺✗✻✔✼✳✽✟✏✚✣✬✱✂✾☞✷✚✭✔✼✔✿✡✄✤✣☞✛✗✶✢✆✝✸✗✶✚✄✤✽✹✦✢ ✲✫✲✿❀ ✴✶✂❂❁✄✗✻✩✱✗✧✴✵✗ ✝❃✒✾✢✄✤ ✲ ☎❄✗✻✔✼✳✽✴✵✗ ❀ ✒
  • Pair Programming
❆❅ ✕❇✚★✳✽✟❃✚✓✥✦✟✏✢✄✔❈✔❉✂✫✟❃☎❊✹❋✚✄✤✆✂●✔✰✢✓☞❂✙✎✗✻✤✣✂✽✹ ❀ ✚✎✡✎✟✺✂✛✒✽✂✆☎❍✢✭✟✏✂●✩✣✂✛✝■✝☛✂✫✟✮✝✠✙✣✢✄✤❉✝❃✕❇✚
  • Collective Ownership
❑❏ ✤❂✒✱✚✄✤✆✂❉☞✷✢✄✤❉☞✛✙✣✢✄✤✆✥✽✂✑☞▲✚ ✲ ✂✑✢✄✤✛✒✆✕▼✙✆✂✫✟❃✂❈✗✻✤✰✝✠✙✆✂❉☎✞✒✱☎✞✝☛✂✄✔◆✢✆✝✜✢✄✤✛✒✑✝✠✗✻✔✰✂
  • Continuous Integration
P❖ ✤✣✝■✂✆✥✦✟✏✢✆✝◗✂✑✢✄✤ ✲ ✩✱✡✄✗✵✴ ✲ ✝✠✙✣✂❉☎❘✒✱☎✌✝■✂✎✔❙✔❉✢✄✤❂✒✾✝✍✗✻✔✰✂✆☎✘✢ ✲ ✢✣✒✎✹❚✂✣✬✓✂✄✟❯✒✾✝✠✗✧✔❉✂❉✢ ✝☛✢✄✴✻❱✰✗✶☎❍☞✷✚✄✔✼✳✽✴✶✂✣✝☛✂ ✲❳❲
  • 40-hour Week
❩❨ ✂❂✬✽✂✎✟✺✕❇✚✭✟◗❱❬✚✣✬✽✂✎✟❭✝✍✗✻✔✰✂✑✢✿☎✌✂✆☞✷✚✄✤ ✲ ✕❪✂✓✂✎❱✑✗✻✤❉✢●✟✏✚✆✕
  • On-site Customer
  • ✁✄✂✆✢✄✴❫✹❴✴✧✗
✬✓✂❈✡✓☎✌✂✎✟✺✚✄✤✰✝✠✙✣✂❉✝☛✂✓✢✄✔✾✹❚✢✣✬✓✢✄✗✻✴✶✢✄✩✱✴✶✂ ❀ ✡✎✴✵✴✵❵◗✝✸✗✻✔✰✂❉✝■✚✾✢✄✤✆☎✞✕❇✂✄✟ ❛ ✡✆✂✆☎✌✝✍✗✶✚✄✤✆☎
  • Coding Standards
❑❏ ✴✵✴✆☞✌✚ ✲ ✂✰✕▼✟◗✗ ✝❃✝☛✂✎✤❉✢✓☞✷☞✌✚✄✟ ✲ ✢✭✤✆☞✌✂❉✕✘✗ ✝✠✙❈✟☛✡✎✴ ✂✆☎✘✂✫✔❈✳✽✙✆✢✓☎❂✗✶❜✛✗✧✤✆✥ ☞✷✚✄✔✼✔✿✡✄✤✫✗✶☞✷✢✆✝✸✗✶✚✄✤✰✝✠✙✎✟✏✚✎✡✆✥❚✙✪✝✍✙✆✂✑☞✌✚ ✲ ✂

AP-12

Venkat Subramaniam

Where does XP work?

  • Culture

– Business culture

  • How change is accepted? Need to work long

hours? Goal oriented? Heavy on paper work?

  • Size

– Team size of around 10 is ideal

  • Technology

– Must be able to make change quickly and get feedback

  • Work environment

– Should promote closer interaction and communication

slide-7
SLIDE 7

AP-13

Venkat Subramaniam

Scrum

  • Emphasizes agility
  • Leaves documentation depth to specifics
  • f projects – may need more or less

– as little as possible

  • Self-directed and self-organized team
  • 30 days iteration cycle (sprints)
  • Demo to stakeholder at iteration end
  • Client-driven adaptive planning
  • Daily standup meetings
  • No work added during iteration

AP-14

Venkat Subramaniam

Scrum Lifecycle

  • Planning

– Vision, expectations, funding

  • Staging

– Identify requirements, prioritize iteration

  • Development

– Implement system ready for release in each sprint

  • Release

– Operational deployment

slide-8
SLIDE 8

AP-15

Venkat Subramaniam

Scrum Values

  • Commitment

– Team takes responsibility to complete the Sprint. To avoid things that will stand in its way

  • Focus

– Team’s focus is maintained. Distractions, interruptions are fielded

  • Openness

– Overall and individual status and commitments kept

  • pen.
  • Respect

– Team responsibility rather than scapegoating.

  • Courage

– Management and team have the courage to take responsibility to do what is necessary