Uncategorized

UX is making me dumb

User Experience Design (or UX for short) has exploded on the software scene carrying a blazing torch of freedom and promising to guide us to the holy land. We are now dedicating time and resources specifically to user experience design. This emphasis on actually designing user interactions and the experience of our applications is a fantastic effort and I applaud all those that wave the UX flag and sing its praises. But I have one problem: UX is making me a worse software developer.

An unfortunate byproduct of the UX revolution is the misinformation that developers simply can’t design good experiences. We see article after article explaining what happens when you leave developers in charge of UX design. People laugh at how stupid developers can be, that they just don’t “get it” when it comes to designing things well. These articles should highlight the importance of explicit thought when designing interactions in applications, they should not strip developers of their confidence and creativity. And yet that’s exactly what I’ve noticed happening to me.

Let me relate a brief hypothetical example. On our software project I am the lead clientside developer. We have a UX Specialist (aka UX Guy) that is responsible for the design of wireframes and mockups that explain how the user navigates through the application. During the UX pass, our UX Guy listens to us (developers and business guys) explain what the problem is and what we think we want the software to do. Then UX Guy goes off and comes back with a set of wireframes for how the application will work. We discuss, bring up problems, send back the wireframes for further iteration. Repeat that process until everyone is satisfied with the wireframes, then move on to actual development of features.

But then during development I have found myself getting the following question from my manager: “Hey Doug, how come you can’t do Feature X in the app?” and I have found myself actually saying this (shudder): “Oh, I guess that wasn’t included in UX Guy’s wireframes, you should ask him.” That’s a bullshit response. I’m not a neutered incompetent mindless developer. If something doesn’t work or was forgotten, I can figure out how to fix it. That doesn’t mean throw the code in without thinking about design. That means pausing my code writing, thinking through the problem carefully, designing a solution that will be sleek and elegant, and then continuing on with development.

And yet in my mind I have the unconscious prejudice that I, as a developer, cannot be allowed to make “UX” decisions. Fuck that. We are all responsible for designing the experience of our software. We are all responsible for carefully thinking through every interaction. We are all responsible for making things beautiful, making things simple, making things elegant. And more than that, we are all capable.



Related:

  • An interview I did with Jon Rose of InfoQ was just posted. I talk about my experience with Flex component development, the Flex commuity as a whole, and the current state of the enterprise software market in general. I'll probably get some shit for some of my comments about enterprise…
    Tags: software, experience, user
  • Here's my second attempt at making a List control for Flex that has the functionality of using the Control and Shift keys, but without making the user actually press the Control or Shift keys. For those poor programmers who have been crippled by RSI, now you can at least drag…
    Tags: making, user
Standard

27 thoughts on “UX is making me dumb

  1. Very well put, maybe minus the colorful metaphor at the end ;-). What I glean from your entry here Doug is that the difference between great devs and good devs is the ability to understand and ultimately present a solution that will have a user asking for more.

    I think with the onset of the RIA bag of tricks that many former DHTMLers have gotten out of their comfort zone; that’s not you and I think when it comes to UX in general it is the the sum of all, not the sum of one that should drive the best experience to the targeted user group. The team member wearing the UX hat should harbor and welcome all input. FYI, you’re not dumber, but smarter for writing this.

  2. Another concerning side effect of the UX revolution (95% of which I fully support) is the insinuation that, given the right tools, developers are a commodity or completely unnecessary. I have heard this suggested, fairly explicitly, by very influential members of Adobe’s evangelism team in relation to products like Flash Catalyst. That suggestion is not only inaccurate (and infuriating), I think its a dangerous one. Adobe has done itself and its customers a disservice over the last few years by implying that you can create an enterprise Flex app in the blink of an eye using some wizards and other convenience/gimmick features. Add the Flash Catalyst kool-aid to the mix and you’d think your mom can build a beautiful ERP application as long as she has the right software.

    To be blunt, its BS and I wish Adobe would stop implying otherwise. Yes, things like Flash Catalyst and Data Wizards in Flash Builder can be useful for interactive prototypes, quick mockups and proofs of concept, but they should not be used to create production applications. People that actually do use them for those tasks, and I think they are thankfully few and far between, will be left with a bloated, inefficient mess that is virtually impossible to maintain and enhance down the road.

    Take a look at the code Flash Catalyst produces. Take a look at the code WSDL Import in Flex Builder produces. If you are comfortable putting the results of either into your production application you are in the wrong business. Software development is just that: development. Yes a beautiful and useful UI is critical, but its not the entirety of software. Developers are no less important today than they were before people realized UX is important, and they will be no less important 5 years from now, regardless of what tools Adobe or anyone else creates.

  3. I agree that it should not be assumed a developer has nothing to offer in regards to UX. Or, that they don’t care about making things simple and intuitive. That’s a bad generalization. Just as bad as the countless ones for designers 🙂

    Traditionally though it hasn’t been the focus of the developers work. And the Agile process is making sure the client has visibility and remains happy. The problem is that the client is not the end user, so making just the client happy doesn’t always result in a good solution. Also, with the “UX revolution” you have to admit a lot of this concern didn’t come up. The developers controlled the experience and the designer was just the “make it perddy guy.” Only now with a lot of bad apps people are starting to see they missed something pretty big.

    One thing I think might be misunderstood here is that the UX guy is everything. It’s not just one guy though, or one developer. It’s the entire team and everyone has (or should have) a say in thinking though the UX. Just like a nice looking button doesn’t make a good experience. It’s both the whole app experience AND thinking through it’s individual interactions with the user.

  4. I like your description of a “neutered incompetent mindless developer”. I believe that UX is not something that can be delegated to another person. There are too many considerations on the engineering side that need to be balanced with the UX side to separate the two.

    Too few client side developers ever pick up a book on design or UX or even read a blog on some basic information architecture. We need to bring more to the table instead of trying to silo out into multiple different UI specialties. I think that will ultimately give clients and end users a better experience.

    Great post, Doug. Thanks!

  5. Back-end developers might suck at UI/UX. Front end developers tend to be very familiar with it formally or informally. You would have to evaluate it on a per person basis, but the assumption that all devs cant help but make bad UX is ridiculous. A number of UI devs are really devsigners. Some of them also understand the service layer or things. There is a big overlap between design and development. UX guys don’t own the UX by any means – developers should always speak up when they see something that needs to be improved whether it concerns UI/UX or otherwise.

  6. TJ Downes says:

    Developing UI is hard. Developing UI for UX in mind is even harder.

    I’ve found the more I develop UI the more complex the UI gets and the more UX is necessary. I believe the UX specialists are necessary, but I do believe that this role should highly depend on the feedback and creativity of the UI developer. They have years of experience solving UI issues, as well as learning what didn’t work. Things things can and must be considered in the UX design process.

    Ben, I agree with your sentiments. Well put.

  7. Just to clarify my point a bit: I’m not at all trying to say that I don’t think UX is super important or that there shouldn’t be a dedicated UX team member. This was more a reminder to myself (and other developers) to not let ourselves fall into the trap of thinking that we should fit into the “developer box” and stay away from what can be considered “UX work.”

  8. Tim Hoff says:

    Right on. With more and more specialization between design and development, responsibility lines have been clearly drawn; which does at times lead to the mis-conception that the developer is just there to implement the design and user experience. Many times though, the lines can, and should, become blurry. Granted, typically developers aren’t experts at Photoshop and some have no business attempting to create pretty pictures. However, concerning information architecture and user experience, some times the developer needs to pick up the UX hat a bit, as the rubber meets the road in the development cycle. Not until the application is actually functional, do we find out if it really works or not, or if there are changes that need to be made in order to satisfy the client. At that point, the UX guy may have already moved on to another project and the developers are the only ones left. In these cases, it’s paramount for developers to have some Deviner in them. IMHO, just as important as designers having some development experience as well. BTW, I’m a firm supporter of colorful metaphors to accent a point. Nice post Doug!

  9. Oh, and FYI to anyone reading the comments, Cisco, who posted a comment above, is our fantastic “UX Guy” that I’m talking about 🙂

  10. My biggest complaint is finding a UX designer that knows the Flex/Flash component sets and understands how they work. That can save lots of ‘back and fourth’ but rarely happens. Mostly you get big WTF moments because of UX designer lack of understanding. Even Flash Catalyst is looking like something I’ll end up ‘fixing’.

  11. I agree with you, even though I haven’t had to work with UX “guys”. A lot of the stuff I read online aligns with your observations. I also agree that UX is important and it has it’s place…but sometimes things just need to get done and developers can help in that regard.

    It’s refreshing reading a post that is to the point and out spoken, thanks, again.

  12. I have found that things will always get missed in the UX wireframe stage, and inevitably things come up that no one thought of. UI/UX represents a complex interaction of finite state machines (which sometimes can feel infinite in all of their inter-depdendent states.) Good developers can implement a UX design and stop and ask questions in those cases. Great developers can intuit the intention and come up with solutions that eclipse the original design. The point that I think you are making Doug, is that people need to make the conscious decision to stop, think, and evaluate. Three things that are not the exclusive domain of a “UX Guy.”

  13. UX is largely a group effort requiring input from a variety of disciplines. I require design teams consisting of 1+ UX’ers, 1+ developers, and 1+ SME’s (if required).

    And just as developers can do UX, UX practitioners can often code the front-end (develop).

  14. Great point Doug. I am said ‘UX Guy’ (previously front end development) and what’s interesting is I completely agree with you but for me I’m on the other side of the fence getting hugely frustrated that the effect of my work seems to to be making designers and developers dumb.

    I try and set up as much collaboration between me and the studio as possible but what I find is that if you give designers and developers wireframes 90% of the time they’ll simply copy it to the letter. I reckon it’s mainly due to either perceiving that I must be right (which I’m definitely not, I miss stuff like everyone else!) and that in a high pressure studio environment when a wireframe is there on a plate it can be all to easy just to follow it to get a job done.

    I do try however really hard to encourage them to take them and run with them and add their own ideas and perspective but it’s definitely something that needs to be openly discussed so creative and UX savvy developers and designers are part of the process and there’s no resentment.

  15. Sabine says:

    I totall agree with Jason and Jonny – I think it is all about collaboration. I am a UX designer and yes, I do spend most my time creating and discussing wireframes thinking about what may be the best solution for the user. However, sometimes mistakes can happen. In this case it is great if the developer tells me “Hey, I think this interaction isn’t smooth here… – why not do it like this!” I really appreciate input from developers and ultimately this helps me to create better concepts.

  16. I would have to agree, UX shouldn’t be regarded as something impossible to accomplish without the proper title (and experience coming with it), all that’s really needed is some intuition and a knack for efficient design (in general).

    UX is about taking a step back and asking yourself the right question: What does the user need to do on this page and how can we solve that problem? The problem being to display a feature or information in a way corresponding to a user’s mental model.

    Just keep an open mind and think about it! At my last job, I didn’t mind coders coming up with small designs without my approval, often they were almost perfect. They thought it out, that’s all I wanted.

  17. Thomas winsnes says:

    Good article, but I have one major problem with it

    You base your whole complaint on the scenario created by the manager here: “Hey Doug, how come you can’t do Feature X in the app?”

    There is a well known term for that scenario, and it’s called “feature creep” and it’s a project managers worst nightmare. It means an increased scope, re-planing, re-scheduling etc. I’m not sure how you do project documentation at your firm, but a change in mid-development phase is pretty costly in man hours as all previous documentation needs to be changed/checked to make sure it fits the changes

    I can definitively relate to this feeling: “That’s a bullshit response. I’m not a neutered incompetent mindless developer. If something doesn’t work or was forgotten, I can figure out how to fix it”. But there is one problem, and that is, do you have a full overview of what is required to do the changes? Probably not, and the bigger the project, the bigger the chances of this being true. Unless you have a complete overview of the project and/or access to all the documentation needed to get this, and also are aware of the quality guidelines and styles for these documenations you are probably causing more problems then you are solving.

  18. Developers should definitely question UX decisions – as one of those UX guys I can tell you that we welcome the insight and ideas developers can introduce. But it would be a disaster if a developer were to assume that the UX designer must have forgotten feature X and add it themselves, as your penultimate quote suggests. There may be deep, well-considered reasons why feature X is not included. The answer is of course, to ask your UX designer and agree on what to do next. If you can bring a well-considered design solution with you, even better.

    I don’t mean to come on too strong. Close collaboration between UX and dev is really important when making great software, and User Experience is really the responsibility of the whole business, not just one person. But if you have a UX specialist on the team, it is ultimately their job to make UX decisions – just as it’s a developer’s job to make technical decisions.

  19. Finally, someone else who understands! I’ve felt the exact same way for years. It seems that if you know the tiniest bit of code then people see you as a developer and no one will take your artistic opinions seriously. Even if you’re trained and experienced in UX and interaction design you’re still considered just a developer and never given a real chance to be more. It’s fuckin stupid.

  20. Karl D'Souza says:

    Developing a good product for business is all about working as a team. Everyone may have multiple skill sets (UX guys with Dev skills, Dev guys with UX skills, PM’s with overall skills, etc. ) but at the end of the day, everyone has a role to do and you are hired for that role because of your work experience.

    In order to deliver a successful product, everyone involved needs to work together, contribute, collaborate and meet business as well as user requirements. A UX guy is responsible for signing of on UI and UX but that doesn’t mean that a developer has no say in the matter and shouldn’t contribute or for that matter that the UI/UX guy shouldn’t take input from a developer.

    A successful product will deliver 100% functionality requirements as agreed with business while making sure that user requirements have been met. Working together, as a team you may deliver even more value in terms of functionality which will win over your business and get your team a long-term commitment from them.

    Don’t create barriers because of your titles. Realise that everyone has a responsibility and a circle within which to work in but build you relationships so that you’ll can make those circles intersect and thereby deliver better products.

  21. EvaL says:

    Frankly, I’m waiting for this whole UX design fad to blow over. I can’t tell you how tired I am of sitting through meetings with UX designers who just don’t have the technical background to understand the software they’re supposed to be designing the user experience of. (I actually heard of one UX designer who proposed working up personas for an API we were developing. Personas for an API? Yeesh.)

    Don’t get me wrong — I appreciate having experts around to do a speedy job of wireframes and mockups, but I do wish these people would realize that they’re providing a service, not salvation. And I wish that for once I could hear a UX designer come right out and say he or she has no clue so instead of going on and on about “the principles of user experience”.

  22. Ace says:

    “We are all responsible for making things beautiful, making things simple, making things elegant. And more than that, we are all capable.”

    Not ALL developers are capable of doing good UX design. Not ALL UX designers are clueless about technologies and the realities of software development. What we all need to do is grow up and work together. Look at the bigger picture. Imagine you are designing, implementing, and testing a new car. It requires a multi-disciplinary approach. And consider this, the whole Usability field was born of developers (purely developers) creating software that people were not able to use or hated to use. There’s plenty of this type “design” still out there.

    The general population of users, including me as a UX designer, would appreciate developers/programmers/coders improving their UX design skills. This doesn’t just involve researching the topic but taking the principles and best practices of usability/user-centered design to heart and ACTING upon them, instead of just doing what’s easiest for you at every turn. This also includes taking a significant amount of time designing the UX (not designing while coding), even more time designing the UX than coding in some cases.

    Unfortunately for developers who like to design their own user interfaces and interaction without outside input, that type of process is disappearing. Designing and programming are being divided into two separate specialties/fields for the reasons I mentioned above. You’ll have to choose which one you want to work in, and hopefully learn to collaborate with your designing or programming counterpart without throwing up your hands in frustration.

Comments are closed.