23
eXtreme Programming: a real case. Alessandro Chiarini CINECA, Bologna, 24 giugno 2010 Copyright © SCS srl. Alessandro Chiarini [email protected] Technical Manager SCS

XP a-real-case

Embed Size (px)

Citation preview

Page 1: XP a-real-case

eXtreme Programming: a real case.

Alessandro Chiarini

CINECA, Bologna, 24 giugno 2010

Copyright © SCS srl.

Alessandro [email protected]

Technical ManagerSCS

Page 2: XP a-real-case

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)

Page 3: XP a-real-case

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

Page 4: XP a-real-case

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.

Page 5: XP a-real-case

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

Page 6: XP a-real-case

The team

� Customers

Application / Domain Experts� Application / Domain Experts

� Product manager

� Programmers

� Software architects

� Software developers

Copyright © SCS srl.

Software developers

� Testers

� Steerer

Page 7: XP a-real-case

The XP cycle

Copyright © SCS srl.

(taken from extremeprogramming.org)

Page 8: XP a-real-case

XP practices

� XP is about:

Team working� Team working

� Releasing

� Planning

� Developing

Copyright © SCS srl.

Page 9: XP a-real-case

Team working

� Pair programming

Trust� Trust

� Customer Involvement

� Coding Standards

� Collective code ownership

Copyright © SCS srl.

Page 10: XP a-real-case

Releasing

� “Done Done”

Version control� Version control

� Ten minutes build

� Continuous integration

Copyright © SCS srl.

Page 11: XP a-real-case

Planning

� Release Planning

Iteration Planning� Iteration Planning

� Stories

� Estimating

� Velocity

Copyright © SCS srl.

Page 12: XP a-real-case

Developing

� Simple design

Spike solutions� Spike solutions

� Incremental requirements

� Test Driven Development

� Customer tests

� Refactoring

Copyright © SCS srl.

Refactoring

Page 13: XP a-real-case

Key values

� Communication

Simplicity� Simplicity

� Feedback

� Courage

� Respect

Copyright © SCS srl.

Page 14: XP a-real-case

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)

Page 15: XP a-real-case

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

Page 16: XP a-real-case

Project management

Copyright © SCS srl.

Page 17: XP a-real-case

Code repository

Copyright © SCS srl.

Page 18: XP a-real-case

Continuous build

Copyright © SCS srl.

Page 19: XP a-real-case

Automated testing

� Cppunit

Acceptance tests� Acceptance tests

� QA dashboard

� Memory leaks

� Coverage

� Coding style

Copyright © SCS srl.

� Coding style

� Automated GUI testing

Page 20: XP a-real-case

Bug tracking

Copyright © SCS srl.

Page 21: XP a-real-case

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

Page 22: XP a-real-case

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

Page 23: XP a-real-case

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.