I was recently wondering how to work on UX and UI design in Scrum regime. I’ve reading a lot of articles and blog posts in that topic. This is what I have find out with some thoughts from my recent project I was writing here.
When I’ve asked my leading UX designer (who is no doubts awesome in his job) to continue his design while we would gona start development, I was almost certainly convinced that we are going to fail this. I was so scared that I’ve no idea what I’m doing, that I almost made my pants wet. The UX designer was trying to persuade me to give him some time to prepare holistic design up front, so it could be then moved to UI designer to made some templates and after whole graphic designs would be ready start Agile development.
It was impossible to make an agreement here. Because such strategy would remove whole agility from the process, than there is no point in iterative development. No doubts. But in the same time he was right, that it’s important for the UX to be consistent and that it can’t be additionally developed. But we have no other choice, deadline was to short, and I was certain that we would need to cut features out from application. In such a case holistic approach would also be broken.
Change is the only constant in life - Heraclitus
What happened next? I had some part of UX designed and no user stories in backlog (why, was explained in earlier post). So I made my stories from early stage UX mockups and started first Sprint. While first Sprint was in dev, UX designers were working on refining UX and re-built it from scratch. Some of my backlog went outdated and it was pain in the ass to fix that, still I’ve hicap from that reason. So what guarantee I’ve with holistic-up-front-hiper-super-design that it would not be changed in future? Answer is no-guarantee, null, nada. Changing the UX during development is same possible as customer adding new feature or changing his mind about already implemented. So how to deal with it?
Each of the Sprint should deliver some potentially releasable artifacts, so those should be designed as consistent product. However UX designers should be constantly updated with a big picture of the product so they can imagine product in couple of sprints up front. In such case they are designing for current stories, but keeps in mind holistic image of whole product. Here you should be aware, that what was designed 2 or 3 sprints ago could be changed after UX designer discovers some new feature or customer would introduce change in scope. It’s a waste you could say, but customer should be aware of asking for changes or new features, so costs of making this design changes should be included into development of this new story. Sometimes during sprint planning ux designer would find some story which makes current design obsolete - no problem at all, just couple of next stories would be more costly, some stories would need to be reopened. Waste? Not exactly, because its cost of new story, it’s to high, do not implement it, keep current design.
As I’ve drawn above agile development doesn’t exclude holistic approach to design. During sprint most of the actual work of UX designers would be focused on polishing current designs, adding more details to raw design of the application. UI designers would work on current stories, current designs to facilitate work of developers. In the same time, communication with product owner and top backlog stories should be base for creating big picture. During iterative approach, design would be changed often and sometimes drastically, what would increase cost of development it self.
Still agile development would make it harder to keep design consistent, cost of well designed application would quite high, but in the end it’s our customer who decides what the balance between good design and low cost would be established. However techniques used by UX designer should be well chosen to minimize redesign costs. For example disposable paper mockup or whiteboard wireframes would take much less time to start over than interactive, fully animated Azure prototype. The experienced UX designer would choose right tool for the job, accordingly to current project stage, and dynamics of scope changes or stories creation. There is no silver bullet here.
What I’ve experienced is that even up-front designs are changed during life of project, in such a situation “waste” is only transformed from one place into another. But in my opinion “waste” could be omitted only in future, so if “waste” already happened it could only be increased in future. So is iterative UX development wasteful, certainly not. UX design is process of getting knowledge of new features or users reactions for old ones, so if we could test our features and change them accordingly in more agile way, it’s helping us to avoid situation from famous drawing.