Moving your software development teams from working on operational to strategic goals is essential to your company's innovative future. However, the best developer’s time is too often occupied working on existing business solutions, which greatly hampers their ability to work on future business. Even if you had an unlimited budget to hire new resources, without an infusion of the tribal knowledge diffused among your existing teams, those new hires might have too much to learn about your environment to be immediately productive.
Here are two steps you can take to resolve conflicting interests between operational and strategic software development and begin fostering innovation and business growth.
Step 1: Invest in Improving High Maintenance Systems
First, you need to free up your team from their current operational work without compromising the quality of your current operations. That means making an investment upfront. By finding your existing systems with the highest maintenance costs and targeting them for improvement, you can inform your future decisions and focus your efforts where they will make the most difference.
High maintenance systems can be targeted for bug fixes and other maintainability enhancements, such as enhanced monitoring and alerting systems, getting these issues off the forefront of your teams' minds. Systems can even be targeted for an early replacement where it makes sense based on priorities and the expected cost of updates and maintenance.
Step 2: Create Separate Strategic and Operational Development Teams
Once you’ve got some time back from operational concerns, structure your team to keep those focused on the future from being distracted by day-to-day issues. A good first step is to create two groups, strategic and operational.
Choose Team Members Carefully
It’s important to remember that even the best operational team may not be ideally structured for strategic work. For instance, operational work may heavily favor senior developers who can get features out quickly.
A strategic team typically requires architects, business analysts, designers, product owners, and project managers. They work together to make sure the right features are being developed in the right way to keep the project moving forward with minimal rework. Finding the right balance of people to fill these roles in your strategic team can make a huge difference in the timeline and quality of your results.
Coordinate Strategic Development with Management and Executive Support
Your new strategic team’s success depends on the management and executive support they need to remain on task. Your team will look to you for priorities, and it may fall to you to ensure they stay focused on strategic work and are not pulled into addressing short term business needs. Ensure they have access to the right business stakeholders to discover the big picture requirements that will shape your business’s future. Give them the executive support to push back against prematurely defined requirements and short-term thinking where necessary.
Continue Knowledge Sharing Between Teams
Don’t forget the need to continue knowledge sharing between operational and strategic development teams. If knowledge becomes too siloed, you risk losing the advantage of the tribal knowledge in your existing teams. One way to work around this is by establishing a rotation between the teams to ensure everyone has time in both domains. Another is to encourage inter-team code reviews and other forms of knowledge sharing.