Extreme programming - a quick and agile overview !

Post on 06-Apr-2017

2.296 views 0 download

Transcript of Extreme programming - a quick and agile overview !

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

Cartoon of the day

Typical problem in a Waterfall Software Development Methodology

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

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

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

Once upon a time…

Classic Waterfall Software Development Methodology

Waterfall to XP evolution

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

What is XP??

Before we learn XP or unlearn Waterfall…

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.

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.

Examples of Agile Methods

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)

So, now again what is XP??

Another Dilbert's cartoon ?

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.

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.

XP - Core Values

XP - Basic Fundamental Principles

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

Full stack developer – the packaged Geek

Full stack developer – the packaged Geek

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…”

To end this, another Dilbert's cartoon ?

References used• @xpconf I attended

• http://xpconference.in/

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

• Google images and Slideshare decks

Thank You!