dimanche 25 octobre 2009

Meta-development

Most developers seems to agree : Laziness is a talent.
The interesting part with this talent is that, when we have boring things to do, we can create a tool which does the boring work for us... And that's interesting! It's what make a boring development funny.

And yet, it seems that there is potential to exploit here in all of us. Not so many developers creates tools for themselves, I'll call this activity Meta-Development, because it's development about development.

In the The mythical man month, Fred Brooks exposes an idea of team organisation it's called "The Surgical Team", without entering in details the "Surgical Team" splits differents role for each member. One of the role I want to talk about is the "Toolsmith", as you might expect, it's the developer who creates tools for other developers, what I call Meta-developer.

Are you a meta-developer ? An easy way to find out, is to ask yourself this question : "Do I eat my own dog food ?". If you don't, most probably you can improve yourself by creating tools for your specific needs (and not the needs of your client).

Too many times, developers seem to be in a hurry : "I don't have time to do that", when I hear that it translates to "I've never done it, so it will take me too much time". And guess what ? It's the same lame pretext that inexperienced programers say to justify their ignorance. If you can't hack a tool for yourself, how are you able to create one for your customers?

There is never time to do well, but always time to restart from scratch.

Indeed, it takes time to create tools for ourselves, but the more we'll do that, the less time it will take.

Well, it seems that a lots of articles on CodeProject are about meta-development (cool tips and tricks for developers only)... but I wonder, how many of article's author eat their own dog food ? Personally, I haven't yet and it's a shame!

My next article Genuilder, (Mix of 'Generator' and 'Builder'), will probably be the first project I'll make on CodeProject that I will use on a daily basis (along with my personnal framework I create with tips and tricks taken all over the net).

If I'm able to eat my own dog food, there is a good probability that others will like it too !

samedi 17 octobre 2009

AppConfigVerifier on Codeproject and Codeplex !

Image Copyright All Rights Reserved by Flickr member dr_odio.


AppConfigVerifier is out ! How to use an MSBuild custom task to provide compile time verification of string type names in app.config files.
It's on CodeProject and CodePlex. This project was an idea from Daniel and me just before Left 4 Dead time. Thank you ! :)

It seems some people will like it, but most will be too lazy to import the config verifier in their project file.

So, I am creating a new project called Power Builder, it will be a target file to include inside a project file to have at the same time the AppConfigVerifier, the AppSettingsGenerator, the metadata Generator, and a AppConfig class generator to get sections of the AppConfig in a strongly typed way. I hope people will like it ! :)

lundi 5 octobre 2009

Code generation and MSBuild


Well I'm having a had time to code a good metric tree algorithm, so I thought that writing an article on MSBuild will clear my mind on that!
Strongly typed AppSettings on Codeproject! :)