Wednesday, May 25, 2011

Using design-first to build the backlog


It is great (necessary is a better word) in application development projects--especially when the customer is concerned about the app looking good--to have a graphic artist / designer involved.

Right now, we're working on a project for state lotteries and we need a prototype. There's no customer but we want it to look good (have some sizzle) so it can sell.

To make it look good, we had a designer mock up some screens and UI/UX stuff for us. The mockups look great!!! ...BUT... (And I this is a very big BUT)...the designs have proven very hard to IMPLEMENT...so we've had to punt and backlog some...and I'm okay with this.

For me, in software, the goal is a functional prototype. An idealized prototype or mockups is not functional. Being too wrapped up in what the software should/could be is great but it's definitely not the goal for the project. For the project, what the product *can* be is the goal.

I think there's a balance between ideal and practical and here's my current thinking on it: if the customer is asking for a good-looking design, then get a designer to mock stuff up. Have a BA/PM-type-of-person parse out the observable behaviors in the screens and share those two things (mocks and use case descriptions) with the developer. Have the developer dive in. Most likely, there will be things that the developer thinks are too hard or are impossible to implement; the project manager will likely agree they are too hard. Proceed! Backlog the items that are hard/impossible and as fast as possible, get to the minimum thing that the developers can produce that most nearly complies with the screens and spirit of the designs and use cases / user needs. (imperfection is tolerated and encouraged...the speed to completion and "done" is the goal)

In my opinion software development is a process and can't all be done/solved in a single iteration. Get to "done" as fast as possible and let the developer decide what done is (he's the furthest down the chain and has the hardest/most stressful job in my opinion). Over time, as a team, the software can more closely comply with the ideals of the designers and users...over time...and it will never be done...never...