It's fitting that I would open this blog with what is probably the single-most important piece of advice I can give a software developer:
Build software for the user.
This may seem like a rather trivial piece of advice, but it's not. The farther you get into working on your product, the easier it is to forget that there are people who will be using your software who have never seen it before. And not only will they be new to your software, but they will also have plenty of other choices for software.
Now let's be honest here: As programmers, we know we were at the top of our classes throughout school and it's easy for us to feel like the people around us aren't always the brightest people on the planet. And it's easy to get frustrated and feel that if they're not understanding our software, then they're the ones with the problem.
But if they're not understanding our software and instead ditch it and pay for somebody else's software, then, in fact, YOU are the one with the problem--the problem paying your bills because the user who isn't very bright chose not to buy your product.
Of course, do you even want these people to use your product? If they're not very bright, do you want them to become a thorn in your side and constantly pester you for help?
And that's where it comes together: Of course you don't want them pestering you. But you do want them to use your software. And that's why you want to make your software clear. That doesn't mean it has to be dumbed down and easy to use, as if you're shooting for the lowest common denominator, coding for the guy who people wonder how he remembers to eat. Instead, you want to make your software straightforward and clear, and even obvious, without forcing the user to do extra work.
It's easy to find examples where people have screwed this up, especially on web sites. When I set up this Google account there were several places where I had to search the page for the button I needed. There's no reason for that. The layout should be clear. And think how many times you go to a website that requires a login, but once at the site you have to click again to get to the login page. That's unnecessary. The login should be right there on the main page. It's about being clear. Not dumbing it down, but being clear.
Remember, you're building a tool. The software is a tool, the connection between the user and what the user is doing. Right now I'm thinking about software, and I don't want to think about the page I'm typing this into. The page and its buttons are the last thing on my mind. It's me and what I'm doing (typing a blog) that's on my mind. Your tool should be invisible and not a constant headache to the user.
That's the first step. I'll be covering the groundwork in the days to come before we get into actual programming examples. The examples will be in various languages, because to the export programmer, the language choice should be no obstacle.
See you soon.
Jeff Cogswell
Friday, December 12, 2008
Subscribe to:
Posts (Atom)
