Agile Data

Data Skills for Agile Software Developers

www.agiledata.org: Techniques for Successful Evolutionary/Agile Database Development

Scott W. Ambler
Agile Database Techniques An agile software developer is anyone who is actively involved with the creation and evolution of the non-data aspects of a software application.  The responsibilities of this role can include the responsibilities traditionally associated to the “traditional roles” of programmers, modelers, testers, team leads, business analysts, project managers, and deployment engineers.  Agile developers work very closely with agile DBAs who are responsible for working on the data aspects of one or more applications.  

 

Agile software developers will adopt and follow agile software development processes such as Extreme Programming (XP) or the Agile Unified Process (AUP).  When it comes to modeling and documentation they are likely to enhance these processes with the principles and practices of Agile Modeling (AM).  All three of these processes, being agile, implores developers to work closely with their project stakeholders.  The implication is that developers are responsible for helping to educate their stakeholders, including both users and managers, in the basics of software development to help them make more informed decisions when it comes to technology. 

My experience is that all developers, agile or now, need to learn fundamental data techniques.  This includes:

Further, agile developers need to adopt evolutionary, if not agile, database techniques.  This includes:

 

References and Suggested Readings

Agile Database Techniques This book describes the philosophies and skills required for developers and database administrators to work together effectively on project teams following evolutionary software processes such as Extreme Programming (XP), the Rational Unified Process (RUP), the Agile Unified Process (AUP), Feature Driven Development (FDD), Dynamic System Development Method (DSDM), or The Enterprise Unified Process (EUP).  In March 2004 it won a Jolt Productivity award.
Refactoring Databases

This book describes, in detail, how to refactor a database schema to improve its design. The first section of the book overviews the fundamentals evolutionary database techniques in general and of database refactoring in detail.  More importantly it presents strategies for implementing and deploying database refactorings, in the context of both "simple" single application databases and in "complex" multi-application databases.  The second section, the majority of the book, is a database refactoring reference catalog.  It describes over 60 database refactorings, presenting data models overviewing each refactoring and the code to implement it.

 

The Object Primer 3rd Edition: Agile Model Driven Development (AMDD) with UML 2 This book presents a full-lifecycle, agile model driven development (AMDD) approach to software development.  It is one of the few books which covers both object-oriented and data-oriented development in a comprehensive and coherent manner.  Techniques the book covers include Agile Modeling (AM), Full Lifecycle Object-Oriented Testing (FLOOT), over 30 modeling techniques, agile database techniques, refactoring, and test driven development (TDD).  If you want to gain the skills required to build mission-critical applications in an agile manner, this is the book for you.
 

 

 

Let Me Help

I actively work with clients around the world to improve their information technology (IT) practices as both a mentor/coach and trainer.  A full description of what I do, and how to contact me, can be found here

 


Copyright © 2006 Scott W. Ambler

Last updated: April 5, 2006
This site owned by
Ambysoft Inc.

|
About This SiteMailing List | Site Map | Contact Me | Suggested Books |