So I’m a programmer (software developer/engineer/architect/CTO etc) Blanket statement yea yea yea…
Why do we suck?
1. Many of us, myself included but less so now I hope, fight adding work to our plate in order to make the user have an easier experience.
This does not mean we don’t care at all, BUT we tend to assume or expect the user to see the world from our point of view a little. We expect the user to compromise and learn more about using the product so “I” the programmer do not have to split hairs over some UI widget that’s a hassle to me. I’ve had many debates with designers/developers over little things and almost always the programmer is trying to do less. We think the user should just figure it out. We do, why don’t they.
Why? Because they aren’t technical! Because in reality, the interface system we all use is bad enough, even on a good day, without language interaction to make it hard to use the products. Programmers don’t get it. The best way to help? Make programmers sit with users and have them watch the user use the product. Without offer assistance to the user. Programmers then get some level of empathy for users, if they are human.
2. “Some” programmers like to be too clever, in UI or code. I’ve worked with many developers whose main concern about code is how ‘concise’ they can make a line of code or overly ‘generic’ a class. They are great at it. The lines of code I have seen are impressive. The classes with built-in unneeded factories for ‘things’ are clever. But good luck to anyone trying to understand quickly what they are doing. Some programmers do this to be efficient, some out of ego. In the end, it sucks and it's not more efficient.
There was a time when the concise character-less code was helpful as machines and compilers were slow. Each character, especially over many files, would add time to the build process. But that is not an issue anymore, not really. The cost of development is people and time to complete projects in a team.
3. Some programmers' ‘ego’ is used to beat up on others. This is not unique to programmers but due to the technical nature perhaps is more on display. When I’ve gone to StackOverflow or other similar sites from Google to find an answer to a question, it seems every time there is a question and an answer there are comments about how ‘dumb’ the person asking the question is. I’m sure everyone has seen the comment threads ½ of which are ‘fighting’ about non-question things. These are even on developer sites. What’s the point? If something is dumb, don’t comment? why waste time? The question inevitably isn’t dumb to someone.
The people jumping others are ‘ego’ challenged and like to “attempt” to puff themselves up. In reality, they do the opposite. Many times the negative comments immediately get personal, indicating a losing argument. Spend your time and energy on the positive.
So that’s why we suck. 99% is a lack of true user empathy which is a real challenge.
Be the customer