Users vs. Developers

In prepping for my talk at BloggerCon tomorrow, I thought I’d incite a riot tonight. Most of the world won’t be there, but you can tune into the live stream at some point right after lunch (when I’ll be leading the discussion). I put all of this in tonight’s Lockergnome report for the Windows Fanatics channel, but I figured it was worth repeating here… where I’m likely to get flamed out of existence.

What would the world of software be like if the inmates were running the asylum? I’d argue a lot more useful, and a lot more beautiful. But users are usually in the back seat when it comes to the evolution of a utility – from beginning to end. We have all the control in the world, but few of us ever choose to exercise that power. We are expected to treat developers like they’re gods – but they’re no more important in this cycle than the average user. Let me put it to you this way: software is useless if there isn’t anybody using it. There are certainly users who are content to take whatever programmers hand to them, but I don’t believe that this Utopian level of interaction will exist for too much longer. The world of software is getting larger by the day, and more people are finding new and different ways to improve lives with digital code. I got sick and tired of meeting programmers and developers with attitude, so I decided to get an attitude myself – as a power user. I expect better, I expect faster, I expect smarter, I expect more.

Base functionality is crucial – but I would argue that software should look twice as good as it runs (which should be fast to begin with). I’ve been labeled a “nitpicker” for pointing out font inconsistencies and pixel discrepancies. But if you don’t complain about the things you’d like to see change, how do you ever expect them to change? Developers develop, users use – but it’s up to both parties to communicate with one another. When I see a new piece of software that holds promise, I call out its shortcomings in the hopes it will be closer to perfection with the next revision. Programmers believe that they’re in charge – but I believe the true power lies within the user. Years ago, when I started Lockergnome, there were few people writing publicly about good (or bad) digital tools on the desktop or the Web. The blogosphere has since exploded with a flood of positive and negative opinions – and if you’re not a part of that revolution, then you’re missing out on an important part of history. I’ve seen countless developers struggle to get their apps recognized – but most of those same programmers suffer from an overinflated ego and miscalculation of a uesr’s wants, needs, and desires. Users don’t talk – but I’m asking you to start flappin’ your electronic gums for the sake of making the software landscape better for all of us.

FWIW, I love developers – couldn’t live without ’em. Can’t live with ’em, either. 🙂

34 thoughts on “Users vs. Developers”

  1. Pingback: Beetle's Nest
  2. Pingback: Planet Ajaxian
  3. Pingback: Bazungu Bucks
  4. Well, I happen to be one developer who believes that this ought not be an adversarial relationship. Does the conjuction between “Users” and “Developers” always have to place us in contention with each other?

  5. I totally agree – If you are paying for software you should be able to have a say in what things get attention from the developers.

    If you aren’t paying, letting the developers know your thoughts and wishes in a polite way is also good, because the developers then have some feedback about what the users like + dislike and the extras they would like to see.

    In either situation the developers might ignore your pleas, but at least they have the chance to hear them.

    As a developer with 5 or 6 games available for free on the web, the number of times I have heard back from users is very small, probably less then 1 reply per couple thousand downloads.


  6. I can’t disagree with most of your points, but I’m not sure why you frame it as “versus”. Ok, software is useless if there isn’t anybody using it – but software doesn’t exist if no-one is developing it. Users and developers need to be on the same side.

    I would suggest the situation is improving thanks to the Web (2.0). There is now a very direct feedback loop through the blogosphere (as you describe), and there’s been a general increase in the participatory nature of development. Virtually all developers are users in this environment, and thanks to the opening of information/source the barrier for users to be developers has never been lower.

    We (users *and* developers) aren’t so much at the mercy of the big companies, and should certainly set our sights higher than shitty software.

  7. Chris,

    I have been saying this for a long time. In my field I deal with overblown ego’s that are more of a problem than part of the solution. I also agree with you on how software works and how we access it. Part of the discussion should be around deciding what as a “user” we want and get the developers to ask the questions that need to be asked but seem never to be asked.

    What should this solution do?
    How will the interface enhance my ablitiy to be productive, within the first 30 mins. of using said software. (This is a quality option, I chose 30mins to give them something to shoot for. I really wanted to say 1 min but felt that was too aggressive.)

    “When technology becomes indisguisable and taken for granted you are close to being done.”

  8. There are millions of users and thousands of developers for a reason. Not everyone can be a programmer. If you tried to explain to all the users about partial classes, threading, semaphores, concurrency, and pass by reference functions they would be mystified. I’m not saying all users are idiots but at the same time, it’s not something one could pick up in an evening. Programming is difficult. The vast majority of people tend to shy away from things that are difficult. That’s why there aren’t more programmers.

  9. No flames here Chris.

    You’re dead on. What’s the real purpose of software? Of hardware? Of any product at all? It’s to fufill the need of a USER somewhere. There are rare occasions where the user is also a developer. But the majority of users are people who need something to make their life easier, more managable, nicer and who don’t have the skills or time to do it themselves. I think developers lose sight of that while we whack away at the latest linked list or toolbar.

    The philosophy of ‘release early, release often’ used by many in the Open Source movement helps connect the developers to the users. Get the rough draft of the program out there and start getting feedback, incorporate that feedback into the project and rinse, lather, repeat! Commercial software could benefit from using this method as well, it doesn’t need to be limited to Open Source.


  10. Chris – right on! Except for the inmates running the asylum analogy.

    The only problem is that many software developers (myself included) consider the user and the developer not as mutually exclusive beings but as a mashup of both.

    The biggest problem that I face as a User Developer is what to do when something goes wrong.

    From the front end of things, I *think* I can guage usability and flow pretty well. My bane comes in trying to figure out the best way to handle exceptions, when something doesn’t go as intended.

    When something blows up, I have prior knowledge that allows me to determine whether or not my action would have been completed or whether or not I should try again or whether or not I have just killed the system. My user exclusive users don’t have the benefit of this prior knowledge, so I have to figure out what would make sense to them. Which is why cryptic errors and BSOD cause so much user exclusive dismay.

    I’ll try to do better.

  11. Let’s see. You’re how old, Chris. Maybe mid 20’s. Well, probably since you were pampers ( like you didn’t see THAT comment coming ), I’ve believed very similarly to you. However, rather than sit back and nitpick, I decided to do something about it. I decided to WRITE software. I won’t go into the ad nauseum of things I’ve worked on, but I’ve worked on the User Experience of many ( too many to number, I’ve been at this a while ).

    But anyway. I don’t disagree with the basic tenet that much of what’s out there is CRUD, CRUFT, etc. etc. But hey, let’s not just pick on software, why convine ourselves. Do you like drive-thru’s ? They infuriate me, but for some people, no biggie. The point is this. I guess somewhere some software ( or several ) have made you feel….well, less than appreciated. Maybe you wished some software better catered to how YOU, Chris, would do something.

    Wouldn’t it be nice if a lot of things in life were like that. But, if you step back and put into perspective that you’re not the only person being catered to when you’re in that drive-thru lane, voila, instant understanding that the world doesn’t revolve old numero uno.

    I can’t disagree with your argument at it’s core, because after all, software is useless if no one uses it ( and aren’t there plenty of examples of that out there ). But,( yes there was a “but” coming ) not all software is created alike. Sure, we can’t expect you to speak more specifically about what sort of software, or perhaps what “ABOUT” software is it that is of issue, but if we take the tenet about open versus closed sourced software, or agile versus cmmi, the subject becomes differently.

    Everyone, and I mean, everywhere I’ve worked. Contractor or fulltimer, everyone thinks there’s a SINGLE “this is how we develop software” method. Well, wake up and smell the coffee Mary and Joseph, we’re not on Fantasy Island anymore. The idea of “release early, release often”, yeah, that’s worked for Microsoft. NOT ! For the vast majority of cases, most of the arguments for that “agile” ( and what a misnomer it is ) paradigm don’t cut the mustard in the face of the way most “users” think. Maybe if the target users ARE technically minded, then it does start to apply. But most user’s truly are neither interested, nor want to become involved with something that requires much more beyond simple mandates.

    The subject is way, way beyond a simple, let’s wrap thing in an Open Source way of thinking. Yeah, sure, we’ll do develop agile, give’m lots of releases to give us gobs of feedback. Ennngh ! These are humans we’re talking about. Beings who most of the time are more concerned with issues more pressing than “did the check box uncheck itself when we select that email, and selected, “. C’mon, get real folks.

    Chris has one bright idea ( I’m sure you have more, but you mentioned one basic idea everyone’s missed thus far in the comments ). Basic functionality. Start there. Don’t talk about what other whizz bang things you can code, we all know you’re a wizard at perl, a prince of python, because that’ll all be besides the point.

    “Does the OS boot ?”, “Can I add a few numbers ?, “Can I write a letter to my mom ? Or better yet, could my mom write me a letter with this ?”. Answer those questions first. Then we’ll talk about adding that wonderful flip through applications like they’re pages on a screen, or how to make 1 = 2 ( for most values of 1 ) with Pivot Tables, or create FORMS ( which must be filed in triplicate ) with the word processor.

    Now someone hand me bottle of insecticide, I think I see a “feature creep” over there !

  12. He he! Well someone’s got to stand up against this crap!

    I admire people like Winer (who’s link I followed over here). I like the notion of “users and developers partying together”. I think developers have a responsibility to give the users good things. And that developers can’t know what these good things are without paying attention to users.

    But the idea that development is a *commodity* – which is essentially what you’re saying here -, that it’s like the water supply which can be turned on or off or piped-around at the will of the user, is wrong, wrong, wrong.

    The reason is, that good software creation, like any other creative activity, requires a deep knowledge of the nature and constraints of the medium. You can’t invent the transistor without a profound understanding of physics. Nor write a great novel without being a master of your own language. Nor a great painter without knowing paint. Nor invent radio or television or the computer without a background in the relevant science.

    Without knowing your material you’ll never see the statue in the block of marble. Never have intuitions about the *possibilities* that the medium holds. Users can, at best, offer advice for incremental improvements : “I want something like X but with these annoyances fixed.”

    But that’s never going to give you radical new things. There are no great innovations in software that have been driven by user demand. (Name one!) They all come from geeks who knew what software looks like from the inside, who saw something in the computer and said “hey! I could make it do *that*, too. Kewl!”

    Users and developers have common enemies : dinosaur software companies, companies who like to specify and buy software which they hope will *impose* particular work-practices on their employees, market-forces which require cutting-corners to get the product out of the door today rather than get it right.

    Let’s work (and party) together to fight that.

    But the other … don’t fool yourself. Users have been dreaming of getting rid of developers, like, forever. They never succeed.

    Every time the users abandon us, we go away and create yet more cool stuff, on our own, for ourselves. And eventually the users come crawling back, because they want more of our pure, raw innovation, rather than more of the stale old fluff which is all that they and the marketing people (who “undertand real users” better than those disfunctional geeks) are able to come up with by themselves.

  13. Headstrong is good. Myopic is not. Designers and programmmers need to lead, but armed with an understanding of the user based upon reeal rsearch. The ‘I know what they need”, heuristic egocentric mindset must go away.

    A tech support person I know fequently tells the ap developers about execution problems and the developers typical response is “the customer is using the application wrong.” I am soryy, but that is NOT an acceptable perspective. The customer can not by definition use the application wrong.

  14. Pingback:
  15. Pingback: Betalogue

Comments are closed.