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: