The aftermath of ‘the three problems’ blog post

In my previous post, I set out three problems that I believe software crafters worldwide should work on in the years to come to fulfill the promise of “raising the bar”. This is a quick update on its aftermath.


The blog post generated 430 views at the time of this writing, which you can see as low or high. I see it as “a few hundred people seem attracted by this idea, although we don’t know how many want to act on it”. We can work with that. The history of innovation shows that we don’t need more than a few people to work on these problems. It’s much more important to find the right group of smart and motivated people who are interested in solving them. The rest will follow.


The blog post generated a few reactions. Here’s a quick list.

Eradicate legacy code

Despite it being the first on the list, and sounding crazy, I was surprised to get a total of one reaction. I don’t know how to interpret that, but I have a few hypotheses:

  • we are so used to working with legacy code that we think it’s normal
  • we can’t imagine a world without legacy code
  • we don’t think it matters if we have legacy code or not

I’m not sure which one is true, so let’s see what my friend Felix Pleșoianu had to say about it:

I have to say that I agree with him. Writing less code is always a good idea. It benefits everyone. Yet we aren’t doing it enough.

I have more things to say about this problem, but they will have to wait for another blog post.

Raise the Standard of Proof

I know from previous discussions that software developers tend to think it’s impossible to include science in software development. One reason was best expressed by the same Felix:

I’ve known Felix for a long time, going back to the Star Trek fan club and to a sci-fi writer’s club. He has imagination, and he has a healthy interest in science. Yet, this is how he perceives academia. And, again, I have to agree with him in most part.

Software development of today resembles a lot with psychology in the 19th century. Psychology has had a very difficult relation with science. Running repeatable, objective experiments seemed impossible when it comes to the human mind. It seemed like the only way of getting to understand it was by asking the subjects, which obviously wasn’t objective.

Things have evolved since. Behavioral psychology, behavioral economics and cognitive sciences have allowed a deeper insight into the once subjective world of the human mind, through truly scientific experiments.

I know that there are scientists looking into running experiments closer to the practice of software development. We know little about their work, and they have little access to the industry, thus running experiments on a handful of students. To get the results we need, we need to help them.

That’s why I was very happy when I saw a new “science” channel was created on the Software Craftsmanship slack team, and that conversations on science intensified.

Educate the Next Generation Of Developers

Hugo Estrada had an interesting contribution to this topic:

It turns out there is a course that touches on our practices and on managing large codebases. Really cool! More things need to happen, but it’s a good start.

What’s Next

I plan a few more blog posts on each problem. But none of these problems can be solved by one person. We need to team up.

The first step is to make your interest public. To make it easier for you to reach out to interested people, I’m proposing the hashtag #nextInSwCraft. Talk to you there!

Three Problems For The Next Era of Software Craftsmanship

In 1900 David Hilbert challenged the best mathematical minds to solve 23 problems. This set of problems has influenced the mathematics of the next century, leading to surprising discoveries. Probably the most shocking discovery was that axiomatic systems have inherent limitations.

Today, a different set of very bright people face a new era. 7 years of Software Craftsmanship has led to changes in the world of software. I can travel almost anywhere in Europe and find a community connected to software craftsmanship. People from the community authored books and articles. We stay in touch all the time thanks to modern technology such as slack, twitter, facebook and meetup. Local communities and companies organize conferences. And a brave member of this community started a newsletter, trying to guide us through the news in the field. We share what we love and we love to share.

Continue reading “Three Problems For The Next Era of Software Craftsmanship”

What I’ve Learned From Publishing My First Book


I had a wish starting from 5th grade: to publish a book. A wish finally fulfilled this year when my first book, “Usable Software Design” became available on leanpub.

But this is not a blog post about the book per se. It’s not even meant to convince you to buy it (although you should). It’s more about convincing you that you have to publish your own book. It’s fun, it helps you discover yourself, and you might make some money from it. Seriously, start today. And if you think that you can’t, or that you have nothing to say, or that it won’t make money, etc. then read on, because I’ve been there too.

Adapt to Your Constraints and Preferences

Creating anything is hard. But it’s not hard where you expect.

Contrary to what most people think, ideas are easy. Ideas are everywhere. Inspiration is everywhere. Ideas pass from mind to mind and adapt to the recipient’s personal experience all the time. More ideas combine into a new idea. Ideas are easy and cheap and don’t account for much. Execution is what makes ideas valuable.

Continue reading “What I’ve Learned From Publishing My First Book”

Future Internet: centralized or distributed?

I saw last evening the documentary “The Internet’s own boy”, about the life of Aaron Swartz. His life was very impressive, and it made me think more about the Internet and to its social value. That is still a work in progress, but I have some things to share.

I’ve struggled to understand the Internet for a very long time. This may sound very strange coming from a computer programmer, leading a team of people who develops web applications. So let me clarify: the technical part of the Internet is relatively easy to understand. There’s a lot of reading to do, and a lot of technicalities, but that’s the easy part.

The question I’ve struggled to answer is:

What is the core of the internet?

Continue reading “Future Internet: centralized or distributed?”

Grow Your Knowledge Processing Skills

The way the human brain works has interested to me ever since high school. It’s a fascinating topic, still linked to many mysteries and whose study will undoubtedly create astounding insights.

What seemed back then simply an intellectual interest has become much more than that. We’re living in the age of information that exposes us to more and more data, news and 140 characters blocks, instantly accessible through the internet. Knowing how the human brain works is important to navigate our world and our time, to make good decisions or at least to avoid common mistakes.

Continue reading “Grow Your Knowledge Processing Skills”