There was a huge communication and technical divide between those who 'got' the technology (the geeks) and those who could see the huge potential and wanted to leverage it for their business. They just weren't sure how to.
Clients often placed considerable trust in technical consultants to meet business requirements by building tech solutions. The client was often not in the driving seat and was at the mercy of the aforementioned 'geeks'.
Meanwhile, those 'geeks' often didn't fully appreciate the business aims underpinning the solutions they were building.
Large software vendors often implemented aggressive sales strategies whilst their solutions didn't match what the client needed. Or they simply didn't offer good value for money.
At the other end of the scale, freelance developers couldn't provide the long-term, after-care support their clients really needed. The very nature of their business model meant they were always moving on to the next contract.
Over time, demand for feature-rich websites and software solutions grew. However, there didn't appear to be a decent middle-ground offering between the expensive gold-plated solutions provided by the large companies, and the pragmatic get-things-done approach of freelance developers.
Timing was perfect for a new way.