Everything has its own name

I went to the client’s office with our art director and now he is ready to show various layouts to illustrate the project. He made some minor changes last night so we could not see them together. He opens the laptop and double-click cool.psd.

The colleague who develops the frontend sent an email containing the latest corrections requested by the company that will address the integration. Once unzipped the files, on the desktop appears the folder named WTF.

These are only two examples, but I could easily go on for hours and hours and never repeat myself. Ok_bis_def.zip, another_one.psd, today_i_lack_ideas.png: I have a whole literature of meaningless and embarrassing names.

Tired of spending days to rename the files and send them to different actors (if I still have time) I have developed a simple system of nomenclature which I try to apply and enforce.

The advice is to start as early as the wireframing phase, to continue during the graphic design up to the development of HTML pages. Each wireframe should properly be named before sending it to the art director, who is usually happy to keep the creativity for other tasks.

I’ve tried over the years different types of classifications, but the one that ended up being more effective is the result of a compromise between the highly informative content and ease of application of the rule.

A typical example of the nomenclature would be as follows:

  • HP010
  • PR010
  • CH010

The first two characters indicate the section of the site that the page refers to (in this case HP stands for the homepage, PR for product page and CH for the checkout), while the number indicates the sequence of the page within the section (HP010 may be the main homepage, HP020 a particular version for the Christmas period, etc..). I use tens as units because, if we find out that we forgot a template that “logically” has to be inserted between two others, we can include it (eg. HP015).

As you can see the rule is trivial, but for this reason is also easy to apply. It saved me a lot of time, but in particular it has allowed us to verify at a glance if all the template were made.

Learning from one’s mistakes

Some projects fail. Once I received this email from one of our clients:

Good morning [account manager] and Antonio,

we want to express our disappointment regarding your behavior and the work done.

We believe that the many requests and modifications we are asking you are a direct consequence of your work. We refer, in particular, to the fact that we asked you a_b_c while you proposed us d_e_f. You can agree with us that in this way our objectives were not met. We are now in the process of putting online a product that is quite different from the one that we wanted.

Our criticism is based on the lack of suggestions and ideas from your side – experts in this field – and on your attitude of mere executors.

Shocking, isn’t it?

A message with such a tone isn’t a bolt from the blue, but rather a direct consequence of an email sent by us in which, rudely, we ask the client to allow us to close the several activities in progress and to stop adding new ones every couple of days. Obviously this is not the right approach. It’s just the last in a series of errors that, from both parties, characterized the whole project.

Before analyzing what has gone wrong it’s important to put the project in its context:

  • the first meetings with the client were held  a year and a half before this email;
  • the project covered the creation of a web site with features such as booking, searching, non-standard e-commerce procedures, and with a link to an external and proprietary information systems for price lists and address books;
  • the site was meant to substitute the previous version, built by our agency;
  • after the requirements analysis phase and several brainstorming sessions, we presented a working prototype containing the main features of the project.  The client was given the opportunity to experiment with the prototype for some weeks;
  • the total effort estimate was 350 man-hours.

The client, even if it doesn’t seem so by reading the email, has been involved in every step of the project

  • the gathering of useful elements for the project were based on a series of meeting where the client set his expectations;
  • we developed a working prototype of the application, sharing every detail with the client;
  • we chose to split the project in about 5 parts to shorten the deployment and let the client test the various functionalities

These seems to be solid basis for building a valued product. The email we received, however, is not on the same wave lenght: our client is unsatisfied, convinced this is not the product he wanted and expresses doubts regarding our expertise. How can this be possible?

If we take a deeper look at what happened, however, we can easily notice that many mistakes were made, on both parts. Here’s a list with the most important ones:

  • Mistake #1: you need a brand new site – It all started when the client expressed some perplexity regarding the site currently online. The site was fine after all, but there were some bugs (above all there were usability problems, especially of interface coherence). At this point the client is persuaded to redesign the whole site and he is promised a better, more usable, faster one. Maybe it was not necessary a complete redesign.
  • Mistake #2: it will cost you 100. No 300. Let’s make a deal: 200 – Without any analysis a first estimate sent to the client is far from the truth. Having developed the previous version doesn’t necessary mean that estimation for the redesign is easier. The real estimate is three times the first one, the client is astonished and we agree on a price that disappoints both parts.
  • Mistake #3: a phantom, not a client – We did not stress enough that we needed their help and approval throughout the project lifecycle. Approving a prototype meant to the client that the development phase was just a boring activity with no decisions to be taken on their side. We did, to be honest, included an estimation of their effort in the project documentation, but it was not enough. We waited weeks for an answer, sometimes.
  • Mistake #4: client contacts not motivated – To succeed, everyone involved in a project has to master communication skills, especially the project manager and the people on the client side that relate with her. That didn’t happen. The project was assigned to a freelance that didn’t succeed in answering doubts and questions and evaluate proposals. When you are in such a situation raise your hand before it’s too late.
  • Mistake #5: software is intangible so you can change it till the last minute – Even if it’s possibile to evaluate a change in the specifications, this has to be seen as an execption, and not a rule. The project seemed ready to be put online, but not on the client’s mind.
  • Mistake #6: the site doesn’t do what i wantThe site doesn’t have to behave as you want, but as your user want.