Codementor Events

Problems vs Tasks

Published Oct 06, 2017
Problems vs Tasks

We solve problems every day, but sometimes we do not know what we are doing, or how. And others don't seem to value it.

What is a problem? Something whose solution is not obvious.

If the solution were obvious, then it would not be a problem, but a task.

For example, if I am a painter and I have the tools and the ability to paint so much wall area every hour, how long will it take for me to paint a whole wall? The road is known. It is a task.

On the other hand, it would be a problem if some part of the way was not obvious. Or, if instead of being a wall painter, I were a portrait painter. What does my client expect?, What would be a nice pose for this person? These are questions whose answers are not obvious — these are problems.

The obvious

What is obvious? It depends on your knowledge and skills. Something obvious to one person may not be to another. When you pay with a bill for something that costs less, it is obvious to an adult to give money back. But it is not so obvious to a child who is learning to buy on the street.

It is not obvious either that one has to distinguish between problems and tasks. But I hope you feel the utility of noticing the difference.

Noticing the difference

Sometimes we call tasks that are done routinely problems. Or we treat those who solve problems as if they were doing routine tasks. In order not to form false expectations, it is important to distinguish what a task is and what a problem is.

When you face a problem, you usually find a no giving you the first greeting. This no, show us that the answer is not obvious and clarifies that it is not a task.

If someone fails when performing a task, it was actually a problem.

Then, almost by instinct, you come to ask yourself things. Is there something that resembles some task you know? Perhaps solving that first clarifies what the next step is. Or it could be about dividing the problem into known parts. Or, perhaps, you can express some part in terms of something you already know. You try, you fail, you test something else, you hit it, and you're building a path to a solution.

When you perform a task, such questions do not appear. If they do appear, then it is not a task, but a problem.

Solving

Solving a problem requires a different treatment than doing a task. Solving a problem requires additional skills. You must be able to accept a challenge, to imagine alternatives, to prove a plan and fail, to recognize the information that a fail may be giving you, and locate you on the map of your quest.

Estimating

How long does it take you to do a task? You can guess.

How long does it take you to solve a problem? I do not know, it depends on the problem.

But — one moment — in standardized tests, aren't there problems to be solved in a certain time? Yes, but actually these are not problems for whoever proposes the test and has already solved them so many times that he knows how much time it is usually takes. It would be more correct to call them questions.

A student who has not studied the subject or practiced similar questions may take much longer to solve a question, because for him it would really be a problem.

On the other hand, another student, who has studied the subject and practiced these type of questions until it turns out to be tasks, will take much less time to solve them.

You can be very skilled at doing tasks and knowing how much it takes you to do them. But what happens when you are faced with questions whose answer is not obvious?

Solving a problem is not a tour of the market of a known village, but an exploration trip. How long will it take you to enter the unknown forest and find in there fruit that I like?

You can not budget a problem. You can only budget for tasks.

If you need to budget a problem, look for someone for whom that problem is just a task. Or manage the process to turn problems into tasks.

Agile

In Agile development, it is about taking a problem and determining tasks as soon as possible so that you can budget.

To solve a problem, you assign a small amount of time and resources to take a small step each time. It's like a bet. It could be enough to solve something, or maybe not, but it is a limited and calculated risk. Seeing the result, we can decide if we bet again for the same amount or change the number.

Preparation

Knowing how to handle a problem is important, but you must recognize that if there is no one able to perform the tasks that will arise, the problem cannot be solved.

Familiarizing ourselves with the tasks gives us more opportunities to find things that are known when facing a problem.

Our repertoire of familiar tasks can be seen as a vocabulary that helps us express a solution. Knowing more numbers of tasks certainly can help. But just as with the words of a language, it is important to know how to effectively use those that we have available.

Tools

It is common to give a problem to someone and leave it alone, to see how it is resolved. We solve it, sometimes without knowing exactly how. Thus, we learned to interpret the world, to talk, to deal with other people and situations. However, it may be useful to visualize the things we use when solving problems. These are the ones I usually distinguish.

Context. It is a set of considerations that we consider when dealing with something. For abstract ideas, we remove considerations. For example, when dealing with geometric shapes, we can leave aside weight or color. Having clear context and knowing how to apply abstractions helps solve problems.

Analogies. It is to find a parallel context that we already know and represent there our problem, solve it, and then return to the initial context to represent the solution there.

Likeness. As below as above. It is to find analogies within the same context. (You could also say that an analogy is a likeness between contexts.)

Patterns. They are like figures that we see repeated in different contexts.

Conclusion

Solving problems is an activity that requires a mental disposition and different abilities to do something routine.

I think that many obstacles and misunderstandings in the development of projects are due to the fact that the difference in creative activity is not understood.

I think that distinguishing between problems, as something whose solution is not obvious, and tasks, as a fully determined activity, is useful to better visualize what we have before us — to solve the problem of problems.

Discover and read more posts from Antonio Kobashikawa
get started
post commentsBe the first to share your opinion
Jánszky László Lajos
5 years ago

Useful article. I just realized that I like problem solving, but I am totally unmotivated in doing tasks, that’s why I finish my projects slowly. I think problems turn into tasks when you figure out how to solve them. I don’t even write the code, an issue that describes how the actual problem can be solved is enough to consider it a task. I even start new projects with new problem just to procrastinate doing tasks. :D Not sure how to change that behavior. Actually problems are more about creativity and tasks are more about productivity and I am far from productive currently. For success I need to boost that somehow. What motivates you in doing tasks?

Damian Dąbrowski
4 years ago

Really interesting what you have said, when I already solved the problem, I’m so excited to write code and see solution through my own eyes. Maybe you should consider position more like tech lead :)

Antonio Kobashikawa
10 months ago

I think solve a problem could be like be an explorer. It’s exciting discover a new route. But for a colonizer could be exciting the lot of tasks involved in trace a better path, build houses, a community. The explorer soon longs for the call of the unknown. The colonizer is left to develop the known. We need both roles. May be something is more enjoyable when you appreciate as it is.

Show more replies