Niki Dare from Asynchrony Solutions recently wrote an article about the possibility of just-in-time Agile development and design. Can Agile development, with all it’s quick deployment times, create a user experience that is not only good, but considered “great” for the user? Many people have offered up opinions, including taking advantage of Iteration zero and infusing each story or task with user-centered design principles. But the big dilemma still remains. How much upfront design and usability is too much to be considered Agile?
“As a designer, I have been fortunate enough to be a member of several development teams that each followed their own unique process. Although what works well for one team doesn’t necessarily suit another team’s needs, the principle of integrating just enough user-centered design can be applied successfully within almost any agile development project…” – Niki Dare
Minimum Marketable Features
The idea here is that a succinct set of tasks are identified as a minimum marketable feature. This feature, that should take no more than a couple of months to complete, is then well-defined and understood by the user experience and development teams. Similar to using iteration zero, it is best to allow the user experience group to be a feature ahead of the development team. For the first feature it may be helpful to start with something that is development heavy.
Formative Testing and User Experience Testing
Validating any new additions to the system, this type of testing is very beneficial to maintaining a good user experience. The most effective method is moderated testing conducted on-site so that the users can be observed directly and probed for as much insight as possible.
The best thing to do is to conduct usability tests on individual processes or tasks in the system and then act immediately on the findings. Try to keep the scope of the test as narrow as possible so scripting the test is quick and too many development tasks don’t result from the testing.
The Danger of Only Doing Just-In-Time-Design
The Agile development process boasts doing activities just-in-time to mitigate waste and allow for requirements to change even while code is being written. Just-in-time design can work in cases where a high-level design or concept has been created and approved.
But doing true just-in-time design can run the risk of losing sight of the big picture and creating a disjointed user experience or having to rework previously developed screens when new ones are added.
Interestingly enough, Niki has decided that a user experience team should be different from development, unlike Zuckerberg’s Facebook development teams, where the developers are the UI/UX. All of her suggestions point to a design-grooming of sorts ahead of the team. All this sounds good to me!