This post if part of the Student Project Express, a series in which I am showing how to complete a Student project using Microsoft technologies. The table of contents for the series is available here and I will keep it updated as as publish more content. 

Here we go, ready to start with this student project! If you are not sure about what this post is all about, I would recommend you take a look at the first one in the series Student Project Express: Completing your student project with Microsoft technologies where I explain the purpose of it!

When I decided to start this series I was considering whether I should do this post on reading the brief or not but I decided I would because it is fundamental to me to fully understand the requirements of what needs to be done before even starting thinking about it.

In my past experiences (both professional and academic) I have seen so many project going wrong simply because the people involved did not take the time to properly read and understand the requirements… it is not by chance that the web is so full of comics on this very subject!

(source http://www.bacollective.com/articles/monthly-articles/client-buy-in)

Anyway, without digressing, let’s take a look at the brief (which is available as Word document here).

We need to produce two separate things:

  1. “an application to provide the students with information regarding the modules in the courses that are currently offered at your University”
  2. a written report, some of which is based upon analysis of site design through research, and the rest through the creation of written technical details regarding the design of the application itself

The second point should not be underestimated! Just like in professional software development, documentation if fundamental and so often not properly done. So we need to make sure we set aside enough time to write it and don’t leave it until the end but start documenting what we do from the very beginning! All the design specs, all the various service interfaces, the database schema we will implement, everything should be properly documented.

The other thing which is mentioned here is the “analysis of site design through research”! Again, way too often we tend to underestimate the need for research and… just start coding!!! So as a first assignment for this project what we should really do is to browse as many Universities Websites and see how they present the same information to their students.

As soon as we do this we will start realising that there are some things we like and some we don’t… that we will actually like to see feature “X” (whatever that may be) in any site we visited… taking note of all this will help us make a better design for our own solution!

Now let’s take a look at the functional requirements that we have been provided (page 2 of the brief). These are quite self explanatory I would say (you should be familiar with the concept of Web Services)! Basically what this says is that the application needs to be implemented by a collection of web services exposed for consumption by different client applications and we will need to implement two different clients, one for a normal desktop browser and one for a mobile browser.

While this sounds clear enough, we are already about to face an important question… which mobile browser? While the “standard web” has made giant steps in the last few years in terms of desktop browsers, the situation for mobile browsers is still not so clear… Personally I will read this requirement in the most “restrictive” way meaning that we will implement a separate mobile rendering client (for an example of what I mean try comparing http://www.facebook.com with http://m.facebook.com).

What we want to achieve is to have a version of the site that can be conveniently browsed using a handheld device whose screen is much smaller and that will probably not have a keyboard and definitely not a mouse to navigate! Of course my reference will be a Windows Phone but you can pick your own!!!

The other important requirement that comes from the analysis of the brief is that we need to gather user feedback! Again, this is something which is often underestimated and needs to be planned in advance! People are often surprised to see how different people use technology in a different way (have you ever seen anyone typing a web address in their search engine instead of using the browser’s address bar? I did… and much worse than that!!!!).

The last thing I will cover here is the requirement for the site to be accessible and to adhere to the latest accessibility guidelines as detailed at W3C. (www.w3c.org)! It is fundamental that accessibility is considered at design time!!!! Working on something and then trying to make it accessible will have two sure outcomes: it will be late and it will never be fully accessible! Again, my experience is that too often we forget that accessibility is a key requirement for a lot of our potential users and we make their life very difficult by not following some rules that if properly understood are usually much simpler than one would think.

So… to finish this post, I will recommend that whenever you receive a brief (for a student project or for a professional one) you do analyse it, try to fully understand it, take notes, start doing some research, ask question to the author and try to understand what they actually mean and need. Spending time in this phase will save you A LOT of time afterwards when changing things may be (a probably will be) extremely complicated and expensive!!!!!

In the next post I will describe what kind of approach I want to take to implement this project and which technologies I am going to use!