Make it Real. Make it Simple.
There is a lesson that keeps becoming apparent the more I practice Agile or Lean methods. Simple is best. To illustrate the point, I want to talk about some tools that are powerful because they are simple.
Paper Prototype
One of the easiest ways to gain shared understanging of an application’s behavior is to see it in action. The easiest way to make it real is to draw it out on paper and role-play using the application, Paper Prototyping. Seeing it act out and in motion, even in paper, gives licence to act on questions about corner cases. Making it move breaks down assumtions so we can more quickly come to a shared understanding.
Vertical Slice
The application’s architecture is noting but lines on paper until it is real. Once the architecture is started in code, from top to bottom, we can start to tell so much about our choices. Is it fast enough to add new features? Can we move data in and out of our database? Can we move enough data? Can we make chages without horribly impacting our users? Can we respond to their actions fast enough?
We aren’t polishing the application yet. There will be corner cases we aren’t addressing, but that’s fine right now. Mother sooner we figure out if our architecture is fit for our purposes, the less rework we will have to do once our problems became apparent.
Post Its
Post-its are super useful. By making abstract concepts real, we can move them, talk about them, change them, and throw them away. Many agile techniques make huge use of Post-Its. Scrum and Kanban boards are made of stickies. Story Maps are masses of stickies. Affinity maps, dot voting, discussion parking lots, and so much more. By being a physical thing, they allow use as a group to move and share ideas. Without bounding ourselves by someone else’s software that encodes how they think, we make our tools work for our situation.
Paper Notes
The physical act of writing words helps us connect them in our brain. In addition, we can add diagrams and pictures that help solidify our understanding as well as acting as sign posts when we search for them later. Notebooks don’t crash or run out of battery. Notecards can be shuffled and moved on a table. And someone else’s idea of how to do things doesn’t keep you from trying something new.
All of these tools are used for two reasons. First, we should always be driving out our misunderstandings to a place they can’t hide. Second, we need to drive out risk by actually using things as soon as possible. Then we can make our products work for us as best as they can, as reliably as they can, as quickly as they can.