For the last twenty years, I've been working in an industry that sells websites to clients. I've come to realise that this model is badly broken.
A website is not a product. Buying or selling a website is a false concept. A much better approach is to provide a service, and invest in a relationship.
Time vs Service
A freelance developer will charge by the day, and can often be hired at quite reasonable rates. There’s nothing wrong with this; yet when a client chooses to go down the freelance route, it will often end up in frustration when that freelancer is no longer available.
This is the freelancer model, though. A freelance charges a fee to complete a project, and then he/she moves on to the next job. They have no commitment, and often no incentive or interest, in building a relationship or providing a "service".
Working with a digital agency, however, allows clients to continue with an ongoing relationship. After all, they are not buying a ‘product’ because a website is never really finished. Websites need to evolve, and to be looked after, and it's amazing how quickly a website can start to deteriorate if not.
Initial development and evolution
For large web development projects, the ideal solution is to take an Agile approach; to break the overall project into smaller, manageable increments, and to charge separately for each one.
Agile has its flaws, but I do feel that it succesfully reinforces the idea that building a website is an ongoing process.
While working in separate, billable "sprints" during initial development might not be feasible for most clients, almost all websites would benefit from ongoing "sprints" post-launch.
Once a website has gone live, it's also useful to immediately look at what can be improved, and what else the website could do. All websites should continually evolve, and shouldn't be seen as standalone pieces of work that can be left to run themselves.
This means that someone needs to be on-hand to manage this process of evolution. The most important part of a digital project therefore isn't the end product; it's the ongoing relationship with the development team.
The challenge of working to a fixed cost
Giving a fixed cost for a large project isn't always possible, without spending a few weeks scoping the exact requirements.
This leads to a chicken-and-egg situation, where the client is unable commit to a project without knowing what the final cost will be – but it's difficult to provide a final cost without a two-week scoping phase.
An alternate approach is to work to a set budget; that is, to provide a specification for the best possible solution for the budget available. A client will often know how much budget they’ve been awarded for a project; they may, however, be less keen to divulge that information.
Instead, what usually happens is that agencies adopt a fixed cost approach. A fixed cost can only work in harmony with a fixed scope, though, and this has to be honoured by both parties.
The importance of an ongoing relationship
This relationship can take varying forms, depending on how much support the client wants, needs, and what budget is available.
At the very least, all websites should have a basic maintenance contract in place, which will kick in after the initial web development goes live.
The internet is a living, moving entity and things change all the time. For instance, a new release of Internet Explorer might not display a page correctly, or a new version of iOS might break a contact form.
Third-party integrations can also change over time; Twitter famously updated its API a few years ago, breaking a large number of websites which still used an older API.
These aren't "bugs", and shouldn't been seen as such. You wouldn't ask an electrician to rewire your house, and then ask them back a year later to fit some plug sockets into your new extension, for free.
For larger-scale websites, a more comprehensive retainer is usually necessary. They require more maintenance than simple copy amends or image replacements. For instance, it is very easy for a large website to quite quickly become overwhelmed with content, and as time goes on, the "user journey" and general flow of the site becomes disjointed and difficult to navigate.
This all needs monitoring and looking after, and a comprehensive support contract will ensure this level of proactivity and hands-on management.
Regardless of the size of the contract, the key is to ensure that the relationship is formalised and respected on all sides.
So, a website is not a product
I know of an agency who reinforces this ethos by literally handing over a physical CD, containing all the website files and data. Thus making it quite clear that in the absence of a support contract, the client owns the site, and is responsible for it.
It's very rare that we'd commit to a project without an ongoing contract in place. Some of our clients have only nominal support, because that's all they need. Other clients pay for much more hands-on support; we spend a great deal of time monitoring their websites, suggesting improvements, updating components and so on.
Whatever the level, this ongoing relationship is crucial to the ongoing success of any website.