XP a-real-case

Post on 08-May-2015

752 views 1 download

Transcript of XP a-real-case

eXtreme Programming: a real case.

Alessandro Chiarini

CINECA, Bologna, 24 giugno 2010

Copyright © SCS srl.

Alessandro ChiariniA.Chiarini@scsolutions.it

Technical ManagerSCS

eXtreme Programming

� XP artisan

Team size: up to 20 members, 9 programmers� Team size: up to 20 members, 9 programmers

� Twofold development

� Visualization framework for biomedical application (MAF, C++)

� Community and collaborative services based on plone/zope software stack (python)

Copyright © SCS srl.

plone/zope software stack (python)

Development Methodologies

� A methodology is a formalized process or set of practices for creating softwarepractices for creating software

� A set of rules you have to follow

� A set of conventions the organization decides to follow

� A systematic, engineering approach for organizing software projects

Copyright © SCS srl.

software projects

Agile Manifesto

“Our highest priority is to satisfy the customer through early and continuous delivery of through early and continuous delivery of valuable software”

(taken from agilemanifesto.org)

Copyright © SCS srl.

The agile spirit

� Incremental

Working software ever comprehensive � Working software ever comprehensive documentation

� Cooperative

� Customer cooperation over contract negotiation

� Straightforward

Copyright © SCS srl.

� Individuals and interaction over processes and tools

� Adaptive

� Responding to change over following a plan

The team

� Customers

Application / Domain Experts� Application / Domain Experts

� Product manager

� Programmers

� Software architects

� Software developers

Copyright © SCS srl.

Software developers

� Testers

� Steerer

The XP cycle

Copyright © SCS srl.

(taken from extremeprogramming.org)

XP practices

� XP is about:

Team working� Team working

� Releasing

� Planning

� Developing

Copyright © SCS srl.

Team working

� Pair programming

Trust� Trust

� Customer Involvement

� Coding Standards

� Collective code ownership

Copyright © SCS srl.

Releasing

� “Done Done”

Version control� Version control

� Ten minutes build

� Continuous integration

Copyright © SCS srl.

Planning

� Release Planning

Iteration Planning� Iteration Planning

� Stories

� Estimating

� Velocity

Copyright © SCS srl.

Developing

� Simple design

Spike solutions� Spike solutions

� Incremental requirements

� Test Driven Development

� Customer tests

� Refactoring

Copyright © SCS srl.

Refactoring

Key values

� Communication

Simplicity� Simplicity

� Feedback

� Courage

� Respect

Copyright © SCS srl.

The Bug Life cycle

� Even if we adopt XP our code is not our code is not exempted by bugs

� Bugs should be fixedaccording the refactoring

Copyright © SCS srl.

refactoringpractice, where possible

(taken from mozilla.org)

SCS development infrastructure

� Project managing

Version control system (CVS, SVN)� Version control system (CVS, SVN)

� Distributed continuous build (parabuild)

� Automated testing

� Automated QA

Bug tracker

Copyright © SCS srl.

� Bug tracker

� Plone based web space for documentation/forums

Project management

Copyright © SCS srl.

Code repository

Copyright © SCS srl.

Continuous build

Copyright © SCS srl.

Automated testing

� Cppunit

Acceptance tests� Acceptance tests

� QA dashboard

� Memory leaks

� Coverage

� Coding style

Copyright © SCS srl.

� Coding style

� Automated GUI testing

Bug tracking

Copyright © SCS srl.

A success story

� Customer: imaging manufacturer who needed to present its new product at a fairto present its new product at a fair

� Time constraints (once-a-year event)

� Customer used to waterfall methods

� Many and complex functionalities

� XP helped us to:

Copyright © SCS srl.

� XP helped us to:

� respond promptly to customer's request changes

� release early valuable software

� Involve the customer in the development process

Conclusions

“Brilliant process management is our strategy. We get brilliant results from average people get brilliant results from average people managing brilliant processes. We observe that our competitors often get average (or worse) results from brilliant people managing broken processes.”

S. Toyoda

Copyright © SCS srl.

S. Toyoda

References

� Beck, Extreme Programming explained

Shore & Warden, The art of Agile Development� Shore & Warden, The art of Agile Development

� agilemanifesto.org

� extremeprogramming.org

Copyright © SCS srl.