
Why is software architecture critical?
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
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 …
Continue reading “Software Archaeology – Software Architectural Recovery for Legacy Code”

The Importance of Managing Complexity
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
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
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 …
Continue reading “The Importance of Measuring Your Software Architectural Health”

Architecture Erosion in Agile Development
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 …
Continue reading “Architecture Erosion in Agile Development”

Modularity Parable and Software
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 …

DevOps and Testing Software Architecture
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 …

Four Reasons to Refactor your Code
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
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 …
Continue reading “Motivation for Software Architecture Refactoring”