Lattix Architecture Blog

Friday, October 27, 2017 - 16:04 - 0 comment(s)
“Any customer can have a car painted any color that he wants so long as it is black.” - Henry Ford Modularity in design is an approach that divides a system into smaller parts called modules that can be worked on independently and then reused in other systems. A modular system is characterized by breaking a large system into discrete, scalable, reusable modules and using well-defined (or industry standard) interfaces. An automotive example is Volkswagen’s MBQ, which is a modular product... + continue reading
Friday, August 25, 2017 - 12:49 - 0 comment(s)
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 for Simplicity: You can’t secure what you don’t understand said, “the worst enemy of software security is complexity.” In this blog post, we will talk about the importance... + continue reading
Monday, August 14, 2017 - 16:32 - 0 comment(s)
How do you achieve high velocity in software development? The main challenge to high velocity is tight coupling. Coupling is the degree of interdependence between software modules, or a measure of how closely connected two routines or modules are, or the strength of the relationships between modules. Let’s break down exactly what coupling is, the problems with tightly coupled software, and how to reduce coupling. What is Tight Coupling According to John Lakos in Large Scale C++ Software... + continue reading
Tuesday, August 8, 2017 - 13:23 - 0 comment(s)
The General Data Protection Regulation (GDPR) is an EU regulation on privacy protection that goes into effect in May 2018. GDPR applies not only to EU companies that process personal data on EU residents but also to companies not located in the EU. As Article 3 states, it is “applied to the processing of personal data of data subjects who are in the Union by a controller or processor not established in the Union.” Software architecture is an important part of GDPR compliance. An... + continue reading
Thursday, August 3, 2017 - 11:07 - 0 comment(s)
As we discussed in the previous blog post, cyclic dependencies degrade the quality of a software system, leaving it inflexible and difficult to manage. As the size of a software system grows, the importance of catching and fixing cyclic dependencies grows because the overall cost of developing and maintaining the system increases. How Cyclic Dependencies are Created Software systems usually start out with clean, well thought-out designs that don’t have bad dependencies (cyclic dependencies... + continue reading