Multiball Pinball

Have you ever played pinball? If yes, you may have run into the situation where you have to deal with two or even three balls on the field at the same time. Your attention constantly moves from a ball to another and this can work for few minutes but… (read more)

The 3 Best Things That Happened To Me As A Programmer

I started to develop professional software more than twenty years ago, during the summertime vacations. I used to work in this small software house where there were really experienced programmers. My only concern at the time was to be productive. So,… (read more)

What To Log

Ideally a log file should contain the exact amount of information you need to understand whether the system/application is running correctly or to find the causes of a bad functioning. Unfortunately, often we end up with less data than we need. There… (read more)

Quick & Dirty Solutions Can Blow Up In Your Face

Few years ago, I have been asked to create a component to manage a collection of items for an embedded system. The specifications were well written (actually the best I've ever received) and the first release was ready in few months. During the devel… (read more)

How I Estimate

How long will it take to develop a particular project? This is a question that it's never easy to answer. When you start estimating, you have a partial idea of what you have to do and the issues you may find along the way. When it comes to me, I usua… (read more)

Proprietary Communication Protocols

It seems that it is an irresistible attraction for private companies to create their own proprietary protocol. During my working life, I've seen that the most common pattern is "take a well-known protocol and change something". Sometimes new types of… (read more)

Tell Me Why, Not How

In one of his last posts, Seth Godin wrote about implicit anchors that force us to follow specific paths. This might be OK in many cases but... Great editors, great strategy consultants, great friends--they're generous enough and bold enough to una… (read more)