Why is software architecture critical?

Wednesday, May 03, 2023

Why is software architecture so important and how can Lattix help? Software architecture is a key factor in reducing cost, improving quality, and faster product delivery. Long term, it is key to the success of any high-tech business. Sound architecture, reduces the costs of maintenance, provides clarity of thought, and allows the business or organization …

Software Archaeology – Software Architectural Recovery for Legacy Code

Wednesday, April 05, 2023

It is always hard to work on code that you did not originally build. It is even harder when the original developers who worked on the code are all gone, there is no documentation, and no one is exactly sure how it is implemented. Unfortunately, this is an all-too-common problem for businesses with legacy software …

The Importance of Managing Complexity

Thursday, September 29, 2022

Introduction We write software to make our lives easier; to reduce the complexity and chaos. The need to reduce complexity is at the very center of software development. Unfortunately, we tend to mirror the complexity of the real world in our software and this leads to many problems. As Bruce Schneier in his essay A Plea …

Building Technical Wealth

Thursday, September 08, 2022

Agile organizations find themselves constrained between the need for speed (velocity) and the need for quality. Technical debt is the enemy of velocity. Most companies don’t address technical debt until it slows or halts developer productivity. At that point, it can be very expensive to pay it down. One of the reasons technical debt is …

The Importance of Measuring Your Software Architectural Health

Thursday, August 04, 2022

How do you measure the “architectural health” of a software project? Since every software project is different, it is hard to come up with a single number that represents the architectural health of an entire project. Lattix Architect, therefore, provides a variety of architectural metrics. These metrics were chosen based on academic research on system architecture …

software architecture

Architecture Erosion in Agile Development

Thursday, May 12, 2022

Software architecture erosion refers to the gap between the planned and actual architecture of a software system as observed in its implementation.1 Architecture erosion is a common and recurring problem faced by many agile development teams. Architecture erosion can result in lower quality, increased complexity, and harder-to-maintain software. At the beginning of a project, the source …

software modularity

Modularity Parable and Software

Thursday, November 26, 2020

In his seminal book, The Sciences of the Artificial, Herb Simon describes the parable of watchmakers named Hora and Tempus. They built watches out of 1000 parts. The watches were of the highest quality – as a result, they were often interrupted by customers calling up to place orders. However, they built watches using different techniques. Tempus …

software architecture

DevOps and Testing Software Architecture

Thursday, March 05, 2020

Forbes Magazine famously wrote that “Every Company is a Software Company.” Your company must become more responsive and agile using software and technology. And if the software doesn’t work or gives customers a bad experience, it can lead to lost revenue. This has led to the DevOps phenomenon, which is speeding up deployment of software …

Static Analysis tool CodeSonar

Four Reasons to Refactor your Code

Thursday, February 13, 2020

1. Maintenance is easier Legacy code architecture erodes over time and becomes difficult to maintain. Legacy code bugs are harder to find and fix. Testing any changes in legacy code takes longer. Even small changes can inadvertently break the application because over time the design has been extended to accommodate new features and the code …

Motivation for Software Architecture Refactoring

Wednesday, January 15, 2020

Refactoring is commonly applied to code, but refactoring can also be applied to other development artifacts like databases, UML models, and software architecture. Refactoring software architecture is particularly relevant because during development the architecture is constantly changing (sometimes for the worse; see our blog post on Architectural Erosion) and expanding. Software architecture refactoring should happen regularly …