After almost a decade, most Agile transitions are still frustrated. But is Scrum really to blame?

Blue paint smudge
Blue paint smudge
Photo by Paweł Czerwiński on Unsplash.

A little over two years ago, I wrote an article that discussed how the Agile working methodology in general, and Scrum in particular, had changed the way modern companies — especially software companies — work.

The article was essentially a fairly elaborate rant. Back then, I had been working in software engineering teams that really didn’t get much done. There were myriad reasons why these teams didn’t get much work done. Scrum was one of them, but it wasn’t the only reason.

What interests me most about the article is that it still garners responses two years later. …


The next version of C# is around the corner, and it’s laden with exciting new features!

Photo by Rodion Kutsaev on Unsplash

With the upcoming release of .NET 5 — the release which unifies the .NET runtimes — Microsoft recently announced the features that will be included in C# 9. With the final Preview version of C# 9 being announced today, it’s not far off.

In this article, we’ll take a look at the new features in C# 9, and how they can be used to improve your code. We’ll focus on the major features first, and discuss some of the smaller companion features towards the end. …


Working with pointers, breaking type safety, and all sorts of fun in the unmanaged world

Photo by Dean Pugh on Unsplash

Over the past few years, C# has established itself as one of the mainstay languages in modern software development. In Stack Overflow’s 2019 Developer Survey, it ranked as the 7th most popular language among both hobby and professional programmers.

With prominent technologies such as ASP.NET Core and Entity Framework gaining traction in the .NET ecosystem, the language has seen a slight shift towards web and cloud native development. Combined with the continuing stream of improvements to its runtime, C# has firmly established itself as a solid mainstay language to write virtually any application in.

You’d almost forget that only a…


The Architecture that captures events produces a natural audit log and allows for time travel.

Photo by John Baker on Unsplash

Today, we’re taking a look at a software architectural pattern that has been around for a very long time, but for one reason or another, it isn’t implemented very frequently. Event Sourcing did see a surge in popularity when Microservice architectures became popular, but it never really turned out to be the revolutionary new way to build software many claimed at the time.

There are a number of reasons why it didn’t become a main stay in software architecture, and in this article, we’ll go over some of the strong aspects of Event Sourcing, as well as some of its…


Deploy and update your applications in a declarative manner with the option to roll back if things don’t go as planned

Photo by jesse ramirez on Unsplash

Kubernetes is rapidly gaining traction as the de facto standard for running large containerized workloads in production. Kubernetes’ takes a different approach to creating and maintaining application components than what we’re used to. Instead of manually configuring our servers to, for example, handle networking and storage, Kubernetes abstracts them in its concepts.

For instance, if we want to expose an application to the internet, we could do so by creating a service. The service could then hook up to a cloud load balancer, which would direct external traffic to a pod within our cluster.

All of these components are defined…


Kubernetes fixes some very real problems. But are those really the problems you’re facing?

Photo by Chris Leipelt on Unsplash

Over the past few years, Docker has become an immensely popular way of building, shipping, and running applications. Long gone are the days of having to rely on server configuration and other external factors. Just build your application for Docker once — and run it anywhere!

While this is a tremendous leap forward in the way we develop software, it does introduce a handful of new challenges. For starters, networking between Docker containers and hosts is nontrivial. It’s vastly different from the traditional networking methods we’re used to, and it requires a certain degree of skill to get it right.


Create client code in seconds for all popular languages, and save hours of repetitive manual labor.

Photo by Jon Cartagena on Unsplash

Chances are, if you’re developing RESTful APIs, you’ve heard of the OpenAPI specification (formerly known as Swagger) before. The OpenAPI Specification defines a standard interface to describe an API, regardless of the language it was written in. This specification can then be used to automatically create documentation based on conventions, or to automatically generate clients for your services.

Modern application landscapes often comprise of many independent services. Each of these services have one or more responsibilities, and have an interface to expose functionality to the outside world. In the case of RESTful services, this functionality is exposed over HTTP. …


How to set yourself apart from other developers and become a joy to work with

Photo by NESA by Makers on Unsplash

Software Developers come in all shapes and sizes. Some have a lot of experience, while others make up for their lack of experience in creativity or sheer perseverance. While the dated and over-used “Rockstar Developer” may not exist, it’s evident that not all developers are created equal.

What exactly constitutes a “great” developer is extremely elusive. It’s not just one thing — it’s a combination of factors, and they may even differ depending on the team or organisation they’re working for. …


Let’s get rid of terrible stand-up meetings, estimation hell and providing user value and build great products instead.

Photo by Randy Fath on Unsplash

Whenever you browse vacancies for software engineers, there’s almost always one universal skill a potential candidate should master. That skill is “Scrum”. Regardless of whether Scrum is actually a skill in the same way carpenting or writing code is, I’ve always found it interesting that the vast majority of companies have made Scrum their de-facto way of working.

The benefits of working agile — which almost always means some implementation of Scrum — are obvious from a managerial perspective. …


How to use solid metrics to know how your app performs in the wild

Photo by Chris Liverani on Unsplash

When it comes to running production software, you’ll hardly ever find yourself in a situation where you know too much about how your application is performing. More often than not, the opposite is true, and we don’t nearly have enough information available about our application’s performance in the wild.

Fortunately, there are a variety of free, open source tools available that provide time series databases and allow us to accrue and store all sorts of metrics. While individual metrics at an instant in time may not mean much on their own, having access to metrics over an extended period of…

Martin Cerruti

Software Engineer writing about his daily software adventures, wherever they may lead.

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