Monthly Archives: January 2006

Why Developer Certification Doesn’t Make Sense

Much as been said about the pros and cons of requiring software engineers to be certified, just like the medical, law, and engineering fields.

I personally do not believe this should happen. First of all, those other, certified, fields have existed for thousands of years. Computer Science is not even a century old. The field is incredibly immature. Sure, we have fancier tools, and we can do some amazing things, but we’re still in infancy!

Look at the best software makers you can think of. I won’t name names. Think of the highest quality applications you have ever used. Now think of all the problems and bugs and limitations of that software. If that’s the best we can do, what meaning does certification have?

All the other certified fields have well-established standards that have withstood the tests of time. Computer Science hasn’t had the time. We can’t even agree on the best way to make software!

So go ahead and enforce certification now, but it’s not going to mean anything.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Golden Days

Yesterday was a golden day. Everything I touched turned to gold. I solved all the problems that came up, fixed bugs right and left, and even figured out the root cause of a bug that’s been plaguing us for a month or so.

Some days are like that. I like days like this, because I feel like I’m on top of the world and that on the one hand, I’m not getting paid enough, but on the other it’s so fun I’d do it for free! (if any of my bosses are reading this, concentrate on the first part of that! 😉

Today was merely a silver day. Thankfully, nothing went wrong, and I did quite a bit of good stuff. Not quite golden. Maybe I should have a calendar and put gold and silver stars on the days. That’s probably a bit much. But I could have rust-covered frown-faces for those unspeakable days.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

Infinite Enjoyment with Finite Resources

Have you ever thought about the miracle of music? OK, some might object to the world miracle, but I’m talking about music, something where transcendental terminology is appropriate.

On a piano you have 88 keys. Instruments can go higher (violin) or lower (organ), but with the same repeated 12-note octave everything in western music is created.

Thing about that. 12 notes, repeated over and over, at higher and lower frequencies. It’s such a small working set! How many melodies can you create in one octave?

More importantly, how many beautiful melodies can you create? Thousands of composers over thousands of years have proven that there is no limit to the originality possible with these limited tools. Of course, there are accompanying tools: instruments, rhythm, and personal style. But always with the same 12 notes.

And an infinity of beauty is possible because of it. Granted, our notions of what art is beautiful change over time, but who denies the beauty of War and Peace, Les Misérables, The Last Supper, Intermezzo from Cavelleria Rusticana, Jesu, Joy of Man’s Desiring, Pachelbel’s Canon in D, or anything by Rembrandt? Beauty grows, never shrinks.

Now imagine if there were infinite numbers of keys–how would that change things? What if we doubled the resolution of the notion of half-step (F toF#, for example) to a quarter step?* 8th step? 16th step? I don’t think this will inspire more creativity (at least not creativity that produces beautiful works of art). Too many options will spoil the landscape–clutter it up so much that not only can we not understand music produced like this, but creating it becomes onerous–there are way too many possibilities. The mathematical framework of music forces us to contain our creativity within bounds of structure that “make sense” to our minds, that allow us to understand, dissect, and enjoy.

The modern notion that lack of constraints promotes creativity is a false one. No constraints means less thought and feeling has to be put into work.

I hand you a canvas and tell you to paint your best work ever. What will you do?

You might ask–“What is the subject of the painting?” I respond–“Anything.”

You can’t work like that. Of course, you might come up with a theme yourself, but now you’re constraining yourself along a certain path.

Another example: in the 20’s Hollywood had no movie-making constraints. There were no censors. Do you remember many movies from the 20’s? In the 30’s, constraints were imposed by the government, forcing Hollywood to clean up its act. How many movies are memorable from the 30’s onward? A lot, even to my young mind. I think a case could be made that dissapearing constraints now is creating the same dull period in Hollywood that existed back in the 20’s. Sure, you can make anything you want, but who is actually going to care deeply about it?

Software development thrives under these conditions. Software developed with no or few constraints quickly looks like garbage and is much less useful. Impose coding constraints, design constraints, interface constraints–all these RULES you have to obey–and your code will become artful. Look in all the books on the subject of turning average programming into craftsmen, artists, what-you-will–the books mostly teach you RULES to follow, lines to stay within.

Coloring outside the lines is fun every so often, but you rarely frame it and call it art.

* Of course, continuous instruments such as strings can do this, but it’s not standard musical technique.


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order:

First billion dollar movie

With today’s large blockbuster movies (LOTR, King Kong, Spiderman, Chronicles of Narnia, Titanic) costing hundreds of millions of dollars to make, I wonder what will be the first movie to cost $1 billion to produce.

How will they recoupe the cost? When will it happen?


Check out my latest book, the essential, in-depth guide to performance for all .NET developers:

Writing High-Performance.NET Code, 2nd Edition by Ben Watson. Available for pre-order: