Practices of an Agile Developer
Working in the Real World
by Venkat Subramaniam, Andy Hunt
Version: P6.0 (August 2011)
Copyright 2006 Venkat Subramaniam and Andy Hunt . This book is licensed to the individual who purchased it. We don't copy-protect it because that would limit your ability to use it for your own purposes. Please don't break this trustyou can use this across all of your devices but please do not share this copy with other members of your team, with friends, or via file sharing services. Thanks.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and The Pragmatic Programmers, LLC was aware of a trademark claim, the designations have been printed in initial capital letters or in all capitals. The Pragmatic Starter Kit, The Pragmatic Programmer, Pragmatic Programming, Pragmatic Bookshelf and the linking g device are trademarks of The Pragmatic Programmers, LLC.
Every precaution was taken in the preparation of this book. However, the publisher assumes no responsibility for errors or omissions, or for damages that may result from the use of information (including program listings) contained herein.
About the Pragmatic Bookshelf
The Pragmatic Bookshelf is an agile publishing company. Were here because we want to improve the lives of developers. We do this by creating timely, practical titles, written by programmers for programmers.
Our Pragmatic courses, workshops, and other products can help you and your team create better software and have more fun. For more information, as well as the latest Pragmatic titles, please visit us at http://pragprog.com.
Our ebooks do not contain any Digital Restrictions Management, and have always been DRM-free. We pioneered the beta book concept, where you can purchase and read a book while its still being written, and provide feedback to the author to help make a better book for everyone. Free resources for all purchasers include source code downloads (if applicable), errata and discussion forums, all available on the book's home page at pragprog.com. Were here to make your life easier.
New Book Announcements
Want to keep up on our latest titles and announcements, and occasional special offers? Just create an account on pragprog.com (an email address and a password is all it takes) and select the checkbox to receive newsletters. You can also follow us on twitter as @pragprog.
About Ebook Formats
If you buy directly from pragprog.com, you get ebooks in all available formats for one price. You can synch your ebooks amongst all your devices (including iPhone/iPad, Android, laptops, etc.) via Dropbox. You get free updates for the life of the edition. And, of course, you can always come back and re-download your books when needed. Ebooks bought from the Amazon Kindle store are subject to Amazon's polices. Limitations in Amazon's file format may cause ebooks to display differently on different devices. For more information, please see our FAQ at pragprog.com/frequently-asked-questions/ebooks. To learn more about this book and access the free resources, go to https://pragprog.com/book/pad, the book's homepage.
Thanks for your continued support,
Dave Thomas and Andy Hunt
The Pragmatic Programmers
Table of Contents
Copyright 2016, The Pragmatic Bookshelf.
What readers are saying about Practices of an Agile Developer
The What It Feels Like sections are just goldits one thing to tell someone to do this; its quite another to put it into practice and know youre doing it right.
Nathaniel T. Schutta |
Coauthor, Foundations of Ajax |
The book is what Ive come to expect from the Pragmatic Bookshelf: short, easy to read, to the point, deep, insightful and useful. It should be a valuable resource for people wanting to do agile.
Forrest Chang |
Software Lead |
When I started reading Practices of an Agile Developer , I kept thinking, Wow, a lot of developers need this book. It did not take long to realize that I needed this book. I highly recommend it to developers of all experience levels.
Guerry A. Semones |
Senior Software Engineer, Appistry |
Practices of an Agile Developer uses common sense and experience to illustrate why you should consider adopting agile practices on your projects. This is precisely the kind of real-world, experiential information that is most difficult to glean from a book.
Matthew Johnson |
Principal Software Engineer |
The perfect sequel to The Pragmatic Programmer !
Bil Kleb |
Research Scientist, NASA |
I was familiar with some of the practices mentioned since I own other books from the Pragmatic Bookshelf, but this book brings a lot of those ideas together and presents them in a clear, concise, organized format. I would highly recommend this book to a new developer or to a development team that wanted to get agile.
Scott Splavec |
Senior Software Engineer |
With agile practices spreading across the industry, there is a growing need to understand what it really means to be agile. This book is a concise and practical guide to becoming just that.
Marty Haught |
Software Engineer/Architect, Razorstream |
Maybe you have heard before about agile methodologies and have been asking yourself, what things can I do to improve my work each day? My answer would be to read this book and let the angels inside whisper in your ears the best personal practices you can embrace.
David Lzaro Saz |
Software Developer |
This is a remarkably comprehensive yet targeted and concise overview of the core practices of agility. What I like best about this book is that it doesnt promote a specific agile methodology but rather ties together the practices common to each methodology into a coherent whole. This is required reading for anyone hungering for a faster, more reliable way to develop wickedly good software.
Matthew Bass |
Software Consultant |
No matter how far down the wrong road youvegone, turn back.
Turkish proverb
Chapter 1
Agile Software Development
That Turkish proverb above is both simple and obviousyoud think it would be a guiding force for software development. But alltoo often, developers (including your humble authors) continuedown the wrong road in the misguided hope that it will be OKsomehow. Maybe its close enough. Maybe this isnt really aswrong a road as it feels. We might even get away with it now and then,if creating software were a linear, deterministicprocesslike the proverbial road. But its not.
Instead, software development is more like surfingits a dynamic, ever-changing environment. The sea itself is unpredictable, risky, and there may be sharks in those waters.
But what makes surfing so challenging is that every wave is different . Each wave takes its unique shape and behavior based on its localea wave in a sandy beach is a lot different from a wave that breaks over a reef, for instance.
In software development, the requirements and challengesthat come up during your project development are yourwavesnever ceasing and ever-changing. Like the waves,software projects take different shapes and pose differentchallenges depending on your domain and application. Andsharks come in many different guises.