Use cases are useful because they help identify useful levels of design work. They allow the designers to see the actual low level processes that are involved in a certain problem, which makes the problem easier to handle, since certain minor steps and details the user makes are exposed. The designers' job should be to take into consideration these small problems in order to arrive at a final solution that works. Another way to say this is that use cases break complicated tasks into smaller bits, where these bits are useful units. Each bit completes a small task, which then builds up to the final bigger task. Like writing code on a computer, it is easier to write the basic smaller parts and make them work first, and then put them together to finish the larger more complicated code, instead tackling the entire code from the very beginning.