On multiple occasions, I have noticed myself struggling with a piece of software when I am trying to get my job done. The job could be to analyze a problem, brainstorm about something or may be even just participate in an interactive discussion.
One of my favorite examples is communicating something thru a document. This morning I sat down to write a white paper on Styles of TDD. This was my first attempt at writing a white paper on TDD. 10 mins into it, I was struggling with the flow of the paper. I realized I was paying too much attention to the style and format of the paper rather than the content of the paper. At times I forgot my thought process trying to fix those damn spelling mistakes.
Then I switched to index cards. I just started writing very high-level thoughts, one per index card. Soon I could see the whole flow of the paper. I move a few sub-topics around and got the complete flow. It felt so much faster and so much easier.
Another example that comes to my mind is, UI designing. People try to use sophisticated tools for their UI mock-ups. As soon as you throw those UI mock-ups on the screen, the audiences start paying more attention to the format, font, colors, style and other cosmetics and forget about the business flow and validations. Also, soon you realize the UI design is highly influenced by the tool rather than the user.
Instead, use a paper based UI prototyping style. When the audiences look at the paper prototype they know it‘s not real and they focus really on business flow and validations. Paper based UI prototype helps the users to separate concerns and focus on the task at hand.
Best of all, the requirements internalization phase of a user story or a use case. As soon as we see the business person explaining the business functionality we open up a computer tool trying to capture all the important info. Suddenly we shift from understanding the requirements to capturing the requirements. We stop visualizing the requirements in our head and starts struggling with getting the tool do what we want. These tools are not intuitive to most of us and generally we think differently than how the tool requires us to think.
Planning and tracking is another great example that the agile community seems to have addressed really well with index cards and story wall.
Lesson learnt: Simplicity! Focus on the task at hand and not the tool. Generally avoid any kind of so-called sophisticated computer tool. If you really have to use a tool, make sure the tool stays in background letting your normal thought process.