naug naug knowledge evening – 01 27 th february 2007

24
NAUG NAUG Knowledge Evening – 01 27 th February 2007

Upload: eric-baldwin

Post on 17-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

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