Agile Data

Data Skills for Agile Software Developers

Follow @scottwambler on Twitter!

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 not, need to learn fundamental data techniques.  This includes:

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