How To Measure Developer Productivity

Three primary methods for measuring team productivity are the SPACE framework, DORA metrics, and Goals/Signals/Metrics (GSM).

The SPACE Framework for Team Productivity

In a recent research paper by Nicole Forsgren and her colleagues, “The SPACE of Developer Productivity" (2021.), the authors defined a framework as a systematic approach to measuring, understanding, and optimizing engineering productivity. It encourages leaders to take a comprehensive approach to productivity, communicating measurements with one another and connecting them to team objectives. The five aspects are used to categorize engineering productivity, called the Space Framework.

Introduction to Interface-Driven Development (IDD)

During my work on different projects and using different languages, frameworks, styles, and idioms, I found out that there are no silver bullets on how to design software. Starting from a set of requirements we need to implement, we have preferences that we should first write code and then test; on the other side, we have the TDD approach emerging for years now, as well as some other approaches (design-first, etc.). Here I want to explain one approach that I find to work very well when designing and implementing software, especially if it is a component or library.

The main question here is how you start designing your code. Do you start with some kind of drawing, write tests first (TDD), or start imidate with an implementation?

Enabling High-Quality Code in .NET

Introduction to Code Quality

When we talk about code quality, we can think of different aspects of it. We mainly refer to the attributes and characteristics of code. While there is no widely adopted definition of high-quality code, we know some of the characteristics of good code:

  • It is clean.
  • Absence of code smells
  • Consistent
  • Functional: it does what we say it does.
  • Easy to understand
  • Efficient
  • Testable
  • Easy to maintain
  • Well documented

There are probably additional characteristics of good code, but these are the core of the high-quality code.

C# String Format Examples

Formatting strings in C# is not an easy task, as we usually forget format specifiers. In this text, we will note some of the important flags you can use.

If we take a look at the official C# String.Format documentation we can find all relevant information, but it's hard to navigate and find quickly what we need.

Some Clean Code Best Practices

Being a developer these days involves sometimes developing features and fixing bugs at a fast pace, resulting in code that is difficult to maintain in the long-term. In other cases, we want to make the most elegant solutions possible to solve some problems. This can produce code that machines can understand, but people have more difficulty understanding. Such code can become a major issue for a company to maintain and use in the long run.

Our objective should be to write maintainable, understandable, simple, and readable code, and we need to make an extra effort for this to happen. It should be easy for our colleagues to change and understand the code we create, but this is not easy to achieve, especially in large projects. So we need to practice writing tidy code and fail, fix it, and repeat until we achieve clean code. We can do this by re-writing code as we go, rather than waiting for big refactorings. Another good approach is that we try to type out all our code, rather than copying and amending it, as we often do, as the former results in a better understanding of what we are doing, which helps us produce better and cleaner code.

The Greatest Software Development Books of All Time

There is a question that is often asked: should I read books to become a better developer? Usually, the question is yes, however when asking which books? you will get different answers from different people, as there are so many topics in the software engineering area. During the years I developed a routine to read a lot of books, so taking into account my own experience, the experience of many peers I spoke with, as well as other sources that compiled similar lists [1][2][3][4][5] (some of them using analytics to calculate the score), I compiled a list of the greatest books that every software developer should read in one point in a career.

Just to take a short note that just reading these books will not make you a great developer, for that you will need years of doing development, but you will get insights into some guiding principles that you could apply. In addition, by reading them, you will avoid making some common mistakes in development.

A Brief Walk Through the .NET Ecosystem

If you are working as a developer and want to switch to the .NET world, you will need to know what are possibilities for you inside. As .NET Framework is the most popular technology from .NET Ecosystem you can use it to build different kinds of applications, but these days, there are some new things, like .NET Core and .NET Standard library. Is this something we can use in a project or build?

There is some confusion when trying to use specific tech stack in the .NET ecosystem, as there are so many options, such as which type of runtime should you use? In this text we will try to make all of these points clear.

What Every C#/.Net Developer Needs to Know in 2019

Play like a pro in no time

During many years in the software development industry and gaining more and more knowledge in Microsoft-related world, I figured out that many people have different knowledge depending on projects and teams they have been working on. Some of that knowledge overlaps, but most does not. But, there are some subjects that every C#/.NET developer must know, and there are some subjects that are good to know.

Here, I will not go into too much detail on each topic, as there are a lot of references already available, but I will try to cover what is necessary and provide additional references to it. It could look overwhelming, but as in any topic, you don’t need to know everything — start with the musts and continue to build your knowledge on top of it.