spacer

The Skillset of an Agile DBA

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

spacer
   Home  |  Agile DBAs  |  Developers  |  Enterprise Architects  |  Enterprise Administrators  |  Best Practices  |  Agility@Scale Blog  |  Announcements  |  Contact Us 
An agile DBA is anyone who is actively involved with the creation and evolution of the data aspects of one or more applications.  Agile DBAs need skills in "traditional" tasks such as database programming, database administration, data testing, and data modeling.  Furthermore, agile DBAs must have at least a basic understanding of all aspects of the software process (in other words they should be generalizing specialists), they must have evolutionary development skills, and they must have the "soft" skills which enables them to collaborate effective with others.   

 

To understand the skill set that an agile DBA requires, let's consider what they do in practice:

  1. Agile DBAs work very closely with application developers to implement and support data-oriented development efforts. Agile DBAs can often be responsible for several data sources (e.g. databases, files, XML structures, and so on) or at least be co-responsible for them, working with one or more development teams simultaneously.  To interact effectively with developers, agile DBAs need to learn fundamental development techniques, including the basics of object orientation, the Unified Modeling Language (UML), encapsulating database accessand mapping objects to RDBs (O/R mapping).  Optionally, they should be prepared to data model using the UML seeing as developer tools from leading vendors such as Oracle and IBM now support UML data modeling.
  2. Agile DBAs must work in an evolutionary, if not agile, manner just as application developers do. The biggest potential change for Agile DBAs is that they will need to work in an iterative and incremental manner for with many project teams.  Modern development processes, such as the Unified Process or eXtreme Programming (XP), dont provide detailed requirements up front nor do they focus on detailed models (and certainly not detailed data models up front).  They will do some initial requirements and architecture envisioning and then evolve their models over time to reflect their changing understanding of the problem domain as well as the changing requirements of their stakeholders.  Some project teams may choose to work in a more serial manner, they may even choose to produce a detailed conceptual data model early in their lifecycle, but those teams will be few and far between although you will be expected to support them too.  Agile DBAs will need to communicate the constraints imposed by legacy data sources, working with application developers to understand those constraints and work appropriately. Both developers and data professionals need to adopt evolutionary, if not agile, database techniques.  This includes agile data modeling, database refactoring, test-driven design (TDD), and database regression testing. Agile DBAs recognize that they need to be agile, that they can take an agile approach to modeling and documentation, that data models don't drive object models (and vice versa), that they need new tools (because their existing tools reflect the serial mindset of yesteryear), and that agile developers prefer to work in their own separate development sandboxes.  Adopting common agile database best practices is also a very good idea.
  3. Agile DBAs need to work with enterprise administrators to take advantage of and to help evolve corporate meta data, standards, and guidelines.  Agile DBAs will interact with enterprise administrators, in particular operational data administrators, to help the team produce work which reflects your organizations overall strategy.  They will also want to take advantage of any Master Data Management (MDM) efforts that are currently in place, if any.  There is no reason, other than political, why this cannot happen in an agile manner.
  4. Agile DBAs need to work with enterprise architects to ensure that their work reflects the architectural vision.  Similarly, agile DBAs will work with your enterprise architecture team, if one exists, to take advantage of existing infrastructure and strategies.  Once again, this can also happen in an agile manner.

 

References and Suggested Online Readings

  • The Agile Data Vision
  • Agile Database Best Practices
  • Agile/Evolutionary Data Modeling
  • Agile Master Data Management (MDM)
  • Agile Testing and Quality Strategies: Discipline Over Rhetoric
  • Architecture Envisioning; An Agile Best Practice
  • The Criteria for Determining Whether a Team is Agile
  • Introduction to Data Normalization
  • On Relational Theory
  • The "One Truth Above All Else" Anti-Pattern
  • Requirements Envisioning: An Agile Best Practice
  • Roles on Agile Teams: From Small to Large
  • Survey Results (Agile and Data Management)
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.
spacer

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.

 

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 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 W. Ambler + Associates.

 


spacer spacer spacer spacer spacer spacer spacer spacer spacer


Copyright 2005-2012 Scott W. Ambler

This site owned by Ambysoft Inc.

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.