Really wonderful post by Jason Fried at 37signals on the reason(s) why enterprise software – that is, software developed for and sold to big business – sucks.

I know this to be true, because every day I got to work for five-and-a-bit hours and use enterprise Windows software. Then I come home, and well into the evening most days I use what I guess you’d call non-enterprise software on my Mac, for web design and database-drive web development. And I spend most of those five hours at work weeping inside, because the enterprise software just doesn’t compare.

I’ve been thinking about this a lot lately, in a more general sense: what drives the companies behind enterprise IT solutions to routinely make such poor products. Windows has always been the classic example for me – it’s a cliche, perhaps, but it’s amazing just how bad this software can be.

I’ve noticed this particularly since I switched to a Mac in 2005. In Windows’ case, I tend to think that it’s a case of not having to work to make good software: an attitude something like, ‘we’ve got the monopoly so why try harder’. But more generally, I agree completely with Jason: when you buy something for someone else to use, based on your own desires about what the product should be rather than on the user’s needs, things just ain’t going to go well.

In setting up Sevenoak Design as a web design/development business, I’m constantly thinking about ways to avoid such mistakes: mainly I do this by just talking with clients to find out what they need, and what they don’t. But I also spend a lot of time putting myself in other people’s shoes, asking, what would the user want? Is the feature or web page I’m working on intended to benefit someone who’s actually going to use it, or is it just being developed to make me look good? If you can focus relentlessly on the users like this, and let go of yourself, your products will be all the better for it.