Task Planning and Solution Solving: A Guide to Excelling in Software Development Beyond Coding Skills(Part 2)

Abi Farhan
5 min readMay 1, 2023

--

Maximizing Your Potential as a Software Developer Through Comprehensive Task Planning and Solution Solving Techniques

Overview

Before we jump into the case, we will have to answer 3 main questions:

  1. How investing time in solution Planning can save you time and energy in the long run?
  2. What are The key steps to finding the optimal solution?
  3. How can you keep track of your planning and solutions for future reference?

Okey let’s answer these questions

1. How Investing Time in Solution Planning Can Save You Time and Energy in the Long Run?

  • Working smarter, not harder. We can avoid reinventing the code or functionality that already exists
  • Write compatible code

Think of naming convention, where to place files, where to place logic, and so on. Because our code has to be compatible with the project’s standards

  • Avoiding sub-optimal solutions and maximizing productivity

Because prioritize finding and implementing the optional solution as quickly as possible, rather than considering and testing multiple alternatives.

  • Not finding later that the solution doesn’t work

It happen because we did not take into account some factors of the problem. After all, we want to plan and make sure that what we want is applicable or all test cases.

2 . What are The key steps to finding the optimal solution?

Let’s see this simple UI

For this case, we have to analyze each part of it and make sure everything source of data is already known where they are from and how to implement it. here is an example :

  1. To show the image we have to get Plugin X and do the specific method for showing the image with URL type.
  2. For the name of the process, prices will be as is.
  3. For available quantity, it will change dynamically. then we have to pay attention a lot here. we have put some logic to integrate the “Available Quantity in Kg” and Order Quantity fields, they must be integrated.

Okay, let’s start to answer the questions about the step we have to do to solve the case.

1. Define the task technically

for this thing, you have to stand for 2 main most important things :

What is the scope?

The scope here is we do not see the business scope because that is not our area, but rather the technical scope. we have to make sure some things like :

  1. What already exists?

This things to prevent reinventing code, maybe the view or the layout already exists in other parts of the project then you can use it instead create a new one.

  1. What needs to be done?

For example, the existing code has a different type of data with the new requirement, in this case, you case refactor it to accept the criteria of requirements.

What is the context?

The context stands for 3 main parts:

  1. Parts of the system that interact with your code

For example, the exception mechanism, the handle mechanism, also another part of the code that has integrated data operation with your page. We should also find relevant functions you might use and things about how to use them like adding the parameter and setting the default value to prevent Null Pointer Exception.

2. Code you can learn from or use

Maybe there are some functions same or similar to the things you’re trying to solve, this means you can get inspiration from it to adapt to your task.

3. Coding standarts

You have to follow the standard of the project team to make the collaborations easier, like design patterns, writing functions with proper names, creating files with the right directory so on and so fort

Once we understand the task scope and the context of it, we can move to a new step is.

2. Find The Optimal Solution

This step is based on 2 steps :

1. What are some relevant solutions?

For example, you want to have the server save the image and create it can be accessed using URL type image. Then the relevant solution for this is to use Firebase Storage with a free plan to make sure your image still have a place in the cloud

2. Which solution is optimal and why?

We might consider using Real-Time Databases or Cloud Firestore to fetch the data from storage and save it into databases. But there are other options to use MongoDB than NoSQL too. there are a lot of options and we have to compare them and pick one the best with some criteria to think for comparing solutions

  • Cost
  • Performance
  • Forward compatibility
  • Simplicity
  • Security
  • Completeness — handle all cases
  • Coding standards & conventions compatibility
  • Etc

We have to remember there is no silver bullet or secret formula to calculate which solution is better.

Now we start to Validate applicability with the real code. in this step the have to implement PEOC (Proof of Concept) which means you find the problematic part in your solution and do the minimum need to make sure you know how to handle it.

Back to our table UI, if you are using a specific piece of code, for instance for calculating the price of coffee then we have to create a test for it or test it manually.

3. How can you keep track of your planning and solutions for future reference?

The answer is Documenting

There are a lot of methods of it and I will tell some

1. Comment on the mockup

This can help you to remember the stuff in the future.

2. Mark key info

In your note of specification, you can add the key or the for the task. Here is an example:

  1. The method for calculated is CalculatedThePrice(listOfPrice: List<Int>)

3. Using Algorithm / Pseudo code

This thing is like you solving the Leetcode or the technical interview questions. here the examples :

  1. Step 1
  2. Step 2
  3. Step 3
  4. Step 4

4. Edge cases

--

--

Abi Farhan

Professional Android Developer, Software Developer. Photography Enthusiast