In November 2020 AWS had a major outage, which started with their Kinesis service, having a cascading failure over some services. Several articles and analyses of the outage, including the official note from AWS. This blog post reflects the outage, but rather focus on the technical aspects, I will deep dive into the social ones, namely mental models.

Pre-reflection, what is a mental model?

I will borrow two definitions for the mental models; the first one from Kenneth Craik:

If the organism carries a “small-scale model” of external reality and of its own possible actions within its head, it is able to try out various alternatives…

I’m grateful to learn from my daughter. Be able to see how the brain develops and picks up new concepts, skills and words. Nowadays, I enjoy to sit down and watch her play. As a parent, I also need to help her to achieve her autonomy: emotionally, mentally and physically. It is the job, and my wife and I are navigating through it. There is not a guide on how to parent, and we discuss what is working and what is not working. Sometimes is just not the time for a new skill, other times our daughter doesn’t develop an…

Context Map was the first visualisation for the Bounded Context pattern from Domain-Driven Design. In a nutshell, it is a map of the different Bounded Contexts and their relationships. I tend to create a Context Map during or after a Big Picture EventStorming. Changing perspectives can be helpful, to challenge assumptions and get the best of different techniques.

However, sometimes it is hard to reach a consensus on the Context Map. I often operate in brownfield projects, with large organisations. Although people agree with the different bounded contexts, it is a process that takes time, and most significant energy. Which…

Chaos Engineering is a practice that has its roots at Netflix. It born from the challenges of moving their workloads from the data centre to the cloud; the transient nature of the cloud affected the way that they build and operate a system at scale. The initial project was called Chaos Monkey, and it has almost 10 years.

Since then the community grew, fueled by Netflix practitioners. Today there are commercial and open-source tools, and we can see more initiatives in different communities. The technical practices had matured, and the knowledge started to spread in the IT world.

However, it…

Team Topologies is the work of Matthew Skelton and Manuel Pais, and I use it as part of my job. From a sociotechnical perspective, a team-first approach is paramount for any organisation and helps to decrease the accidental complexity. As such, I’m often asked “How can we operate in DevOps?” or “How can I have a reliable service to deliver value to my customer?”.


Combining Team Topologies from the DevOps movement, with Context Mapping from the Domain-Driven Design community, can give insights about the potential friction contact points between software engineering teams. …

One of my interests is in socio-technical systems. However, when I discuss it, namely with IT folks, the word “system” implies that it is an IT system. Well, I believe that it is more than that, and I will try to convey my ideas in this blog post.

Define socio-technical system

The definition was coined by Eric Trist, Ken Bamforth and Fred Emery during the II World War. They study the coal mine workers during that period and the relationship of people (and by their extent the society) and the technical aspects within an organisation. There is a pleasing Wikipedia article about it.

EventStorming is a visual collaboration technique, invented by Alberto Brandolini. This post will not go into the details of EventStorming, and you can find useful resources on the web. Instead, I will share learning from the many sessions that I facilitated!

One of the forms of EventStorming is Big Picture. It aims to convey the knowledge across different silos, capturing what’s in people’s minds. During a Big Picture session, it is normal to see Bounded Contexts emerging. Wait, what is a Bounded Context?

Bounded Context is a strategic design pattern described by Eric Evans on his seminal book “ Domain-Driven…

The most important learning during my career is that the act of creating software is a team effort. We can be a one-person team, but there is someone else involved; at least someone to use it.

As time goes by, I started to focus more on the collaboration between team members (and also teams, but it’s beside the point). The most effective collaboration techniques that I experienced are visual collaboration techniques. Amongst them, you can find EventStorming, Specification by Example, Impact Mapping or Example Mapping (I could be here all day).

I observed and facilitated in different settings; most of…

Did the title tease you? Great, job is done! Today I will tell you my story about Integration Tests; it came after another knowledge share lunch with my pal Kenny.

By this definition an Integration Test is

(…) the phase insoftware testingin which individual software modules are combined and tested as a group. Integration testing is conducted to evaluate the complianceof a system or component with specified functional requirements. It occurs afterunit testing and before validation testing. …

There are 2 systems in any company that are critical: the payroll system, and the CI/CD system. Why? You may ask…
If the payroll system doesn’t work, people will leave the company and the company (may) face legal problems; the CI/CD system is the gateway to production. If it is down and there is a bug in production, it will affect your business; loss of revenue, loss of customers, loss of money, just to name a few.

Usually, I find these problems regarding the CI/CD tooling:

  • Poor Software Lifecycle Management, with outdated software, containing critical vulnerabilities
  • Ancient capabilities in the…

João Rosa

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store