Agile UI Design
Between Kent Beck’s post on Capital Efficient UI Design and attending a UI conference this week, I’m prompted to write down a few thoughts on incorporating UI design into development iterations.
Establish critical design standards at the beginning and work out the details as the software grows. Look and feel, when to use drop down menus, when to us pop-ups can be decided early. But it’s not necessary (or desirable) to have a wireframe for screens that won’t be worked on for months. Too much can change.
Use design critiques to increase the entire team’s understanding of UI design principles. Design critique asks these questions: What was the intent of the design choice? How well does the design choice meet that intent? Is the intent appropriate for the situation?
The goal isn’t to make everyone into an expert UI designer. But when everyone understands basic principles, communication about UI design will be smoother and more effective. And the devs (or PO) will be less likely to go off and do something–with the best of intentions, but not enough understanding–that makes the system harder for the people who will interact with it.
Engage in micro iterations on screen design. Work in rapid feedback cycles. Change only one thing at a time, so that the effect of a change is clear. Looking at the actual design rendered first in simple sketches and then on a computer screen (and there are tools to do this now) reduces miscommunication and misinterpretation.
Design global navigation last. Before designing global navigation, design screens with only local navigation–how people do the work of that screen. Then, as parts of the system are ready to release, create an application map that shows hub and spoke relationships, selection screens, modal screens and links and build just enough global navigation for the current feature set.
Iteration demos to confirm acceptance criteria are necessary, but not sufficient. End of iteration demos confirm that a small slice of functionality works as anticipated. But it doesn’t tell you how much about the experience of someone using the system to do work. Watch people using the software to understand their environment, work, and experience of the software. UX experts recommend that each team member spend 2 hours every six weeks watching people use the software the team members write.
These aren’t the only was to help UI design fit into an iterative development cycle. But they are a start, and we need to start somewhere to bring user experience into agile.
About Esther Derby
I started my career as a programmer, and over the years I’ve worn many hats, including business owner, internal consultant and manager. From all these perspectives, one thing became clear: our level of individual, team and company success was deeply impacted by our work environment and organizational dynamics. As a result, I have spent the last twenty-five years helping companies design their environment, culture, and human dynamics for optimum success.
I’ve written over 100 articles, and co-authored two books–Agile Retrospectives: Making Good Teams Great and Behind Closed Doors: Secrets of Great Management. I write about management, leadership, collaboration, organizations and change (or another topic I’m currently exploring).
Follow me on Twitter @estherderby
More About Esther »Northern Virginia Software Symposium
November 1 - 3, 2013
Reston, VA
Current Topics on the NFJS Tour
- Core Java, JEE
- Dynamic Languages: Groovy, JRuby, Scala, Clojure
- RESTful Web Apps
- Frameworks: Hibernate, Grails, Spring, JSF, GWT, more
- Agility
- Test Driven Design
- Security
- Ajax, Flex, RIA
Why Attend the NFJS Tour?
- » Cutting-Edge Technologies
- » Agile Practices
- » Peer Exchange
Current Topics:
- Languages on the JVM: Scala, Groovy, Clojure
- Enterprise Java
- Core Java, Java 7
- Agility
- Testing: Geb, Spock, Easyb
- REST
- NoSQL: MongoDB, Cassandra
- Hadoop
- Spring 3
- Automation Tools: Git, Hudson, Sonar
- HTML5, Ajax, jQuery, Usability
- Mobile Applications - iPhone and Android
- More...
NFJS, the Magazine
May Issue Now AvailableOn the road to learning
by Raju GandhiRefactoring to Modularity
by Kirk KnoernschildRESTful Groovy
by Kenneth KousenGetting Started with D3.js
by Brian Sletten