Saturday 19 September 2009

Automatic dev tools that decrease your productivity

Since the DataSet designer appeared, I do not feel confortable with automatic development tools. They try to make a lot of things while you are working (adding, erasing or modifiying code, files, etc.) and keep a graphical representation synchronized with some kind of struture of code.
It may work in the simplier cases, but when you try to work with them in an enterprise-class application, problems arise everywhere. With the number of artifacts (interfaces, classes, xml config files, etc.), and not necessarily the complexity of the application grows, the automatic dev tools start to fail, doing things you don't desire, like loosing artifacts, getting them de-synchronized, etc.

I'm suffering this with VSeWSS 1.3 WSP View (yes, I know it's a CTP, but I suffered VSeWSS 1.2 before, too): sometimes it deploys ok, sometimes not, sometimes assemblies are not copied to the GAC, modifiying or adding a feature by hand does not reflects on the WSP View, etc. So a tool intended to increase productivity in SharePoint development, introduces long delays (I mean LOOOONG delays) caused by trying to isolate the problem and fixing it.

Someone could say: "By the way, SharePoint development is not an easy work, specially the deployment tasks. It requires to be highly self-organized with your artifacts, and so it is what VSeWSS expects." Ok, I agree with the self-organizing requirement; it is a must when doing the SharePoint's deployment stuff by hand. But I can't agree with the second part. If VSeWSS is an automatic tool, intended to automate SharePoint solutions maintenance and deployment tasks, I believe that have to set the developer free of these task. If it is not capable of handle all possibilities, it doesn't help much.

That's what I expect from a development tool: doing things I usually do "by hand" automatically, in the moment I ask for it. It must be easy to launch and have a non-intrusive behaviour (don't touch or reorganize my stuff!).

In conclussion:
I prefer "myself-driven", simple and rudimetary dev tools that do what I did by hand before, than fully-automatic, code-generating, fully-IDE-integrated, trying-to-keep-synchronized-without-success-diagrams-or-graphical representation-with-code ones. I don't mind if they are command-line tools, or has a lot of arguments. I will spend the time in learning to use it, and use it if it proves to do ok, and with the same results, tasks that I was doing by hand before. I hope in a few time, a good automatic dev tool or designer or whatever proves me wrong.

NAnt rules... Maybe I'm getting old...

No comments:

Post a Comment

Feel free to leave your comments or critics; please as constructive as you can