Aligning Development and Operations
At ASG, the development team works closely with both our consulting partners and our ventures as part of our shared services offering. In practice, this means that when we see an opportunity to add value, we can add software development analysts to operational teams that work with software products.
For one of our partner projects, we provide ongoing operational support to audit data and generate reporting via their proprietary software system. Due to the complex nature of the data, the partner’s goal is to clean the data and automate the process as much as possible. The operational team works with the partner on a monthly basis to discuss the current state of the process, any obstacles encountered, and potential areas for improvement. This creates a cycle of feedback that allows for rapid refinement of the process.
The contributions of software development analysts to this process can introduce unique perspectives. Developers bring an understanding of software to the table that informs the project’s operations process while operations team members’ input and experiences are invaluable to the development team working on the project.
Why Add the Development Perspective?
When working closely with an operational team on this type of project, knowledge of the capabilities of the software is critical in realistically designing the process. An understanding of which features would be more difficult to implement or would pose more complications to the current structure of the software project is a significant factor in deciding what should be automated. This perspective ultimately helps both the development team and the operational team work more efficiently.
Familiarity with software development can also expedite troubleshooting and keep the operations process adaptable to unexpected challenges. In ASG’s partner project, a bug in the software arose that prevented certain records of the data from appearing where they were expected to. However, with an understanding of the database underlying the software, the operational team was able to quickly locate the data, understand the cause of this bug, and work around this issue until the development team implemented a solution.
In this situation, technical knowledge informed an understanding of this obstacle and allowed the team to adapt and prevent disruption of the operations process.
Enabling Intuitive Software Design
The active involvement of software development analysts in operational support facilitates valuable communication between the operations team and development team. The feedback that these analysts can provide about the software helps the development team understand how the software is used in practice. Additionally, learning about a variety of use cases is crucial in designing efficient and effective software.
The auditing portion of this project utilized a set of statuses to communicate what action was needed for each record in the data. Feedback from analysts on the development team indicated that the original status system did not capture the necessary use cases and started a discussion about a more suitable status system based on their utilization of the software. The development team was able to make the appropriate changes to the status system, resulting in a more useful end product. In addition to informing design choices, user feedback can also provide crucial information to the development team about what user interface features are intuitive. This approach ensures that the development team knows how end users understand the software, which in turn informs the development process and leads to more clear, intuitive software.
Operations experience also helps the development team prioritize features and fixes appropriately. Because analysts working with the operational team know what the operations process requires, they understand which new software features would be the most useful from an operations perspective, as well as which bug fixes are the most urgent. When they communicate this to the development team, this ensures that the most high-priority software issues are addressed first.
Efficient Testing in Action
Adding software development analysts to an operational team fortifies the testing process. Regular operations provide ample opportunity to test using actual, realistic data, and this testing can easily be incorporated throughout the operations process.
Our team at ASG took advantage of this system when a bug appeared in our partner’s software that caused automatic adjustments to the data to work incorrectly in some situations. Analysts working with the operational team were able to gather a large collection of examples of this bug occurring by simply noting the IDs of data records affected by the bug in the course of the normal operations process. This base of information was extremely important for the developers addressing the bug. By looking through the examples collected by the operational team, the development team was able to quickly identify a pattern in the incorrect adjustments and pinpoint the source of the issue in the code.
This method provided just as much information on the issue as thorough front-end testing would have, but it did not require any extra time or effort dedicated to testing for the development team.
Incorporating analysts with development experience into an operational team can help synchronize and focus the project’s processes. Advantages of this approach include:
- Development of software features that improve operational performance without requiring significant design changes to the existing software
- Ability to quickly identify and overcome issues due to knowledge of the underlying software
- Constant feedback on use cases for the software, leading to software that better meets the end users’ needs
- Clear prioritization of potential software features based on user needs
- Thorough front-end testing with very little added time or effort