So Agile Together: How designers and programmers can join forces to create great experiences

By finding common ground and learning from one another, UX designers and programmers can forge better environments for agile software development.

Article No :1047 | July 2, 2013 | by Andrew Wagner

Earlier this year, I attended a UX meetup that featured a panel discussing whether or not integrating UX designers into the agile software practice works.

I noticed during the discussion that the panelists made strong distinctions between "developers" and UX designers.

While this is commonplace, it stood out to me because I’m primarily working on the development side as a programmer, but I have an interest and background in user experience. I realize the need in larger organizations to hire for specific positions, but I think that as long as we maintain these distinctions, UX designers will not be able to effectively work within the agile software process. I also think the skill sets and aptitude for programmers and UX designers have significant overlap.

Common Ground

One of the principles listed on agilemanifesto.org is that, “Continuous attention to technical excellence and good design enhances agility.” This means that programmers must work on a daily basis with designers. If designers simply hand over designs for the programmers to implement, design considerations are more likely to be left by the wayside as technical challenges arise.

People work much better together when they can find common ground. By recognizing that the similarities between designers and programmers greatly outweigh their differences, we can all learn to work more effectively together on a daily basis.

Attention to Detail

Both developers and designers must be very detailed oriented and thorough. UX designers must consider all edge cases and possible motivations in order to shape a user’s experience. Programmers have to predict all of the little things that can go wrong and account for them to prevent bugs.

Empathetic by Nature

Both must be able to place themselves into the shoes of others. UX designers must be able to empathize with various personas to analyze the experience they will have. Programmers always have to empathize with one another in order to make sure that the code they write is understandable and maintainable by others.

Creative

Both must be very creative. UX designers have to find new and innovative ways to combine, update, and tweak existing UX paradigms to fit new use cases. Programmers must always devise new architectures and patterns to get tasks completed faster and make better, more efficient, and more stable programs.

Techies

One stereotypical difference between UX designers and programmers is that UX designers are more people-oriented and programmers are more technically oriented. However, UX designers in tech companies are technical. They are surrounded by technology all the time. They use technology to get their jobs done and they are often creating technology themselves—some even learn to program.

Similarly, programmers look at technology from a user-centered position. Many are constantly helping friends and family use technology and learn to appreciate UX design. Programmers are extremely proficient at recognizing patterns and they can spot UX that works and UX that doesn't.

Come Together

By recognizing these similarities, UX design can move from being a precursor to programming to an integrated part of the development process allowing for better iteration on both the technical aspects and the design.

UX designers will still be the experts on user experience and will be the ones innovating the interface, but they will do it alongside the programmers instead of in their own world. Programmers can be evaluating the interfaces based on the patterns they see every day and technical issues can be addressed earlier. UX designers will still lead the research but programmers will greatly benefit from seeing some of the research first-hand.

Everyone can be on the same page about the importance of each change. Most importantly, by better integrating our prototyping and development processes, programmers can help designers iterate early on in the development cycle and designers can continue to iterate the UX until the end of development because programmers will be more invested in it.

Conclusion

I hope that one day we can all be considered "developers" and the difference between a UX person and a front-end programmer is no greater than a front-end programmer and a back-end programmer. As a programmer, I would love to learn more from UX designers and I would love to teach them more about programing.

We can all benefit from a more fluid and agile UX development process. UX cannot be developed completely before the developers see it because UX is never a static thing. Users, environments, and use cases are all constantly changing. We need to be able to iterate the usability of the application throughout the entire development process and it cannot stop at the 1.0 release. The usability iteration must continue as long as the product is being maintained. If we do all of the UX first, it will be much more challenging to iterate on it later.

I think that the best way we can move toward a more cohesive, agile development process that includes both UX designers and programmers is to stop seeing our roles as so different. UX designers and programmers can each learn skills from one another and support an overall product iteration that includes UX at its core.

About the Author(s)

Andrew Wagner tries to bridge the gap between programmer and UX designer. He has worked primarily in programming roles but has always contributed to the UX conversation. He currently works as an iOS freelance developer while also developing his own app business.

Comments

Cobus

August 26, 2013

Thank you for the article....I miss the business side of things, however. I saw many designers who make assumptions on UX, in their designs, developers thrilled about their own technical ability. It is however essential that business needs be considered first. I suggest thus a third element in your discussion, namely that of a business process expert.
Cheers

I love this article. I totally agree. I tend to lean more towards being a designer but I think as a designer you should understand the technical hurtles that the programmers must go through to achieve what you are proposing for interaction and layout. That's why I continue to work side by side with programmers and in the process continue to teach myself new code. Keep on building!

Neat writeup! And I agree to the fact that UX design and development just cannot be separated, as is done everywhere now. I know there are programmers who wouldn't mind a different shade of grey, or a different font on the screen, but, more often than not, a developer tends to know and worry about design as much as code. The form factor is just as important for developers now.

I do agree to a certain extent with you. Having worked both at startups and huge corporates as UX Researcher, Designer and UX Manager.

The three legs of a perfectly balanced tripod (team).
1 The science and art leg - UX Researchers, Designers and thought/concept gurus
2 The Logic Leg - Crucial leg which blows life into the dreams of designers, front end, backend devs, architects, testing teams, performance teams.
3 The Business Leg - ensure we spend feasible resources developing a product strategies on visioning and to the market strategy most importantly ensures there is a good ROI.

Now imagine a tripod and think what happens if one leg is not of the same length as the other. The same thing happens to teams when they get into the debate of who is first or who is more important. There is no one successful team in the history which succeeded just because of a single team.

What is crucial is
1. Developers should be equally enthusiastic about good and innovative designs and should have the 'can do' attitude instead of being a neah sayers. Designers must understand devs language and most importantly understand that to execute it needs time (in most cases more time than it took to design) and effort which the business might not be willing to give to devs.
2. Inputs from developers should be unbiased from the technical hardships especially in ideation phase, if they are biased that should be specified explicitly, which the designers must take into consideration before making a design decision.
3. The overall UX should however happen as a precursor to dev phase. This would include the research, the ideation the IA, Interaction Design (Don't confuse with interaction with and transition effects of design elements on a screen).However, a dev lead or an architect needs to be present at all these stages to get immediate feedback on things being proposed regarding technical feasibility and educating the designers of new technical scope to design (ex new apis, frameworks etc.). As and when the design enters the Information Design phase the dev phase should be started and should be continued into the visual design, interactions with design elements and transition effects.
4. Designers must understand that Iteration Design doesn't just mean keep updating your mockups, it means keep updating your IA, Interaction Design models as well if you have to basing on discussions with dev teams. But if you keep updating them every day you might loose the focus so minimize but dont ignore them.
5. Designers ROI means something (in most cases ROI is everything, nobody would want to spend a million dollars to make a prfit of a dollar a year)!!! in the whole process a true UX Expert would act more like a liaison between the business (understanding their needs, limitations and trying for a feasible product that justifies the investment and meets the bottom line), marketing, dev teams (understand that devs need to understand your designs as much as you do, most importantly give enough space for discusing technical feasibility at every stage in appropriate proportion.) yet ensuring good UX Delivery through the product.
6. Most importantly a trap that most agile teams fall into - They decide to build a part of the product in one sprint usually referred to as user story. The breakage of user story is crucial should be done as per scenarios. What happens if not done? - well irregular non-continuous implementation of user stories leads to really bad backend work last minute bugs both on usability front and dev side and most importantly a scenario where the small pieces always looked good to the client but when everything is put together it just doesn't make sense.

Once again designers be open to dev teams input at all stages, also everyone is a designer by nature so involve other teams and stakeholders for inputs and feedback after every iteration. Devs please understand that design isnt just photoshop.

-- it seems like you've run out of character count in the comment box :D But very well explained. Our teams are currently finding the right balance among the three legs you've mentioned--specifically boosting our UX research and analytics resources. Once this is done, both designers and developers would all have informed decisions in their design and development.