The Agile methodology is used extensively within the IT community. Working with agile software development teams requires some adjustments to the DBA mindset.
A summary of the Agile principles.
1) Continuous delivery of software
2) Absorb changes at any point in the development cycle
3) Delivery based on shorter cycles
4) More interaction between customer and IT throughout the development cycle
5) Build projects around motivated people
6) Face to face conversation is an effective communication method
7) Progress is measured by software functionality
8) Sustainable development.
9) Attention to technical excellence enhances agility
10) Simplicity is critical. Avoid inessential tasks
11) Self organising teams produce the most effective solutions
12) Regular reviews of how to work more effectively.
How does a DBA fit in to this Agile methodology?
1) A stable Database environment is critical and top priority
3) Start work based on minimal information
4) Standardise builds and environments. Allow for customisations
5) Documentation – make it effective and useful
6) Focus on the biggest bottlenecks and common issues
7) Full integration with the Development team. 24 x 7 availability
8) Data modelling is increasingly an iterative approach
9) Agile teams require separate development and testing environments.
10) SQL code is application code. Therefore similar iterative and integration process.
11) Agile teams tend to require regular rebuilding of development and testing environments. Aim to script all database objects
Solid architecture and database design principles are key to building large database systems. All agile principles should be underpinned by a sustainable and scalable methods.
From a DBA perspective – I find developers sacrificing good quality design for quick delivery.
A key DBA skill in the Agile environment is troubleshooting. One aspect is the awareness and resolution of a problem, allowing development to progress. The other aspect requires proactive monitoring of database server systems – such as regular health checks and auditing. The aim is to divert outages and maintain an agreed level of quality.