Update: Are you looking for my old article about version control? It can be found here: Version Control: Why pessimistic locking of source code is a very bad idea

In the last weeks I have been thinking a lot about framework design. I will give a talk called “Framework Design Principles” at Mathema Campus. While preparing the slides I found out that when thinking about framework design, I care a lot about 5 topics:

Update: Because some feedback I’ve got after my talk in Erlangen I wanted to add: Most of the principles shown in this mini series (and the talk) are a good idea for most software projects, not only for frameworks and libraries. Anyway, everything here was created with a focus on frameworks, and all the examples are from existing frameworks or libraries.

Also, I will not give specific advice like “In this situation, use a factory. In that situation use a generic super class”. This series is about general principles, but I will also give concrete examples for good and bad implementations of these principles.

Here are the slides I used for the talk. But beware: Most of them are German. [/Update]

I decided to start a mini series about this topic, so I will turn the list items above into links as soon as I write the corresponding articles. This mini series will cover the topics of my talk, but with a little bit more detail here and there. Stay tuned ;)