Tried putting things in the deck that I learnt about Extreme programming in XP Conference held in Bangalore. I have tried to keep it at very high level added with light moments, so that it doesn't getting boring and makes sense for most of us
2. Cartoon of the day
Typical problem in a Waterfall Software Development Methodology
3. 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
4. Agenda
1. Objectives of this session
2. Once upon a time
3. Waterfall to XP evolution
4. Agile methodology
5. Extreme Programming
6. Full stack developer
5. Objectives
1. 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
6. Once upon a time…
Classic Waterfall Software Development Methodology
7. Waterfall to XP evolution
Source: "Embracing change with extreme programming" by Kent Beck,
IEEE Computer, October 1999.
10. 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.
11. 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.
16. 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.
17. XP Values, Principles & Practices
Values Practices
Principles
Communication
Simplicity
Feedback
…
Humanity
Improvement
Quality
Accepted Responsibility
…
Planning Game
Short Release
Continuous Integration
Simple Design
Pair Programming
…
Principles are bridge between Values, which is synthetic and
abstract, and Practices, which tell how to actually develop
software.
20. 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
23. Full stack developer – the packaged Geek
Definition - “... 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…”
You ain’t gonna need it, keep it simple stupid
Communication
Problems with projects can invariably be traced back to somebody not talking to somebody else about something
Simplicity
Do the simplest thing that could possibly work. Follow KISS, YAGNI
Feedback
Should always be able to measure the system and to know how far it is from the needed features
Concrete feedback early and often from the customer, from the team, and from real end users gives you more opportunity to steer your efforts.
Close customer contact & availability of automated tests
Courage
Respect