Outside, in
We create software by working inwards from the users' experience. Maintaining focus on the users' perception of 'the system', we do just enough to satisfy the needs of the user rather than what we think is necessary or cool. On a regular basis, we
come up for air to check context and avoid
getting lost in the weeds. We decide
which direction to go next based on where our client sees value and consider how we're going to demonstrate what we've created so far. We don't jump into unit land because trying to connect all the pieces at the end doesn't produce a good solution.
Labels: outside in
Links to this post
Focus On Intent!
I frequently use the term 'focus on intent', especially with respect to the writing of story cards and acceptance criteria. When I'm focused on intent:
- I understand, with absolute clarity, the goal my customer is trying to achieve and it's NOT expressed in terms of how I am going to get there.
- I have distilled the context of the situation by identifying the most significant or important contributing factors.
- My clarity of understanding allows me to convey meaning, describing these factors clearly with a high signal-to-noise ratio.
- My state of mind is determined and concentrated on a central point while I focus on achieving only one thing at a time without ambiguity on the outcome.
- I have identified a clear, unambiguous measurement that will tell me when I am done.
- I am conscious of the essence of design and so I maintain consistency at different levels of detail so that everything makes sense separately and in context of the whole.
For me, focusing on intent conceptually represents a cognitive state required to be effective. However, achieving this state of mind isn't easy, especially in a busy environment. Personally, I find the
Pomodoro technique useful in staying focused.
Labels: focus, intent, pomodoro
Links to this post
We don't need no stinkin' process
We're enjoying ourselves so much I'm wondering if it's illegal. We're working in a 4-man team with a new client (who consult for the
Lean Enterprise Academy) and we're experimenting with some new techniques. Our goal is to create a product that is very kind to its users, so we're trying to stay as close as possible to the users' conceptual model and stop thinking like programmers all the bloody time. When we catch one another 'flipping' to techie mode we quickly 'flop' them back to user mode.
Keeping the interaction design simple, so that it can be easily learned by users, is difficult. We've used paper prototypes to explore options and we're also
iterating the interaction design as part of developing the user stories. This approach is working well. We do, however, need more ready-access to users to help reduce rework. (When does iterating, and the learning that comes from it, become wasteful rework? A subject worthy of it's own post.)
Another thing is ...
we don't need no stinkin' process. I reckon it's because our team is small, has only generalising specialists who have
worked together for ages, we trust one another implicitly, and our environment is extremely collaborative and fun-packed. Ok, it's not entirely accurate that we have no process. I just wanted to use the
Blazing Saddles clip. There is some semblance of a process but, honestly, it really, really doesn't feel like it. It just feels like the natural flow a conversation takes. Perhaps it's that the interactions are so second nature to us it just seems like everything is a conversation triggered by something that's happened or has been discovered:
- Discuss a story in a pomodoro.
- Pair up and pull its card into play.
- Start slicing - working inwards from behaviour-driven Selenium acceptance tests, incorporating any non-functional and sysadmin work, while iterating the interaction design work.
- Call a timeout and talk in a pomodoro when something important happens.
- Deploy the accepted story to production.
- Go again.
I guess it's essentially Kanban and one piece flow, perhaps with a few twists we've introduced over the years. We just say
keep it moving - keep it working - keep it together - keep it real - and keep it coming. (We evolved to our kanban-like thing independent of the
Kanban movement. Hopefully
David Anderson will corroborate that claim. I think this is interesting because a mulitude of separated parties, working independently, have concurrently evolved their process, given their own interpretations of the Toyota systems, to arrive at something with similar properties. It may be plausible to argue that this was predictable given the specifics of the Toyota systems.)
Anyhoo, some people will say we're lucky to be able to work with such freedom. And we are lucky. Others say you make you're own luck.
We choose to work freely and we choose our clients. :)
Links to this post