Data Skills for Agile Software Developers
An agile software developer, or developer for short, is anyone who is actively involved with the creation and evolution of a software-based solution. 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. Given the importance of data, agile developers need to data skills such as data modeling, database engineering, and database testing.
Agile software developers will adopt and follow agile software development strategies. 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 approaches, being agile, implores developers to work closely with their 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. Agile developers work very closely with other team members, including Agile data engineers who are responsible for working on the data aspects of one or more applications.
What Agile Developers Do
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. Application developers work very closely with Agile data engineers who are responsible for working on the data aspects of one or more applications.
Application developers must recognize that your although your primary focus is fulfilling the current needs of your direct stakeholders that they also need to recognize that their initiative exists within the larger scope of your organization. This strategy reflects Agile Modeling’s principles Software Is Your Primary Goal and Enabling the Next Effort is Your Secondary Goal – in this case part of the next effort is ensuring that your team conforms to the overall enterprise vision. Application developers are best served by recognizing that they are working on one initiative of many within their organization, that many teams came before theirs, that many teams will come after theirs, and therefore they need to work with people in the other roles to ensure that they do the right thing.
Application developers will adopt and follow agile software development processes such as Disciplined Agile Delivery (DAD). 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 stakeholders. An 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.
Application developers will often find that they are constrained by they organization’s legacy systems, including legacy data schemas. These systems will often be very difficult to evolve, and if they can evolve will often happen very slowly. Luckily Agile data engineers will be able to help application developers deal with the realities imposed upon them by legacy data sources, but they will need to work with enterprise professionals, particularly enterprise architects, to ensure that their efforts reflect the long-term needs of your organization.
Application developers will also need to recognize that they need to follow their organization’s development practices, including guidelines and standards. Developers are expected to provide feedback regarding the standards and guidelines, every in the organization should do so, and should be prepared two work with enterprise professionals to develop guidelines for development environments that are new to your organization.
Agile developers also need to work closely with enterprise architects to ensure that their team takes advantage of existing enterprise resources as well as fits into the overall enterprise vision. The enterprise architects should be able to provide this guidance and will work with your team to architect and even build your system. Furthermore, application developers should expect to be mentored in “senior” skills such as architecture and modeling. This approach makes it easy for your team to support enterprise efforts and helps to keep the enterprise architects grounded because they quickly discover if their architecture actually works in practice.
Data Skills for Agile Developers
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
Agile Database Skills for Agile Developers
- Vertical slicing
- Clean data architecture
- Clean database design
- Agile data modeling
- Database refactoring
- Automated database regression testing
- Continuous database integration (CDI)
- Configuration management
Figure 1. The Agile Database Techniques Stack.
This book, Choose Your WoW! A Disciplined Agile Approach to Optimizing Your Way of Working (WoW) – Second Edition, is an indispensable guide for agile coaches and practitioners. It overviews key aspects of the Disciplined Agile® (DA™) tool kit. Hundreds of organizations around the world have already benefited from DA, which is the only comprehensive tool kit available for guidance on building high-performance agile teams and optimizing your WoW. As a hybrid of the leading agile, lean, and traditional approaches, DA provides hundreds of strategies to help you make better decisions within your agile teams, balancing self-organization with the realities and constraints of your unique enterprise context.
I also maintain an agile database books page which overviews many books you will find interesting.