Extreme programming - a quick and agile overview !

26
Extreme Programming (XP) A quick & agile overview :-) @ vinitkumar

Transcript of Extreme programming - a quick and agile overview !

Page 1: Extreme programming - a quick and agile overview !

Extreme Programming (XP)A quick & agile overview :-)@ vinitkumar

Page 2: Extreme programming - a quick and agile overview !

Cartoon of the day

Typical problem in a Waterfall Software Development Methodology

Page 3: Extreme programming - a quick and agile overview !

whoami ~ 9+ years as a .net developer/Architect ~ 4+ years as Digital developer/Architect (CQ/AEM/SDL) Programming, reading, blogging, speaking, architecting www.wcmexperts.com, www.codingasp.net,

imvinit.wordpress.com Widely travelled for various projects across US, Europe and Asia. in.linkedin.com/in/vinitsingh, @vinitkumar

Page 4: Extreme programming - a quick and agile overview !

Agenda1. Objectives of this session2. Once upon a time3. Waterfall to XP evolution4. Agile methodology5. Extreme Programming6. Full stack developer

Page 5: Extreme programming - a quick and agile overview !

Objectives1. To touch upon the terminologies that I learnt in XP

Conference

2. Understand how Agile is different than Waterfall model

3. Understand what is XP

4. Understand what is FSD

5. Light moments with Dilbert

Page 6: Extreme programming - a quick and agile overview !

Once upon a time…

Classic Waterfall Software Development Methodology

Page 7: Extreme programming - a quick and agile overview !

Waterfall to XP evolution

Source: "Embracing change with extreme programming" by Kent Beck,IEEE Computer, October 1999.

Page 8: Extreme programming - a quick and agile overview !

What is XP??

Page 9: Extreme programming - a quick and agile overview !

Before we learn XP or unlearn Waterfall…

Page 10: Extreme programming - a quick and agile overview !

Agile Philosophy: Agile Manifesto• We are uncovering better ways of developing software by doing it and

helping others do it. Through this work we have come to value:

– Individuals and interactions over processes and tools– Working software over comprehensive documentation– Customer collaboration over contract negotiation– Responding to change over following a plan

• That is, while there is value in the items on the right, we value the items on the left more.

Page 11: Extreme programming - a quick and agile overview !

Agile Methodology Definition of Agile:

Characterized by quickness, lightness, and ease of movement; nimble.

Mentally quick or alert: an agile mind.

Agile Methodology promotes: Project management process that encourages frequent inspection and

adaptation; Leadership philosophy that encourages team work, self-organization and

accountability; Set of engineering best practices that allow for rapid delivery of high-

quality software; Business approach that aligns development with customer needs and

company goals.

Page 12: Extreme programming - a quick and agile overview !

Examples of Agile Methods

Page 13: Extreme programming - a quick and agile overview !

Different Agile Methods Extreme Programming / XP (Kent Beck, Ward Cunningham,

Martin Fowler, Ron Jeffries) Scrum (Ken Schwaber, Jeff Sutherland) Kanban Lean Software Development Crystal (Alistair Cockburn) Dynamic systems development method (DSDM) Feature Driven Development / FDD (Peter Coad) XBreed Adaptive Software Development / ASD (Jim Highsmith)

Page 14: Extreme programming - a quick and agile overview !

So, now again what is XP??

Page 15: Extreme programming - a quick and agile overview !

Another Dilbert's cartoon ?

Page 16: Extreme programming - a quick and agile overview !

Here is the Definition of XP Extreme Programming (XP) is a software

development methodology which is intended to improve software quality and responsiveness to changing customer requirements.

Empowers developers to confidently respond to changing customer requirements, even late in life cycle.

Proven at companies like First Union National Bank, Ford Motor Company, UBS, Bayerische Landesbank, Credit Swiss Life, DaimlerChrysler etc.

Page 17: Extreme programming - a quick and agile overview !

XP Values, Principles & Practices

Values PracticesPrinciples

CommunicationSimplicityFeedback…

Humanity ImprovementQualityAccepted Responsibility…

Planning GameShort ReleaseContinuous IntegrationSimple DesignPair Programming…

Principles are bridge between Values, which is synthetic and abstract, and Practices, which tell how to actually develop software.

Page 18: Extreme programming - a quick and agile overview !

XP - Core Values

Page 19: Extreme programming - a quick and agile overview !

XP - Basic Fundamental Principles

Page 20: Extreme programming - a quick and agile overview !

XP - Practices

Testing related practices - Automated Unit

testing for every code

General/Human practices - Sit together,

energized work, PP

Planning related practices - User stories, short releases, daily stand up

Design related practices – KISS, Simple design (avoid YAGNI), refactoring

Coding/Programming/Release related practices - TDD, Pair programming, CI, Coding

standards, 40 hour week

Page 21: Extreme programming - a quick and agile overview !

Full stack developer – the packaged Geek

Page 22: Extreme programming - a quick and agile overview !

Full stack developer – the packaged Geek

Page 23: Extreme programming - a quick and agile overview !

Full stack developer – the packaged GeekDefinition - “... a Full Stack Developer (FSD) is someone with familiarity in

each layer, if not mastery in many and a genuine interest in all software

technology … ”

Another way to look at it - “…. when people are asking for a full-stack

programmer they're looking for the all-singing, all dancing technical wizard. Or

at least someone who won't complain too much when asked to do some work

outside their normal comfort zone…”

Page 24: Extreme programming - a quick and agile overview !

To end this, another Dilbert's cartoon ?

Page 25: Extreme programming - a quick and agile overview !

References used• @xpconf I attended

• http://xpconference.in/

• http://www.slideshare.net/XPConference

• Google images and Slideshare decks

Page 26: Extreme programming - a quick and agile overview !

Thank You!