Data Skills for Agile Software Developers
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:
- Data modeling
- Relational database fundamentals
- Mapping objects to RDBs (O/R mapping)
- Encapsulating database access
- How to implement reports
- Working with legacy data
Furthermore, agile developers need to adopt evolutionary, if not agile, database techniques. This includes:
- Agile data modeling
- Database refactoring
- Test-driven design (TDD)
- Database regression testing
- Taking an agile approach to modeling and documentation
- Working in development sandboxes
- Recognizing that data models don't drive object models (and vice versa)
Recommended Reading
This book, Choose Your WoW! A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working, is an indispensable guide for agile coaches and practitioners to identify what techniques - including practices, strategies, and lifecycles - are effective in certain situations and not as effective in others. This advice is based on proven experience from hundreds of organizations facing similar situations to yours. Every team is unique and faces a unique situation, therefore they must choose and evolve a way of working (WoW) that is effective for them. Choose Your WoW! describes how to do this effectively, whether they are just starting with agile/lean or if they're already following Scrum, Kanban, SAFe, LeSS, Nexus, or other methods.
I also maintain an agile database books page which overviews many books you will find interesting.
Copyright 2002-2021 Ambysoft Inc.
This site owned by Ambysoft Inc.