Africa Surveyors May-June digital issue 2020

Page 36

INDUSTRY TIPS

How to Decide on Software Architecture Modifications

T

hroughout the software development lifecycle, the foundational decisions that define a product’s architectural design impact every aspect of the application, so the process of modifying that architecture requires extensive analysis and consideration.

its behavior. It’s generally a reorganization process that results in higher quality code. A rewrite is like a nuclear football: hitting that switch requires heavy, careful consideration because it’s usually the most expensive option and slows down timeto-market

This topic crops up on a regular basis at every company. Most of the time, you’ll have an existing architecture that needs to be rewritten or refactored. Using these situations, you can quickly learn to pinpoint what to analyze, how to analyze it, and how to appropriately act on the findings.

36

or the delivery of new features.

For the sake of clarity, here’s how we differentiate between rewriting and refactoring.

Factors Driving Architectural Decisions

Refactoring, according to Martin Fowler, is about changing the design of something without impacting

Architecture is influenced by three major drivers that should always play a key role in an organization’s decision to refactor or

Africa Surveyors News l 2020

Business drivers are usually related to the direction of the company and its overall mission or vision. An example of a business driver is a need to create 10 new integrations a month, or perhaps 5,000 integrations by the end of the year. Another is an expected incremental increase in users or a boost in sales orders. Quality attributes are aspects of the software that require protection, such as maintainability, accessibility, resilience, agility, security, and performance, to name a few. Organizations should define which quality attributes are most important to the business because adjusting one is usually detrimental to another. For instance, enhancing a product’s security can result in performance drop-offs, and improving an application’s resilience might result in longer deployment cycles.

When choosing to refactor or rewrite an application’s software architecture, or to understand when it’s completely unviable, use the following considerations.

Refactoring vs. Rewriting

rewrite it: business drivers, quality attributes and risks.

The final drivers, risks, include things like slow time-tomarket, market competition, or financial risks related to the software’s user base. Again, organizations should decide which risks pose the biggest threat to the software’s success and trade them off against the lesser threats to better analyze their software architecture for its capability to mitigate these risks.

May-June issue l 2020


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.