You worked on a project for months. You made kazillion overtime hours to implement yet another feature that made it look just a little bit more like a rocket. It is your baby. You are proud of it. It cannot be crashed by a meteorite hitting Earth, it runs faster than the speed of light and that on a 10 year old server with 512MB of RAM and to top it all it does everything customer wanted and more. You are ready, project is ready, stars are aligned correctly. All is well. And then your peers ask you to demo the thing. You show up, load the home page and your peers go: “You said you had it done! This is nowhere near done. This is at best half finished!”

You see, the problem is, your baby looks like a 1990s web page. Now, you and I don’t see much of a problem with that, because as software developers, we like the structure, mono-spaced fonts and the fact that you can find everything on a single page. Most other normal people, however, are just happy those times are gone for good. And this is the main problem for us, software developers. We favourise function over form to the extent we don’t see a problem in a user interface that other consider “not done”. As long as our application works, we are fine. And that is what gets us in trouble each and every time.

Now, I am not going to preach about how important it is to teach yourself some UI design. There are plenty of articles on this important topic. In fact, it is so important that even Joel Spolsky wrote about it. So, there is no need for me to reheat it. This post is written to show (and of course brag about) how far can little things go.

So, I was on this project for last three months. Not an easy one, had quite severe financial calculations, kazillion of features and on-screen grids had so many columns that a horizontal scroll appeared on displays with screen width less than 1200px. So, after discussing it with our clients, we agreed that users should be able to hide or display the left pane (which is used for navigation and advanced search and whatnot). This would increase initial screen width. I was eager to do this feature, if nothing else, to change from regular .NET coding. I implemented the feature first, by showing and hiding the div, but I wasn’t really pleased with the animation it used. So, I went an extra mile and instead of using jQuery hide() and show() functions, I used animate(). Now, the left pane was sliding in and out and the content pane would re-size when left pane became visible.

It took me 1 hour to implement. And with all the functions and features of the application, guess which one people like the most. I actually spotted people just clicking on show and hide panel numerous times. It made me smile, when a customer came to a meeting and the first thing he mentioned was how he likes the hiding feature. Don’t get me wrong. The application works as well without the show/hide feature, but going that extra mile nailed it. The project is deemed a success, the customer is happy and I got a great future reference.