Our Discovery work incorporates user research and design activities to understand how we might best meet user needs within your budget. These activities don't finish at the end of the Discovery phase: our user research and design runs alongside our development, checking we're on the right path all the way through our work with you.
We're led by your objectives - what do you need from the project? - but we're informed by your users. If you don't have an existing body of user research for us to work from, we'll often start by developing personas. Personas are fictitious characters developed out of research into the people your project is aimed at.
We'll start to shape our ideas of what the project should do by working with these personas and the scenarios we put them through, and reviewing those insights with you and the people people who'll use the software the project will produce. We've often found it useful to our work in identifying user needs to work with potential project users in these sessions: the use of personas seems to make it easier for people to articulate needs, rather than wants.
User stories help keep us on target to understand what people need to do. "As a..." "I would like to be able to"... "So that I can..." is a common format for a user story. That format demands we understand every feature in terms of its value to someone who will actually use it. The art, to us, is in keeping those stories broad enough so as not to demand a certain implementation, yet narrow enough to be doable reasonably quickly, so we waste a little as possible of our time.
We're huge fans of paper-prototyping at this stage of the process. Lo-fi, democratising and fast to change: paper prototyping helps us make rapid strides in defining how we'll meet the user needs we're refining during Discovery. Those prototypes get tested by users and radically altered before we hit a line of code.
We aim not to spend much time on estimation: simply to be able to accurately answer the question: what delivers the most value? That takes an understanding of what the project aims to do, and what the needs of your users are. That sets out what we need to do first, and we keep prioritising until we believe we've bitten off enough work for our first sprint of development effort.