Building a Website: Part 1: The Functional Specification

In our previous adventure, I talked about building an ASP.NET website for a local school.  This site would have a small Content Management System attached to it.  Nothing fancy, just something small.  But you see, I forgot a cardinal rule of programming: Get the functional specification. Oops.  Luckily, the site idea has been swimming around in my head for ages, so it should be rather easy to crank one out, right?  Let's hope so.  This specification will follow the example set by Joel Spolsky of Joel On Software.  Without further ado (or maybe with it, given my rather long intro), the functional specification.


Overview is a website that allows teachers from St. Anns to update the parents and community on what is going on in their school.

Warning: This specification may cause paralysis if read for too long. It's not complete. It will change. Hopefully not too much. The screens shown here are for illustrative effect, they are not meant to be taken as the final product.  The look and feel of the site will be refined and changed based on user feedback.

This specification only deals with what a user would see when they visited


In designing products, it helps to imagine a few real life stories
of how actual (stereotypical) people would use them. We'll look at two

Scenario 1: Samantha (The Teacher).
is a Teacher at St. Anns.  In between dealing with kids, parents, meetings, and planning, she has very little time to worry about weather or not people on that distant thing called the internet are kept up to date with what is happening in her classroom.  Up until now, she's always just put the newsletter in the Kid's bookbag, and sent them home.  If the parents needed to read something, the hope was that the child wouldn't ingest it or use it for spitballs.  For anything important, the United States Postal Service was used. Given that we're 8 years into the new millenium, and a full 12 years after the World Wide Web became huge, Samantha (being the smart teacher that she is) knows that it'd be far easier to copy and paste her news letter onto a website than it would be to print it out, make copies, and put them in her kids' bookbags.  Not to mention it'd be much more 'green'.

So Samantha logs on to, and decides to upload her news letter.  In friendly way, the site asks her what she wants to do, and if she wants to upload the newsletter, she simply copies and pastes it from Word, hits 'save', and her work for the day is done.  She can do this for every other section on her teacher page as well.

Scenario 2: Tammy, the Mother.

Tammy is the mother of two wonderful children that seemingly lose their newsletters walking from the school to their car.  It happens.  When she needs to find out information, she simply navigates to the site, and can easily select her child's classroom.  Once there, she sees that the weekly newsletter has been posted to the site, along with a note about upcoming events that's easily viewable.  Since she'd forgotten about the Picture day, she goes ahead and calls the school and asks if it's too much trouble to be sent another form.  Just like that, she is kept up to date on her children's school events.


Where to Go From Here

At this point, we've got a jist of what we want the site to do, so we'll go ahead and base a data schema off of this and start building the site.  We're pretty sure we're not going to get it right the first time, so we're not really worried about that. 

This is the site in a nutshell.  In the next article, we'll work on the data schema.

Leave a Reply