From an idea to a website A great idea can lead to a great website, but only if its properly developed and deployed. Development doesn't just involve building a site, it involves every stage in the process from having the idea to uploading the finished product. Every stage is important and in theory could be “make or break” for your site/project.
All to often people will have an idea and immediately open their page creation software and throw the site together. Some people are lucky and it works for them, but in the majority of cases the process would have been a lot smoother if they had spent time properly planning not only the site as a whole, but the finer details for each component of the site.
Imagine you are building a site. You need to know the site structure, now the navigation will work, what each page will look like and a lot more. If you take time at the start to actually work this out it means you will be working to a specification, as opposed to making it up as you go along. Having a detailed specification or brief will mean you aren't working blind. Things will be built as planned as opposed to trial and error. This is especial important when doing client work. Having a very detailed specification will remove the flexibility that can lead to disagreements further down the road between what you proposed and what the client thought you proposed.
I am not saying the specification has to be set in stone, as you develop the site you may find that your preplanned method doesn't quite work as planned. You can then go back, alter your plan and take into account the factors you previously overlooked. There are things that you won't foresee until you are in the “thick” of it.
The initial plan You have the “idea”. You now need to work out exactly how it will work. What components will your project need, how will they all work together and what technology will be needed. For example if you are building a site selling widgets you will need a site equipped with a shopping cart. Are you going to build your own e-commerce solution, use one thats available or use a third party service. How will the shopping cart be “slotted” into your site. Will users need to register, what payment methods will be accepted. Will the cart be the site, or part of the site?
There are a lot of things you need to know before you even start. For example if you just went ahead and started building then later decided you don't want to host your own cart you want to use a third party hosted solution this will involve a lot of redevelopment to integrate the new solution.
Failing to plan is planning to fail The initial plan is almost like a business plan for your website. By going into as much detail as possible, you will in effect cover as many potential choices as possible. Typing out a plan not only gives you a latter point of reference, it also lets you get your thoughts together. In your plan don't just say “the site will do this” say why it will do this and explain your reasoning.
The finer details Once you have a finalized draft of the plan you can then work on what I would call a “technical plan”. The technical plan takes each point from your main plan and explains just how they will actually be implemented. This takes a lot of factors into account including any software/scripts that will be used and how they will be implemented within the site. It will also cover things like navigation. Here is a short example...
Because the site has a membership facility all page content must be accessible to users regardless of their logged in status. There will however be differences. Logged in users will see additional features such as a comments form. If the user is not logged in they will see a notification to register or sign in. The logged in status will be checked using a session and the session will be checked on every page using a piece of php code within header.php. If a user is found to be logged in we will assign a string value. We can then use if(string==”answer”){do} to determine what components to show the user.
The above example is going into technical details about how a member system would check if a user is logged in or not. Because we have already determined how this will work we are not forced to hack around and make it up as we go along. We know the session will be checked per page and different users will see different features based on the result of the session check.
You should go into a lot of detail so that things are as clear as possible for later on when you come to putting it all together. This is especially true when there are a number of ways to do the same thing. Just imagine in my above example if the session wasn't always checked in header.php I then try and do the same thing within a page that had header.php as an include. You can only set the session once, so it is important that you only try it once or you will get errors.
Your sites structure You should also have a good plan in place for the sites structure. I am not referring to the actual design, and how pages will be structured, but how the site will be structures on the file system. What will your pages be called, how will they be structured in relation to each other, what will your folders be called and so on.
The site structure can easily be planned using nothing more than post-it-notes. You can get these notes in several colors. Use one color to be a page and another color to be a folder. Place your homepage on a sheet of paper(or better still a white board if you have one). What pages will your homepage link to, draw lines to represent links. If you use yellow and pink post-it-notes use the pink to represent folders, then have your yellow notes overlap the folders they reside in. This lets you visually see the entire structure. You can see all your directories/folders and you can see what pages are contained within each. If there are a lot of pages in a folder simply make the folder longer using extra post-it-notes.
Navigation We now know about our site structure and we can visually see all the proposed links but how is the navigation actually going to work? As we know there are many different types of navigation available, but I think you need to decide what works best for the given situation. Will we have a main menu that doesn't change and is part of every page? Will the menu be dynamic and change based on what page is being viewed? You need to base these answers on the current problem being faced. There is no one one size fits all solution for site navigation.
Layout The layout is what your end user will see, but you shouldest even start until you have worked out exactly how each of the required components will work. We have already done the homework regarding navigation, you should also do your research for any other aspects of the page that you intend to use. Also we aren't going to go anywhere near a computer to do our design, its time to do some sketches. Draw what you want the design to look like, include your on page items such as navigation and content.
Do what you can to make it work well. If you're not happy with things, or there are things you now feel should be changed go back and make changes. The great thing about planning is when you find things things that need to be altered you can easily make the change now. Had you just went ahead and started creating a site then found potential problems the time spend making corrections would be a lot more extensive.
Work flow When you have your plan finalized create a “todo list” and check each item off as you do them. The todo list keeps you to the plan, and also gets things done in a preplanned order. If you stick to your plan and your scheduled todo list its almost like working to a script.
Taking time to plan, and plan well will take time. But it will save you time when you come to putting it all together.
Mack.
[edited by: mack at 8:11 pm (utc) on Mar 25, 2010]