Understanding the Task Deeply: A Guide to Excelling in Software Development Beyond Coding Skills(Part 1)

Abi Farhan
5 min readApr 29, 2023

--

After read this article, you will know how important for spend time on having a clear understanding the task that given

3 Main Questions

Before we jump into the case, we have to answer the three questions below:

  1. What advantages are there to taking the time to gain a comprehensive understanding of a task before diving into coding?
  2. What are some indicators that you have a solid understanding of the task at hand?
  3. How can you ensure that you maintain a clear understanding of the task as you progress through the project?

The 3 questions above are the main questions that we have to answer and understand before we start to say coding as soon as possible most important than understanding the task.

Okay let’s answer these questions:

1. What advantages are there to taking the time to gain a comprehensive understanding of a task before diving into coding?

  • Fewer Bugs

The better we understand the task will make the probability of bugs will decrease. And the more dependent your understanding of the task we get, the more possible bugs you will be able to find.

  • Minimize changes after Coding on progress

When you already coding, and you realize that you missed some scenario or field or one part of your task has on another integrated part, you will need to come back to the part you already finished and adjust for that effect. If we find that dependency while we understand the task process then we can think about how to manage it before we start coding and it will make the code less amount of changes. This will save us time in fixing the code that already we wrote.

  • Better time management

We can tell how long a task will take if we understand it, also understanding the task thoroughly will help us to estimate the time and is very useful for tracking it and delegating it to another developer in case you are sick or something else.

2. What are some indicators that you have a solid understanding of the task at hand?

The aim to understand that let’s see the simple UI below

Let’s say to have a task to develop this page, When can you understand it enough to start coding?

The simple way to answer this question is

  1. The image here is the center image of coffee and it can not be clicked, also it is not the full image because the size is very small.
  2. The process is from the field of “name”, the price is from the field “price”, the Quantity is from the “amount” field, and last for the Order Quantity table we know we can update the quantity and the total price for each product will follow it.
  3. The total price is the amount of all products that we already booked
  4. The checkout button is for executing the buy product

Above all, you can ask the system analyst or whoever assigns you the task to make sure there is no missing or misunderstanding of the task and everything will be clear so to speak.

Let’s break that explanation into smaller parts, a good explanation of a task consists of these questions

  1. What does the user see?

for instance, what are the UI components, such as images, the prices, and the price view. It means also what information and how is it retrieved and how is it calculated, did the calculation from the backend side or the front end side?

2. How does each part behave?

This means what state exists, or what happens if there is an action like clicked button and others. in the example of the table above the order button can be increased or decreased, and the quantity can be edited.

3. What interaction is there with other components?

For example, when the order button clicks where page do we move? or there is interaction on the same page to proceed it so on and so forth.

4. What are the edge cases, and how to handle them?

This question is to give you really meaningful insights and is very effective in helping you to find the possible bugs. These questions do not just apply only to UI components but to an area that is much larger than just a UI component. Edge cases are the significant state of the system. This is the edge case base on the image above:

  • What happens when the quantity of coffee is zero kilograms?
  • Also, does the total price show?
  • What happens if the user clicks the order button?
  • What happens if the data from API is the error?

All of these questions have to do with the error scenario or the invalid scenario or the error scenario of it.

3. How can you ensure that you maintain a clear understanding of the task as you progress through the project?

The answer is documenting what you know. you will need a copy of the original specification document. you can use Note or something else but I often use Notion to manage the task. if you want to know how to manage the task using Notion I will share it with you later :). Okay back to the topic, how we documented the task to relook if we forget when we start coding?

1. Comment the Mockup

If you see the image above, you can see how easy it is to understand the meanings and interconnections of the different fields and how easily you will be reminded and delegate it just with a single glimpse.

2. Mark or Comment on key info

  • The price is retrieved dynamically by the world market price of the coffee beans.
  • The quantity has to be dynamically checked to make sure the stock

3. Create a Flow Chart

Photo by Christina Morillo from Pexels: https://www.pexels.com/photo/white-dry-erase-board-with-red-diagram-1181311/

Photo by Christina Morillo from Pexels: https://www.pexels.com/photo/white-dry-erase-board-with-red-diagram-1181311/

4. Edge Cases

You can write it down how you deal with the scenario.

--

--

Abi Farhan

Professional Android Developer, Software Developer. Photography Enthusiast