This was the title of my biggest report I had to write for University. It was originally just about frameworks. The main purpose was to research into whether you should build your own framework, or use one of the current open source ones.
Instead, that report ended up becoming mainly focused on design and architectural patterns, with the main focus on Model, VIew, Controller (MVC). This change in direction helped massively as it opened my eyes to a whole new way of approaching website development. It also showed that all the good frameworks are built on many of these patterns.
The report got really good marks, so I must have done something right. The overall conclusion was that it is purely down to the individuals capabilities and what the purpose of the framework is for. If the individual has the skills to build one, then fine they can. But then they need to check if what they are trying to do has already been done. There's no point in reinventing the wheel!
I might soon publish that report on here, but not just yet! Think I need a bit more credit as a developer before I can start publishing reports!