Latest stories

An Attempt At Clarifying The “Software Design” Vocabulary

The teaser “Design” is an overloaded term that causes confusion in software development. It has at least three meanings: design as result (as in “the design of the application is easy to change”), design as process (as in “I designed it using Test driven development”) and design as aesthetics (as in “I love this design”). A clear vocabulary is the...

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...

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...

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... Reflections on design, craft and software

A new home for merging ideas about design

It is my strong belief that software design can learn a lot from other design disciplines. I wrote blog posts, a book and did talks on this topic, and it was time to group them all together. These ideas have now a new home: My plan is to add more blog posts there, and to involve other people doing work in this area.