Framework Design Guidelines: Design Methodologies

Continuing in the series of discussing topics from the Framework Design Guidelines


Expert from 2.2 Fundamental Principles of Framework Design


DO NOT rely solely on standard design methodologies when designing

the public APIs layer of a framework.


CHRIS ANDERSON Each developer has his or her own methodology,

and although there isn’t anything fundamentally wrong with using other

modeling approaches, the problem generally is the output. Starting by writing

the code you want a developer to write is almost always the best

approach—think of it as a form of test-driven development. You write the

perfect code, then work backwards to figure out the object model that you

would want.


I love this one from Captain Anderson… What methodologies do you find work particularly well for API design? And what nightmare stories do you have from people using the wrong tool?  

Comments (4)

  1. Norman Sasono says:

    Hi Brad,

    I got your book copy from the PDC. Good book. Providing guidelines for the programmability of a Framework (Library).

    But, with a Spec like that (in the appendix)? And the way you do BDUF, isn’t that just work for project where you really develop Framework/Library as the product?

    What if we develop apps as the product & we may also evolve our Framework? (Let say in an XP environment) … no guarantee a spec like that is generated.

    Developing Framework is always fun to do for Devs, but we should "do the simplest thing that works".

    I mean, BDUF for Frameworks only works if we build Framework as the product. Not developing apps.

    Any comment?



  2. ericgu says:

    I agree with Chris. In fact, I would assert that every group that produces a library should also produce (and ship) a real application using that library.

  3. BradA says:

    Yes, that is fair Norman… the book is focused on teams that whose’ stated objective is to build a reusable framework… in fact the value of the book goes up the large the number of distribution of those people are. While there is certainly some value for an application developer, the primary focus in explicitly designed frameworks and clearly you should not always use the framework model. You should only build a framework if you are reasonable sure their will be lots of different consumers.

Skip to main content