Website specification document
Every website project starts with a specification document. The big question here is what does this document contains and how far should you go in order to draft it. When drafting it you will see that new ideas will come and how valuable this document
is going to be.
In fact, it really depends of what you would like to achieve. The more you write, the less chances you have that your project will end unexpectedly. On the other hand, if you detail everything within it and make it as exhaustive as possible, you will end with a document which is gong to takes ages to draft and you will probably lose in terms of energy, delay and so on and so forth.
Some people will see the specification document as a bureaucracy thing, whereas it is all about reducing uncertainties. Of course you are highly motivated by your project and you would like to start it right now, but the point is that if you don't plan your work a little bit you may realize that your project is not realistic. If you were the only one within the project and had no budget... it is still ok... but if you put others within this project you will feel very bad in case of a failure.
This document is also a great communication material as it help your different partners to see in which direction you are planning to go.
Often, the right strategy is a mix of both. You answered to the main questions, you have a good overview of your project and you are still motivated and can start soon implementing it.
A website specification document will save you a lot of time anyway.
Note: they are not good and bad answers in a spec document, the worst thing is to not do anything. As well this document is evolutive nothing is set in stone here even if in some cases it may be used as a contractual agreement. This document is not a
Website specification document
Here is below a non-exhaustive list of what a specification document has to contain.
- Company/Organization/Individual introduction
- Website objective
- Expected results
- Targeted audience
- Domain name
- Legal obligations
- Website organization
- Website content
- Website features
- Website wireframing
- Training needs
- Organization graphics
- Going international
- Website ownership
- Who is in charge of what?
All those different points are explained and also express who we would answer here if we had to for a project we are creating named the "Satoshi to US dollar online converter".
In this part, you will detail the entity who is behind the project. The idea of this part is really to understand who is asking you this project. In a business environment, this is often the client/end customer. List here all the information that you
identify as relevant. It is very helpful sometimes to identify that your client is going to be bankrupt within the next year if the website does not get his first sales soon. Or that they are very good in one very specific area.
For example: the Satoshi to US dollar converted is brough by me, creator of the FLOSS Marketing School. It consists of a website where visitors can know how worth is a cent of a bitcoin (a bitcoin cent is called a satoshi) in US dollar.
Here you need to explain clearly the problem you are trying to solve with your website.
For example: when you are keeping bitcoins (it is a crypto currency) in some banks, you are getting some earnings out of it. Those earnings are very low so it represents something like 0.00000023 BTC. This is really annoying when you would like to know how much it is worth in dollar as you always need a calculator. The idea is to create a website where you can just insert how much you earned in bitcoin and to know how much you got in USD. It is intended for a personal use, no need to go public.
Developing a website is time consuming. So a great thing to do is to indicate here how much you expect to get from it. Estimation is a tough task, nobody really like this, but you have to list your expectations anyway. If you don't want to put figures, you can also list your expectations such as:
- Increasing customer satisfaction.
- Decrease the time spent on the phone.
- Improve our brand.
For example: for this project, our expected result is to have a temporary website live, made of very cheap hardware components in order to illustrate our elearning course.
In this part, you detail who your visitors/users are going to be. This part is important as it helps you already identify the profile of your audience and then decide the tone, the type of text, colours and so on and so forth that you will use within your website.
For example: this website is intended for bitcoin owners. Mostly the one playing on Faucet websites, crypto trading platforms...
In this part you will mention directly the websites that you know or that you found through search engines on the requests you consider and third party services consider as competitors of yours. This step is really important because most of the time,
we consider that our project is unique... it is never the case. A good research here allow you to clearly identify if you have a chance or not.
by typing "online bitcoin converter" in Google on July the 15th 2019
- https://gobitcoin.io (no satoshi here)
by typing "online satoshi converter" in Google on July the 15th 2019
- https://www.bestchange.com/converter/ (interesting but cannot see all the 0 from USD)
- https://www.buybitcoinworldwide.com/satoshi/to-usd/ (interesting but cannot see all the 0 from USD)
- https://satoshi-converter.com/640000-satoshi-in-us-dollars (probably the best competitor but too much text)
The domain name corresponds to the nice name you will use in order to name your website. In general you will purchase your domain name at the same place as your web hosting platforms. The different points you need to consider are:
- Is your domain name short and descriptive enough?
- Would you like it to carry the same name as your brand or your company name?
- Would you like to purchase the different TLD and typos in order to protect your domain name from cybersquatting?
For example: in our case, we don't want to purchase a domain name as it is for education only. So we will keep the general IP address. Let's see if that's possible.
Hosting refers to the location where your files will be stored. In general, most of organizations are going to the main web hosting platforms as they can afford low prices and reliability. However in some cases you may be interested in going to another web hosting platforms or even host the website on your own machine. In this part, you need to describe what is your justification.
For example: our wish is to host the website on our own device, an Arduino Node MCU in order to show the possibilities offered by this device and how far we can go with an open source hardware.
Most of organizations need to be contacted, so you need emails anyway. You can always optimize the number you want but you will need several anyway. Emails are linked to the domain name you are purchasing so here the price is either defined by your registrar (unless not offering this service) or your web hosting provider.
For example: in our case our project does not need a domain name so we will go without. If we purchase a domain name we will probably just need a firstname.lastname@example.org/
The word maintenance is probably one of the funniest when it deals with website because it could mean so many things. Let's say that it refers to "if something goes wrong, someone is in charge of fixing it". This is what it means, so of course you need to define what does something goes wrong mean. Most of the time, it refers to the fact that you are breaking something, but it is never that simple as most of the times it is a mix of several things: a mistake you did + a non updated version of your website + an attack from an intruder...
So in this part you are defining what is the SLA (Service Level Agreement) you want and who will be in charge of it.
For example: in our project if something goes wrong, we will be the one fixing it.
This part may change from countries to countries, so you really need to investigate what are the obligations in your respective country. In general the rule of thumb is the following one, when you target a market, you need to respect the obligations of this market.
Note: if your website is an e-commerce website, you will probably have extra obligations to respect. It may also be the case if you are working in specific industries such as the adult one.
For example: in my case, I am creating this project for the learners of the FLOSS Marketing School, of course they are worldwide, but I would say that they are mainly in France as those classes are before all intended for my students. As a result I should
inform on my website who is the author of the website and provide a way for people to contact me. On the other hand this website will be temporary, live for only a couple of hours, so I will provide those information only if I purchase a domain name
and that I let the website live. The person in charge of the web hosting is the same one as the one writing the content.
So as the previous part here it really depends of the market you are targeting. European General Data Protection Regulation offer an interesting framework.
For example: in our situation no personal data will be collected. In fact even server logs won't be processed.
This part consists in showing your expertise about the different technologies available in order to create your website and the different constraints you will have.
For example: my wish is to use only pure HTML5 technology. No use of CMS at all and to host it on my own server without any domain name purchased. This website will be live temporarly and is here only for education purpose.
This part consists in defining the tree organization of your website. Your home page + the different categories and subcategories. This is somehow what we call a sitemap, a mapping of your website structure.
For example: the website will be composed of only one page which will be directly the home page. As this website will be temporary and for education purpose, it does not need to be that big.
In this part, you will mention the different content you plan to include within your pages. This part is important in terms of Search Engine Optimization but also to ensure that you don't miss anything, so it is really important to describe what each page will be about, who will be in charge of writing the content...:
- Home page: this page will introduce what the website is about.
- Our products/services: those pages will introduce the different products/services of the company.
- About us: this page will explain the history of the organization.
- Contact us: this page will detail the different possibilities to get in contact with the organization.
For example: In our project we will explain what the website is about and why we decided to draft it.
So as many other parts of the specification document this one is very important too. Features are closely linked to development and refer to the most time/money consuming tasks. So it is always important to list them by priority:
- Contact forms.
- Image galery.
- User management.
For example: in our project there is an online currency converter. It takes the price of the bitcoin through the public Bitfinex API at https://docs.bitfinex.com/docs/public-endpoints and display it on the page. Through two fields the end user has the possibility to insert either a number of satoshis or a number of US dollars and see the results in a field below.
You are probably not a designer, however you may have a clear idea of what you would like your website to look like. This is what this step is about. Note that you have a clear idea and others don't. So drafting the design of your website is a critical step in order for your partners to know what you would like to get at the end of the day. A pen and a paper are great tools, but you may lose time by drawing all of it, so have a look within an image search engine and you will be able to print some good wireframes out there. The other way is by downloading software such as Pencil https://pencil.evolus.vn/ or https://www.uxbox.io/ which will make your work easier.
For example: here we used Pencil with Pencil, as you can see the final result is probably very different from the one you expected. This is why wireframing is very important.
Going mobile requires more knowledge that traditional website development. So either you need to find someone with the skills to do it or you will have to skip this part which is not advisable.
For example: in our case, we will keep it for desktops only. The idea is to develop a course about mobile website development later on.
The budget is a key aspect in your spec document. It is not about an amount of money which will be throw out of the window. The idea is really here to identify what are the different technologies and help/support you need from the outside in order to make your project realistic. Let's imagine that you would like to develop an e-commerce website, then you already know that it is going to be very challenging with a budget of zero as most of e-commerce website require heavy technologies so strong servers... which represent investments.
For example: in our project if the domain name is not necessary, then the budget will be of zero. The idea of this project is to show the limit of a zero budget website development.
Advertising is an interesting part in a spec document because it makes you realize that even with the highest level of word to mouth, you cannot really make your website known without third party players:
- search engine optimization
- street marketing
- physical network
- social media marketing
- affiliate marketing
Each of those part is of course subject to a sub-part. For example if you go for emailing, you will need to define which service/software you would like to use, you will probably have to define a budget for that. Same thing for SEO...
Here is an example of a sub-part:
A website is mostly here to provide an information without giving any interactions back. Most of your visitors/users will probably expect that you use the channel they use in order to communicate such as social networks. Thinking about the different channels you will use is interesting at this step in order to already book the different identifiers you would like to use.
For example: in our case, we won't go for any social networks as we don't want to promote our website and that it is just a temporary website.For example: in the case of our project, it is not intented to stay on the internet unless we purchase a domain name and we show a video tutorial about it. In this case the advertising channel we will use is SEO, for the rest, this e-learning course will be the main advertising channel.
Creating a website is like building up a house, so many skills are required that it is going to be a real challenge for you to do everything with your own skills.
For example: as the website is kind of minimalistic it should be fine.
This is one of the part you don't want to mess up as most of the time, the logo, the colours, the fonts is really what people will remember of your website at the end of the day. So for a serious project you need to define all of that before moving on.
Here do not hesitate to list some competitor websites or websites you are getting inspiration from.
For example: in our case, the idea is really to have a service which is minimalistic. So just in order to show that colours and fonts can be used, we will have a background which won't be white and a font which will be Arial.
Content and pictures
If you are working with a web agency, you will see that this part is a difficult one because an agency cannot guess for you what you would like to write about your company. So this is your duty to provide those contents, which mean writing and if you are not into it, that will be one of the reasons why your website is not live. So decide within your organization who will be in charge of delivering those contents. In terms of pictures, those contents are really important too. So either you are a photographer (or you hire one for this job) or you will have to purchase them through different websites you can find online, or you will have to use pictures which are under creative commons. Of course, there are no perfect solutions here. You just need to think about it.
For example: in our case and as previously mentioned, the website will be minimalistic, so no pictures on it.
In this part, you will need to precise if you would like your website to support different markets and different languages. If that's the case, you will have to think about the translation and localization of your content + think about the technologies you would like to use for your website.
For example: in our case, our website will be available in English only.
Ask yourself the right questions. Out of all the technologies you downloaded for this project which one do you 100% control and what are the consequences if you don't control some of them.
For example: in our case, it seems that we are controlling most of it but need to investigate for the wifi chip.
Who is in charge of what?
In a spec document it is always good to mention who will take care of what. Outsourcing is good but you will see that sometimes you would like to be in control of everything and that's not the case when you do outsourcing. So better to clearly define here who is charge of what.
For example: in our case, I will be in charge of everything in the project.
In this part you will list the different deadlines and what you expect in terms of delivery and at what date.
- July the 16th: I have a blank page live with a Hello world running on a public IP address.
- July the 18th: the project is finished and I make a video tutorial about it on the FLOSS Marketing School.