Monday, October 16, 2006

Dropdown Engineering

Tags: , ,

In my work I do a lot of development within products or frameworks. The best example is BizTalk but others are K2.net or BIE (Bryante Integration Server). Creating business solutions within these frameworks requires a different approach to software development. How is it different? Well...

The first thing you need to do as a developer is embrace the features. Only by doing this do you fully leverage the power of the framework Why even use the product if you intend to hand roll everything? I often see new BizTalk developers concocting long and involved code in Orchestration Expression Shapes (think: code snippets). Naturally, they are complaining the whole time about how the shape dialog doesn't have intellisense or other useful coding features. I try to gently remind them that they are missing the point; expression shapes shouldn't really need more than a few lines of code. Anything more and you are likely doing something that could be done better in another way. (If the built-in features of BTS don't do what you want then at least write a helper class to encapsulate your valuable business logic). The point is that the framework gives you the flexibility to write your own code but that doesn't mean you should (or need to).

The second thing you need comes from experience with the framework (usually after 2-3 projects) and that is to know the pitfalls. Every framework has strengths and weaknesses. Part of what makes a superior Dropdown Engineer is understanding this and knowing where to invest work to shore up the weaknesses. This may be one of the single biggest advantages of using experienced engineers.

I sometimes lament the loss of creative freedom when using product frameworks but I take solace in the fact that they allow me to develop solutions faster, more reliably, and with greater feature-sets than I would be able to do on my own. In essence they (the good ones, anyway) allow me to concentrate on business value without investing heavily in the foundational work. That's a good thing, right?

No comments: