A lot of people have
been asking the question "What is Agile Software
Development?" and invariably they get a different
definition depending on who they ask. Many people
will correctly say that agile software development
conforms to the
principles of the
Agile Manifesto, and those sites are clearly
great resources. But, if you're looking
for a "sound bite" definition of agile software
development, that's a little harder to come by.
Furthermore, the definition that you get might
not promote the level of maturity, or perhaps
discipline is a better word, that you're hoping
to achieve. Here's a definition that I
think is pretty good (the layout of the points may be
important) which I hope you find useful.
Disciplined agile software development is:
An iterative and incremental (evolutionary)
approach to software development
which is performed in a highly collaborative manner
by self-organizing teams within an effective
that produces high quality solutions
in a cost effective and timely manner
which meets the
changing needs of its stakeholders.
You might find my articles
The Criteria for Determining Whether a Team is Agile,
Examining the Agile Manifesto,
Agile System Development Lifecycle (SDLC) to be interesting
introductions to agile software development. Also,
various agile surveys provide some insight
into the how Agile is being adopted within
Let Us Help
We actively work with clients around the world to improve their information technology (IT) practices,
typically in the role of mentor/coach, team lead, or trainer. A full description of what we do, and how to contact us, can be found at Scott Ambler + Associates.
This book, Disciplined Agile Delivery: A Practitioner's Guide to Agile Software Delivery in the Enterprise
describes the Disciplined Agile Delivery
(DAD) process decision framework.
The DAD framework is a people-first, learning-oriented hybrid agile approach to IT solution delivery. It has a risk-value delivery lifecycle, is goal-driven, is enterprise aware, and provides the foundation for
This book is particularly important for anyone who wants to understand how agile works from end-to-end within an enterprise setting.
Data professionals will find it interesting because it shows how agile modeling and agile database techniques fit into the overall solution delivery process.
Enterprise professionals will find it interesting beause it explicitly promotes the idea that disciplined agile teams should be enterprise aware and therefore work closely with enterprise teams.
Existing agile developers will find it interesting because it shows how to extend Scrum-based and Kanban-based strategies to provide a coherent, end-to-end streamlined delivery process.
The Object Primer 3rd Edition: Agile Model Driven
Development with UML 2 is an important reference book for agile modelers,
describing how to develop 35 types of agile
models including all 13
UML 2 diagrams.
Furthermore, this book describes the fundamental programming and testing techniques
for successful agile solution delivery. The book also shows how to move from your
agile models to source code, how to succeed at implementation techniques such as
The Object Primer also includes a chapter overviewing the critical database development techniques (database refactoring,
legacy analysis, and
database access coding) from my award-winning
Agile Database Techniquesbook.