NAUGNAUGKnowledge Evening – 01
27th February 2007
AgendaAgenda
• Welcome• Warm up – Minimalist Agile
– 6:30 PM 6:40 PM Anurag Shrivastava
• Scrum and Extreme Programming – 6:40 PM 7:20 PM Priyanshu Goyal
• Break – 7:20 PM 7:30 PM
• Agility & the Practice of Software Architecture– 7:30 PM 8:10 PM Amit Goel
• Closing Remarks
Minimalist AgileMinimalist Agile
1. Frequent Delivery
2. Reflective Improvement
3. Osmotic Communication
Scrum and eXtreme Programming
Priyanshu Goyal27th Feb 2007
NCR Agile User Group
AgendaAgenda
What is Scrum?
What is XP?
Scrum with XP
NCR Agile User Group
What is Scrum?What is Scrum?
An iterative, incremental process for developing any product or managing any work. ...
A "lean" approach to software development
A simple framework used to organize teams and get work done more productively with higher quality
Allows teams to choose the amount of work to be done and decide how best to do it.
NCR Agile User Group
What is Scrum? Cont…What is Scrum? Cont…
Focuses on prioritizing work based on the business value, improving the usefulness of what is delivered, and increasing revenue
Designed to adapt to changing requirements during the development process at short, regular intervals
Assumes that the software development process is complicated and unpredictable.
Easy to learn and low risk to implement
NCR Agile User Group
The Zen of ScrumThe Zen of Scrum
Scrum is simple• Small number of practices• Practices are straightforward
Scrum is hard• Requires involvement and common sense• Requires constant inspection/adaptation to
project realities All about common sense and feels very different
NCR Agile User Group
Scrum FlowScrum Flow
Product Release Cycle(1 to 3 sprints…)
NCR Agile User Group
The Framework of ScrumThe Framework of Scrum
Iterative, incremental framework Each iteration driven by product needs Team selects target functionality for increment and
determines how to build it Iterations have a fixed timebox Each iteration produces completed product
increments Two nested cycles – Sprint and Daily
NCR Agile User Group
RolesRoles Scrum Master
• Facilitator and coach
Product Owner• Manages product vision and ROI
Development Team• Realizes the product plans
NCR Agile User Group
PracticesPractices
Daily Scrum Meeting – Daily 15 minutes, Three questions, impediments and decisions
Scrum Teams – Self organising, Cross-functional, 7+-2, committed to work, authority to do whatever required
Product backlog – List of emerging, prioritized, estimated functionality and issues
Sprint – Thirty calendar day iteration, team builds functionality that includes product backlog and sprint goals
Sprint backlog – Owned by development team, captues team implementation strategy
NCR Agile User Group
Concerns
Sprint Length? – Four, two, one week or may be different each time.
Daily Standup Withdrawals – Why everyday? Can the team really deliver without anyone keeping an
eye on them? Should Scrum Master assign the work? Why the team member do not have specialized job
descriptions or roles?
NCR Agile User Group
What is XP?What is XP?
Founded on four core values• Communication
• communicate with customers and fellow programmers
• Simplicity • keep design simple and clean
• Feedback • testing software from day one
• Courage • respond to changing requirements and technology
NCR Agile User Group
XP core practicesXP core practices
NCR Agile User Group
XP core practices Cont…XP core practices Cont… Planning
• User Stories are written.• Release planning creates the schedule.• Make frequent small releases.• The Project Velocity is measured.• The project is divided into iterations.• Iteration planning starts each iteration.• Move people around.• A stand-up meeting starts each day.• Fix XP when it breaks.
NCR Agile User Group
XP core practices Cont…XP core practices Cont… Designing
• Simplicity.• Choose a system metaphor.• Use CRC (Class, Responsibilities, and Collaboration )
cards for design sessions.• Create spike solutions to reduce risk.• No functionality is added early.• Refactor whenever and wherever possible.
NCR Agile User Group
XP core practices Cont…XP core practices Cont… Coding
• The customer is always available.• Code must be written to agreed standards.• Code the unit test first (TDD).• All production code is pair programmed.• Continuous integration.• Use collective code ownership.• Leave optimization till last.• Sustainable Pace.
NCR Agile User Group
XP core practices Cont…XP core practices Cont…
Testing
• All code must have unit tests.• All code must pass all unit tests before it
can be released.• When a bug is found tests are created.• Acceptance tests are run often and the score
is published.
NCR Agile User Group
XP Programming projectXP Programming project
NCR Agile User Group
Scrum and XPScrum and XP
Every process can be best understood by the concerns that it is trying to address
Scrum emphasizes Management and organisation practices• Scrum emerged from the product development processes and
focusses on the delivery cycle
XP emphasizes Programming• XP emerged from the pattern movement and addresses code
quality
They are complimentary methodologies
NCR Agile User Group
Scrum xPPlanning
Sprint
Sprint Planning
End of Sprint Review
Daily Scrum
Product Owner
Scrum Master
Product Backlog
Sprint Backlog
Simple Design
Testing
Test and Code
Refactoring
Pair Programming
Collective Ownership
Continuous Integration
Coding StandardsNCR Agile
User Group
Concerns
Pair Programming – What about productivity? How can we start implementation without the whole
design/framework? Lets do it the best way the first time. Assign it back to him, he worked on that piece. Testing is for the testers.
NCR Agile User Group