Gartner Research

Refactor Monolithic Software to Maximize Architectural and Delivery Agility

Published: 18 May 2017

ID: G00319384

Analyst(s): Kirk Knoernschild

Summary

Monolithic software impedes agility and hinders maintainability. By increasing the modularity of monolithic software, technical professionals responsible for application architecture will realize most of the benefits of microservices while leveraging existing infrastructure investments.

Table Of Contents

Problem Statement

The Gartner Approach

The Guidance Framework

  • Prework — Prioritize the Benefits to Gain
    • Describing the Monolith
    • Prioritize and Articulate Your Goals Clearly
  • Step 1 — Establish the Current Architectural Baseline
    • Investigate the Impact of Change
    • Execute Regression Tests
    • Utilize Metrics That Track Progress
  • Step 2 — Automate the Delivery Pipeline
    • Automate Critical Regression Tests
    • Automate the Build, and Set Up Continuous Integration
    • Set Up Your Architectural Feedback Loop
  • Step 3 — Modularize the Application
    • Separate Functional Changes From Architectural Refactoring
    • Separate the Units of Composition Into Modules
    • Carefully Identify and Enforce Dependencies
  • Step 4 — Reorganize the Development Infrastructure
    • Separate Version Control Projects
    • Break Apart Build Scripts and Tests
    • Decompose IDE Workspaces
  • Step 5 — Automate Packaging and Deployment
    • Create Master Scripts to Package and Test the Application
    • Automate the Deployment Scripts

Risks and Pitfalls

  • Failing to Clearly Prioritize Objectives
  • Lacking the Discipline to Focus on All Steps
  • Creating Fine-Grained Modules Too Quickly
  • Failing to Recognize That Architectural Refactoring Is Continuous
  • Related Guidance

Gartner Recommended Reading

©2020 Gartner, Inc. and/or its affiliates. All rights reserved. Gartner is a registered trademark of Gartner, Inc. and its affiliates. This publication may not be reproduced or distributed in any form without Gartner’s prior written permission. It consists of the opinions of Gartner’s research organization, which should not be construed as statements of fact. While the information contained in this publication has been obtained from sources believed to be reliable, Gartner disclaims all warranties as to the accuracy, completeness or adequacy of such information. Although Gartner research may address legal and financial issues, Gartner does not provide legal or investment advice and its research should not be construed or used as such. Your access and use of this publication are governed by Gartner’s Usage Policy. Gartner prides itself on its reputation for independence and objectivity. Its research is produced independently by its research organization without input or influence from any third party. For further information, see Guiding Principles on Independence and Objectivity.

Already have a Gartner Account?

Become a client

Learn how to access this content as a Gartner client.