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
Programming (XP) or the
Process (AUP). When it comes to
documentation they are likely to enhance these processes with the
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
stakeholders, including both users and managers, in the basics of software
development to help them make more informed decisions when it comes to
My experience is that all developers, agile or not, need to learn fundamental data techniques.
Furthermore, agile developers need to adopt evolutionary, if not agile, database techniques. This includes: