XP and Frameworks
At the XP2000 conference I had a talk about eXtreme Programming and frameworks. Some people archive things for a really long time. One of them reread my article and asked me a few days ago if I did further research on it. I didn’t really do research but I collected some experiences which lead me to some simple conclusions (which didn’t changed too between 2000 and now):
- Use before reuse. First you have to use some code successfully and than you can think about generalizing it for reuse. That means that you have to invest effort to refactor application code to framework code. A lot of teams try to avoid this “rework” but in most cases the effect is that the framework becomes bloated and hard to use.
- Running application: You always have to have a running application on top of your framework that proves that the framework is useful. This application may be a demo application but that would restrict the “prove”. A real application is much better.
- Supporting framework team: This is the really hard one. When your framework grows larger and supports more than one application team you normally need an own framework team. That is easy part, here is the hard part: The framework team has to have a perspective that the application teams are their customers and that they have to listen to the application teams and support them. Most frameworks teams I met had another attitude. They thought that they understand much better how to implement applications than the application developers know and that the application developers are dumb and foolish to a certain degree. That results in the attempt to prescribe how to develop with the framework. And that doesn’t work, especially not if you try to support agile teams that should be self organized and empowered.