What I don't like the Patterns & Practices efforts

time to read 4 min | 601 words

The P&P groups has a lot of stuff that they release to the world, often with a lot of fanfare and people talking about that. I have reached the point that I no longer care about what the P&P guys are doing. Just having them release something, practically guaratees that this is not something that I would like to use.

This has nothing to do with OSS vs. MS or something stupid like that. This has to do with the following reasons:

  • The P&P team doesn't work with their tools on real applications. Basically, these tools are created in vacum, not by having to solve real world problems. And going to a customer and asking about problems and then trying to give something that may solve that is not what I mean. I mean about having to work with a system day in and day out, and having the biggest incentive to smooth all the wrinkles.
  • The stuff that they release almost always build on the naked CLR, it tries to build on top of that something to ease the pains of people who are working with that. The problem is that if you are doing that, you may be making great strides in making a developer life easier, but you are taking them in the completely wrong direction.
  • Marketing. This is related to the next point, a lot of people are pushing this stuff, almost blindly. And Microsoft can dedicate a lot of resources to spread this around (evangelists, posts, articles, etc).
  • Quality vs. brand name. This is a touchy subject, and I would really like to make it clear that I am not saying that the P&P is producing bad code. What I do want to say is that the P&P code does not goes through the same level of scrutiny that real products from Microsoft goes through. In other words, the CLR, for instance, has gone a thorough testing and design effort. The DAAB, on the other hand, has a much lower testing & design effort in comparision. The problem is that people are seeing Microsoft DAAB, and they automatically assume that this has the same quality.
    I can push a code base fairly hard, and the CLR is pretty good about what I can do with it. When I tried to do the same to the P&P stuff, it literally fell apart.

When looking at the stuff that the P&P produce, I see things that are extremely complex to their purpose, hard to use and maintain, and don't really add any value to me from where I stand today. I am not speaking blindly here, it took me 40 minutes to repreduce the policy injection block.

Even if some of the stuff that they are producing has good stuff in it, it is usually in a form too abstract to be readily used. The CAB is a good example, I like some of the ideas there, but it comes with so much weight around it that it is not worth bothering. I can build on the same ideas in half a day and end up with a far more light wieght approach, easily testable and easier to explain to the next developer.