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

Photo by Kaleidico on Unsplash

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

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

·

5 min read

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?

Okay 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 prevent the repetition of developing code or functionalities that are already available.

  • Write compatible code

    Consider naming conventions, file organization, and logical placement when writing code to ensure compliance with the project's standards.

  • Maximizing productivity by avoiding sub-optimal solutions.

    Prioritizing the timely implementation of optimal solutions over exploring and testing various alternatives.

  • Preventing the discovery of ineffective solutions in the future.

    This can occur when certain aspects of the problem are overlooked during the planning phase. To ensure applicability and account for all test cases, it's important to thoroughly plan and consider all relevant factors.

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.

  2. 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

    Consider aspects such as the exception handling mechanism, integrated data operations, and relevant functions that may be utilized in your code. Ensure that parameters are added and default values are set to avoid encountering Null Pointer Exceptions.

  2. Code you can learn from or use.

    Consider looking for functions or methods that are similar or relevant to the task at hand, as they may provide valuable insights and inspiration for adapting to your specific needs.

  3. Coding standards

    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 instance, if you aim to store and retrieve images from the server using URL links, a reliable and professional solution is to leverage Firebase Storage. This robust platform offers a free plan that guarantees the seamless cloud-based storage and accessibility of your image data.

2. Which solution is optimal and why?

When it comes to the critical task of fetching and storing data, project teams have a range of options available to them, including Real-Time Databases, Cloud Firestore, and MongoDB, among others. It is paramount to assess and compare each solution based on several vital factors, such as scalability, cost-effectiveness, security, and ease of implementation, to determine the optimal fit for the project's specific needs.

Selecting the most suitable solution involves carefully weighing several essential options, such as cost, performance, forward compatibility, simplicity, security, completeness (the ability to handle all cases), coding standards and conventions compatibility, and many others. Through a meticulous evaluation of these critical factors, project teams can make a well-informed decision that aligns with their project objectives and delivers the desired outcomes.

It's important to acknowledge that there's no universal solution or magic formula to determine the superiority of one approach over the other. Thus, it's imperative to validate the applicability of any proposed solution by implementing a Proof of Concept (POC) on the problematic part of the solution.

For example, in the context of a table UI, if you're utilizing a custom code for computing coffee prices, it's essential to create a test or evaluate the code manually. This process of testing ensures the solution's reliability and effectiveness in practical use.

By adopting this thorough approach, you can increase the solidity of your solution while minimizing the likelihood of unforeseen issues.

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 / Pseudocode

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

  1. Step 1

  2. Step 2

    1. Step 2.1

    2. Step 2.2

    3. Step 2.3

  3. Step 3

  4. So on and so fort

4. Edge cases

ScenarioHandling
The list of prices of more than oneCalculated all of the elements in the list
The list of prices is just oneJust return the first index