A Radical Approach to Long Term Software
Summary
The "multi-service teams" model is proposed as a radical solution to the "maintenance mode problem" in software development, addressing the shortcomings of traditional approaches. This model involves transitioning low-demand, non-differentiating services into dedicated multi-service teams responsible for maintenance and operations within a specific product vertical. This strategy enables organizations to increase capacity, reduce costs, and protect live service reliability by concentrating specialized skills and domain knowledge. It also safeguards future feature delivery through smoother service re-transition and enhances job satisfaction for team members. While senior developers may avoid maintenance, staffing these teams with junior engineers offers valuable early career experience. Essential guardrails include defining "low demand" (e.g., non-differentiating service with at least 3 months of live traffic and slowing deploy frequency), establishing clear team identity aligned with product verticals, and documenting consistent service transfer criteria.
Key takeaway
For VP of Engineering or CTOs struggling with software maintenance overhead, adopting the multi-service teams model can significantly improve resource allocation and service reliability. You should define clear "low demand" criteria and establish dedicated teams, potentially staffed by junior engineers, to manage these services. This approach allows your core delivery teams to focus on new feature development, reducing costs and protecting future innovation while ensuring critical services remain stable.
Key insights
Dedicated multi-service teams effectively manage low-demand software, optimizing resources and preserving core development focus.
Principles
- Maintenance is an inevitable maturity stage.
- "You build it, you run it" is crucial.
- Outcome-oriented teams improve satisfaction.
Method
Transition low-demand, non-differentiating services to dedicated multi-service teams within their product vertical, ensuring clear demand definitions and transfer criteria.
In practice
- Define "low demand" with specific metrics.
- Name maintenance teams by product vertical.
- Staff multi-service teams with junior engineers.
Topics
- Software Maintenance
- Multi-Service Teams
- Team Topologies
- DevOps
- Service Reliability
- Cost Reduction
Best for: Software Engineer, VP of Engineering/Data, CTO
Related on AIssential
Editorial summary, takeaway, and curation by AIssential. Original article published by Modern Software Engineering.