Why this blog?

“How do you create software that is maintainable and understandable?”

This question was asked me years ago, when I studied Computer Science. I had already written some software, and I realized that I ran in precisely the problems that the question implied: if you just keep extending, your code becomes an unmaintainable mess. I could never let go of that question. In the years to come, it kept me searching for ways to create maintainable and understandable code.

But I also learned that there is always a business constraint: only delivered software is of any value. And business people need to know when they can expect the new software. To many people, this is contradictory: either you deliver fast, or you deliver quality. I believe that it is possible to deliver software early with high quality. This led me to search for ways to deliver software early, while the code still being extendible and understandable.

I observed, failed and improved. I learned lots of valuable lessons in the meantime. This blog is meant to share those lessons with you. If you want to know how to deliver software that is maintainable, understandable and delivered in time, then this blog is for you.