September 18, 2005

KM and (Software) Framework Design Permalink

The Pit of Success: in stark contrast to a summit, a peak, or a journey across a desert to find victory through many trials and surprises, we want our customers to simply fall into winning practices by using our platform and frameworks. To the extent that we make it easy to get into trouble, we fail. (Rico Mariani)
I spent a lot of time in the last few years designing and developing software frameworks (mainly for text mining, text classification and statistical natural language processing). I just read a presentation from PDC 2005 (the main annual Microsoft event for developers), "The Art of Building a Reusable Class Library" by Brad Abrams and Krzysztof Cwalina (it is a set of PowerPoint slides, but you can view it with OpenOffice if you are not a MS Office user), which details a set of principles and best practices for developing reusable frameworks, that I found very true from the standpoint of my personal experience.

The framework designer holds a huge responsibility, since if a part of the framework (such an abstraction, or even a simple name) is not naturally understandable, the users, no matter how experienced, will keep failing at using it correctly. Following this premise, the authors provide a set of recommendations, which seems more related to knowledge management (and "cognitive") solutions, rather that practices strinctly related to software developement:
  • exploit sameness and consistency
  • prefer scenario-driven design
  • communicate via leaving artifacts, rather than through documentation
  • follow a common vocabulary

0 Comments:

Post a Comment

<< Home