Building a Website - Part 1
25 September 2011
In this multi-part series we explore the process of building a house and highlight the many similarities with building a website.
That's nothing new, we hear you saying.
True, but in this series we take you step by step through the design and implementation, drawing parallels between the physical and electronic worlds along the way.
Even if you have encountered this analogy before, you may be surprised at how closely these processes approximate one another.
One has to embark on the journey of designing the house before the building process can begin.
The design goes through many iterations and ultimately results in a formal set of plans.
Along the way thought is given to various factors that influence the end result.
The cost of the house, its size and features, and the time allocated to the project must all be considered.
The time allocation is particularly important as it affects the other aspects, such as the cost and features of the house.
Consideration is also given to the finishes and trimmings, although the finalisation of these aspects can be left until later in the project.
It should be no surprise that designing a website should involve the same considerations.
Even in highly agile development environments these factors should be considered early in the project.
No business owner would commit to a software development project without some indication of the likely cost and duration of the project, in the same way that no home owner would commit to a building project without an estimate from the builder about the cost and duration of the project.
When building a house, it would be foolish to start working on the finishes, trimmings and decorating tasks before the foundation and structure are ready.
It would be ludicrous for a builder to start plastering individual bricks before the wall is ready.
Why then, in the software world, do we find developers working on things in a back-to-front order?
Why do we find developers vigorously pursuing the building and decorating tasks before the foundation is ready?
These gung-ho approaches invariably result in a lot of work being redone.
We often find — particularly amongst the young and inexperienced members within the agile camp — that there is a belief that planning must be kept to a minimum to keep the project flexible.
We must stress that even in very agile projects, a certain amount of planning and laying of foundations is essential for the project's long-term success.
IT people are notoriously averse to committing to deadlines and this has been the source of a great deal of conflict between business owners and developers.
Business owners live in a world where features can be added ad infinitum, but the project must be completed within a finite amount of time.
IT people live in a world where the development timeline can extend into infinity, but features are not allowed to be added or changed.
Somewhere, these two groups must meet in a reality where a solution is needed while it can still be of benefit to the business - all at minimum cost, of course, and at break-neck speed.
The solution may develop iteratively, adding small chunks of functionality one bit at a time.
Or it may be tackled in one big block.
Or it may progress using a methodology somewhere in between.
Whatever approach is used, there needs to be some planning and up-front design work, preparing the foundation on which the rest of the project will rest.
After the design and planning stages, our attention must move on to the foundation of the project.
Back to top
Add a Comment
Be the first to comment on this article.