Coding is like gardening...

Archive for September, 2008

Why design completeness should track the project schedule

The level of the completeness of the design for a website should accurately track the completeness of the project. It’s been said before, but it’s worth saying again…

In the past I’ve been guilty of two equal yet opposite mistakes on website projects regarding design implementation. There’s a temptation to leave the implementation of the design right until the end of the project (”It’ll only take a day or two, after all”). There’s also a strong urge to get the design done right at the beginning of the project, to really show the client what the finished article will look like.

Both of these approaches turned out to be mistakes.

When we’ve left the design until the end of the project, the client ends up directionless. Unless they’ve got a programming background, or heck of lot of vision (and most don’t), they just won’t put your lovely design concepts together with your naked ‘Times New Roman’ HTML wireframes. Sure, the site works, and works well, but it just won’t feel right. The client won’t be able to get past how it looks and will ignore all your fervent feature demos because they’ll be thinking about that ugly font.

With one project on which we did this, the client ended up changing their mind too much about what they wanted; had they seen the design progressively improving look and feel they may well have been able to catch the vision for the site quicker. With less understanding clients, you run the danger that all your hard work behind the scenes will be dismissed just because it looks awful and they wonder what you’ve been doing with all that time and money.

So why not get those concepts right onto screen straight away in their full glory? That way they’ll know exactly what they’re getting, right?

Big mistake. When we’ve done this in the past, we’ve noted that clients often equate the progress of the design with the general progress of the site. With one project, we rolled up at the end of the first iteration with a beautiful website that showed the finished design in all its glory. The client was very pleased. However, the very next iteration, after we’d spent just as much time on functionality and ‘behind the scenes stuff’, they were less pleased. Despite us telling them how much we’d accomplished, they just couldn’t quite see it. We then spent quite a while on the back foot trying to convince them stuff was happening, even though the site looked much the same as it did at the start!

So where’s the balance? I’m not sure there’s a perfect middle way; it depends on the client you’re working with and the type of project you’re working on. These days however we progress with the look and feel in stages; it tends to ensure both client and consultancy are on the same page and everyone can measure progress in their own way.

My take on RailsConf Europe

Hot on the heels of Aimee’s lovely overview earlier, here’s my take on the conference from a technical lead/business owner/recruitment manager angle (my team keep telling me I need an array of hats so they know which of my 14 roles I’m currently operating from, but enough about that).

I thought it was an excellent conference. It was a little smaller and more intimate than last year, but that suited me as it wasn’t quite so crammed and I had more time to talk to people. It was definitely worthwhile taking the whole team; everybody learnt an enormous amount, and we got a lot of team chat in, which is always good. From a business standpoint, there was plenty of old-fashioned hand-shaking, and a few people who might just find the time to come along and work for us – we’re always looking for talented programmers. The message boards they have at these conferences are always good for this.

My conference highlight was the fresh take on legacy code from David Heinemeier Hansson.  Looking back on previous code you’ve written should make you cringe to some extent; how else do you know that you’re improving as a programmer? A good lesson in confidence for programmers everywhere; it was great to hear the message from someone so high-profile.

Not sure we’ll go in such numbers next year, but it’s great that we managed to get there this time. There’s a chance that RailsConf Europe 09 might be a bit closer to home, which will be nice. I’m also planning to head to Future of Web Apps in London next month (at least for the expo) – drop me a line if you’re going.

-Chris

A review of RailsConf Europe

RailsConf Europe is a 3-day conference focusing on the web application framework Ruby on Rails. This year it was hosted in Berlin and all five of us attended. We had a great time, learnt a lot, met some inspiring people and experienced some of the culture of Berlin whilst we were there.

As a company, most of the web applications we build for our clients are written in Ruby on Rails. Ruby is an interpreted, object-oriented programming language created by Japanese programmer Yukihiro Matsumoto, often known as ‘Matz’.

Rails is a framework written in Ruby which allows easy access to a database and supports our rapid development cycle. It is so-called ‘opinionated software’ in that it gently guides us to use standards that have been proven to work well, and it encourages the current best practices for web development. Rails was created by Danish programmer David Heinemeier Hansson, often known as ‘DHH’ or just ‘David’.

For me personally the most useful part of the conference was the half-day tutorial on Unobtrusive JavaScript. Many web sites these days are full of clever effects such as drag and drop, fading text, expand and collapse. These effects are made possible thanks to ingenious use of JavaScript. The trouble is, not all browsers support JavaScript. As web programmers it is our responsibility to make our sites accessible to all users. The tutorial taught me some useful new concepts, and the hands-on practice was beneficial.

Other highlights were the seminars about advanced RESTful techniques, globalisation and internationalisation, presentation caching, and enabling offline access to a website using Gears. We also heard a fantastic keynote from DHH concerning ‘legacy’ code. As time goes on we become better programmers and we may begin to dislike the code we wrote in the past. Since joining I am definitely having this experience, because i have learnt such a lot! David’s message was to celebrate legacy code – it shows how far we have come. We saw how tidying up just a small part of the code can have a big impact in feeling better about it.

It wasn’t all hard work at the conference. We sampled some of the bars and restaurants and visited the Brandenburg Gate. I got to meet some people i’ve known on the Internet for a while, and also made some new friends. It was a very worthwhile trip.

Why?

Good question. Give me some context?

Oh, why the blog.

We had stuff to say, but our previous blog was a little outdated and more product-focused. Therefore we’ve switched to a nice new theme and created a space where the team here can muse about their experiences of the wonderful world of creating code for the web, which forms a large part of what we do here. Excuse us for any glitches you might experience in the early days. Hope you enjoy reading.