A lot of testers see their job as breaking things. I like to see my job as breaking things down. In my opinion, the only way to avoid breaking down is to break things down.
“The secret of getting ahead is getting started. The secret of getting started is breaking your complex overwhelming tasks into small manageable tasks, and then starting on the first one.”
~ Mark Twain
Software is designed to solve problems. The best way to solve problems is to break them down.
Agile software development is all about breaking things down:
- A problem is too big so let’s break it down into a project
- A project is too big so let’s break it down into iterations
- An iteration is too big so let’s break it down into user stories
- A user story is too big so let’s break it down into acceptance criteria
- An acceptance criterion is too big so let’s break it down into some tests
- Let’s write a failing test and make it pass
This technique came in particularly handy when writing my Einstein Minesweeper Robot.
So, if you come across a problem that seems too difficult to solve: break it down.