Over the years I’ve written or maintained a number of frameworks for a variety of projects. From this I have come to the following conclusions:

  • Unless no third party framework exists to cover your scenario you are in almost all scenarios better off using an existing framework than writing your own
  • When building an application the most effective framework code is that used to apply existing third party frameworks to the application. This will often consist of code to make multiple frameworks play nicely together.
  • Building a reusable framework is difficult. Build the system to meet the needs of your own application and consider making it more generically applicable only as necessary.
  • Concepts and design patterns are of much greater utility than framework code.

Organisations will sometimes build their own frameworks (something I’ve been guilty of in the past). It is my contention that an organisation will get more benefit from internal knowledge transfer and training on existing frameworks than will generally be returned from a similar effort to construct them. This may not hold for bleeding edge practitioners where existing frameworks may be incomplete, buggy or non-existent. However when a practice or technology becomes more mainstream an organisation should consider whether their own custom systems continue to deliver value in excess of that provided by now (hopefully more common, stable and feature rich) third party options.