Category Archives: books

Prioritizing Web Usability Notes

Written by Richard. Filed under books. Tagged , . 2 Comments.

Here are my most important extracts from Jakob Nielsen’s “Prioritizing Web Usability”. I have all my notes typed up. Just drop me a line if you want them all.

Users spend 25-35s on a homepage. Even with an avarage reading speed of 200-300 WPM, this only leaves enough time for about twenty words to be read.

Five biggest causes of user failure:
1. Searching
2. Information Architecture
3. Content
4. Production Information
5. Workflow.

Page design is more of an annoyance then a direct cause of failure for sites.

Don’t defend your interface, fix it!

Before adding design elements, ask yourself:
1. Does this element simplify the user’s task?
2. Does this element add value to the user?

Design for your users. Not for what you or your manager likes. The key to creating a good experience for your user is creating something with them in mind.

It’s an Improvement Adventure

Written by Richard. Filed under books, computing, programming. 1 Comment.

It’s amazing how easy it is to be a programmer/developer/code monkey without having to do it properly. I got my first programming job when I was 17, a whole ten years ago, and now after recently reading Clean Code and Refactoring to Patterns, I can’t help but wonder what the hell I’ve been doing all this time. I’ve been writing code, but I sure as hell haven’t been programming. Looking at the code I’ve written as recently as only a few weeks ago now makes me cringe. “Why am I calling this method here?”, “What the hell is this comment?”, “Is this a joke?!?”.

I took a job as a developer for a mobile phone voicemail to email provider four years ago. I was only there for a few months but I still feel like I learnt more about programming while there then I had previously and ever have done since. I’m a firm believer in the notion that you’re only ever as good as the people around you. If you come in at a lower level you’ll soon pick up the pace, and if you come in over those around you, you’ll soon slow down to match your co-workers. As always there are exceptional circumstances. Sometimes if you’re too low, you’ll never be able to perform to the same standard, and if you’re too high, you probably won’t stick around long enough to get bogged down. I’m in a bit of a unique situation in my present role, because I work in pretty much complete isolation from other developers. Which means I have to set my own benchmark. I remember when I started, I was still so full of energy from my previous job (the one mentioned above) that I wrote some pretty cool code, which even impresses me when I look at it four years on. But as time went by I became more and more rusty and the quality of my code decreased dramatically. I stopped reading computing books altogether and took more of an interest in general business subjects. I took an interest again when Rails came on the scene, but none of the coolness or wow factor of doing Ruby could be applied to my day job doing Java, so that area of my life still continued to dwindle. The discovery of Grails changed that to a large degree, but by then I had lost the sparkle for Rails and my code became the same mess, just in a different language. I constantly think to myself that there has to be a better way. Rails and Grails felt like an answer to a certain degree, but the same underlying issues of design and brittleness remained. While features were quick to implement, changes were slow and painful to make. Simple requests became complicated hacks built upon other hacks to fill in holes left by other feature requests. Rails and Grails, while eye openers and moral boosters, didn’t solve my problems.

I was naive and blamed the language, the framework or the previous developer for my issues. I felt that my designs were sound and the code of a high standard. It “felt” tidy and the functionality all there, neatly sectioned off into different places. But Clean Code and Refactoring to Patterns showed me how wrong I had been. Regardless of the language or the framework, without well designed, robust and agile coding practices, you eventually hit a very hard brick wall. To say they were an eye opener is an understatement. It felt more like a programming re-birth. In hindsight, all the signs of bad code were there, I had just become totally blind to it.

Not very long after reading both books, I tasked with making some changes to an old legacy Java system. In the past I had absolutely detested working on it. Everything felt like a mess and that the slightest change would bring the whole system to its knees. But I felt confident this time. I started writing tests, which I had never done before, and started using the absolutely brilliant refactoring capabilities of IntelliJ. I spent a lot of time refactoring code so that the new functionality existed, wrapped up, in a state that it should, rather then in a shoehorned/hacked state. No doubt it too me longer then if I’d just shoved it in, but the system became better as a whole for it. The long reach of the masses of refactorings I performed have left parts in a greatly improved state. Perhaps in some cases, with added complexity – a small price to pay for better testability, design and extensibility. I would rather have an added degree of complexity over a brittle design any time

Anyone can knock out code, anyone can cut-and-paste a system together if they tried hard enough, but writing code alone is a solution to a small fraction of the overall problem. Anyone can churn out new features for a v1 release, but what about v1.1 or v2 or v3. As developers we dig our own graves. Clients don’t understand why things used to happen so fast, but now it’s sometimes weeks before anything new is ever shown. Fast – Slow – Slower.

This is where good, clean code starts to come into it’s own. Code that’s light on it’s feet. Code that’s easy to move in and out. Code that isn’t a brick wall and requires you to code around. Good design and good coding practices are at the heart of delivering a robust solution. If you are a developer you need to read the books I mentioned above, or at least just Clean Code. Heck, as a developer you need to read books. FULL STOP. I know many developers who don’t read at all, which to me is just unthinkable. You maybe one of the few that shrugs their shoulders after reading something like Clean Code and says “Yeah, I know all this already.”, and if so, good for you, but even you will probably know someone who could do with reading it, probably more then once ;)

Career Advice

Written by Richard. Filed under books, work. No comments.

Don’t know know what the hell you’re doing with your career? Read The Adventures of Johnny Bunko. Career advice in the form of a manga. Should only take you about 20 minutes to read (More if you’re slow like me).

Top Man, Top Dog, Top Boss, Top Arse? Top Riches!

Written by Richard. Filed under books, business. 1 Comment.

I bought this on a whim as Foyles didn’t seem to have any of the books I was really after. Besides who wouldn’t be interested in the story of the UK’s second richest person. It’s certainly been a up and down ride for old Philip Green, but if there’s two things you can’t deny about the man it’s that he doesn’t give up and that he’s the boss.

Sometimes I think it’s easy to look at these really successful people and think that they all got lucky or that after one of two of our own failures us mere mortals don’t stand a chance of reaching the top like these people, but Philip Green is the perfect example of someone who made it after a string of failures. For years and years he tried his hand at constantly starting new businesses. He’s a risk taker and sometimes those risks haven’t paid off but the ones that have, have paid off extremely well for him.

One thing that is apparent though is that he is a total arsehole to the people around him and especially those that cross him. If he took the arsehole test I posted a few days ago no doubt the system would explode! But to the man’s testament he’s being himself and makes no apologies for it and it’s probably that attitude that got him to where he is today. As someone was quoted as saying “You don’t get to where he is without being a bastard”.

Humble Pie

Written by Richard. Filed under books, work. 3 Comments.

For Christmas I got a copy of Gordon Ramsay’s Humble Pie from Emma. I’m a massive Gordon Ramsay fan so I was really looking forward to finding out more about the man himself. It’s a really short book. Even though it’s some 270 pages the print is huge and only takes up about 2/3rds of each pages printable size.

It’s always great reading about someone who came from such a horrible background and who went on to do really well for them self. A lot of people think Gordon Ramsay is just a loud mouth arrogant prick and in some respects he is, but he demands the best from the people who work for him and forcing them to work to his high standards is what has led to his food and restaurants being such a huge success. He has also rewarded the ones who stuck by and put up with him though as all the head chefs in his restaurants now are people who have worked under him for a long time.

I especially love watching his Kitchen Nightmares show. Nearly all the problems are painfully obvious, but more often then not the owners are just to stubborn to see it. Ramsay does his best to drill the message home sometimes with varying degrees of success. He rightfully says a lot of the time you need balls and it’s true. You need balls to face up to your problems, which 99% of the time, the owners don’t want to do. So they end up running away from their problems and trying to fix them buy putting their energy into the wrong solution, like putting up prices or inflating their menus.

As the saying goes “If you find yourself in a hole, stop digging!”