SDLC Development Principles

Defining clear operating principles is essential for any software engineering team to function effectively. These guidelines, while not easily automated, ensure the health and stability of both the systems and the team. Here I describe some of the ways I use in my day-to-day work.

Read

Proximity

In previous articles I discussed about different levels of coupling, and it is true that most of the times when we are discussing about components/modules and coupling we are focusing on the code, but there is also another dimension on the problem...

Read

The Importance of Interactions in System Design

When we try to design or analyse systems, many times we tend to concentrate only on each individual part to inspect its attributes and functionality. The truth is though that the interactions between the individual parts of a system...

Read

More on coupling

Content coupling happens when one module interacts with another module through the most implicit interface possible, one that may not be documented by the module’s author. This means that the consuming module must have detailed knowledge of the inner workings and implementation details of the module it is using...

Read

Applying the cynefin framework in software engineering

I am constantly looking for ways to help me with decision-making, whether it involves a technical or non-technical decision. Many call these principles, while others refer to them as guidelines. I don't think there is one magic way to help you solve everything, but there models that can guide you to a certain extend, at the end of the day every situation is different, every team is different, every project is different and the organisational context in which you operate is different.

Read

Knowledge coupling

When we hear "coupling" in the software industry, we often think of it as something negative. However, some level of coupling is necessary for things to function after all. The issue lies in the extent of this coupling. Coupling can...

Read

The Typecast Pattern: Harnessing State Transitions

Whether you’re dealing with network connections, user sessions, or any state-dependent operations, ensuring that transitions are valid and safe is crucial. The complexity arises because states often dictate what actions can be performed, and performing an invalid action can lead to unpredictable behavior or even system failures...

Read

Design Patterns: Abstract Factory

In the last article I explored how to implement the Singleton pattern in Rust, I will continue with another creational design pattern, the Abstract Factory pattern

Read

Box<dyn ...> enables the Bridge Pattern

Continouing the series about design patterns today I wanted to explore the `Bridge` pattern. Reading the GOF book it states "Decouple an abstraction from its implementation so that the two can vary indepedently"...

Read

Mastering stakeholder dynamics

Stakeholder management is one of the keys to project success, making and maintaining good working relationships with customers, stakeholders, and team members. This blog post will focus on effective stakeholder management with real tools, strategies, and solutions that anyone can implement...

Read