David Bernstein says that the core of Extreme Programming (XP) is comprised of five development practices: automating the build for continuously integrating software as it is written, collaborating with team members through pair programming, practicing agile design skills that enable testability, using test-first development to drive design, and refactoring code to reduce technical debt. Together, these five technical practices are essential for sustained success with XP and for many of the best agile teams. However, quite a few agile teams haven’t been exposed to some or all of these practices. David explores these XP practices, discusses how to use them to reduce risk, and explains how to build quality in at every level of the development process. He makes the business case for these technical practices by showing how they address the inherent risks and challenges in building software. David then looks at how practices from XP address the core issues of software development by helping us “build the right thing” and “build the thing right.”
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
Five XP Practices for Agile Development
1. AW5
Agile Techniques
11/16/2016 1:30:00 PM
Five XP Practices for Agile Development
Presented by:
David Bernstein
To Be Agile
Brought to you by:
350 Corporate Way, Suite 400, Orange Park, FL 32073
888--‐268--‐8770 ·∙ 904--‐278--‐0524 - info@techwell.com - http://www.stareast.techwell.com/
2. David Bernstein
To Be Agile
David Bernstein is the author of Beyond Legacy Code: Nine Practices to Extend
the Life (and Value) of Your Software, an insider’s view of the software industry
drawn from his decades of hands-on experience as a software developer, trainer,
and consultant to some of the biggest players in the business. David’s continuing
passion for software design and construction has led him to train more than
8,000 developers since 1990 at hundreds of companies worldwide including
Amazon, Yahoo, and Microsoft. His consulting firm, To Be Agile, helps developers
adopt Extreme Programming practices such as test-driven development,
continuous integration, and refactoring.
4. 10/31/2016
2
3
Nine Essential Practices
1. Say What, Why, and for Whom before How: With a Product Owner defining the next most
important features to build, the need for upfront requirements goes away.
2. Build in Small Batches: Building incrementally increases feedback, helps simplify the
construction of complex systems, and reduces risks.
3. Integrate Continuously: Sets up the infrastructure for incremental development.
4. Collaborate: Spiking, pairing, and swarming as a team to solve problems and radiate
knowledge throughout an organization.
5. Create CLEAN Code: Share standards and practices for building software with code qualities
that support testability.
6. Write the Test First: Drops the cost of building and maintaining software dramatically.
7. Specify Behaviors with Tests: Uses tests to define and document behaviors.
8. Implement the Design Last: Paying technical debt can pay back dividends in the short term as
well as the long term.
9. Refactor Legacy Code: Incorporate learning and pay off technical debt.
Integrate Continuously
Practice 3
13. 10/31/2016
11
Create CLEAN Code
We can infer good development principles and
practices through five key code qualities:
Cohesive
Loosely Coupled
Encapsulated
Assertive
Nonredundant
Practice 5
Quality Code is Cohesive
27. 10/31/2016
25
49
Thank You!
We have just scratched the surface, to learn more:
– Read my blog: http://ToBeAgile.com/blog
– Sign up for my newsletter: http://ToBeAgile.com/signup
– Follow me on Twitter (@ToBeAgile)
– Read my book:
– Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of
Your Software (available from http://BeyondLegacyCode.com)
– Attend my one of my Certified Scrum Developer trainings
– See http://ToBeAgile.com/training for my public class schedule
– Or contact me to arrange a private class for your organization
– Visit http://ToBeAgile.com for more information