### Problem Definition

This is a precise and concise definition of a problem stating what needs to happen to transform from the current state of things to the desired future state. The problem definition should address the inputs to the problem and the desired outcome.

### Problem Analysis

We determine:

__Input__

- what data needs to be recorded/managed by our solution;

__Processing__

- What events need to occur during the use of the solution,
- the rules for manipulating/processing the data in our solution;

__Output__

- and what data and files our solution needs to deliver to the end user and save for future use.

### Identify and evaluate possible solutions

Multiple approaches may be used to solve the problem, thus many solutions may be generated.

### Identify and evaluate possible solutions

Multiple approaches may be used to solve the problem, thus many solutions may be generated. Each solution’s comparative strength and weakness is documented at this point.

### Select and justify the optimal solutions;

Of all solutions generated, we select the one which is most optimal and best suited to solve the problem.

The optimal solution is chosen based on criteria which point to the most efficient solution based on speed, storage capacity and generally how good the solution is suited against the problem statement/definition.

A detailed algorithm of the best solution is the output of the process.

### Implementation and review

**Implementation:** The algorithm is implemented in code and placed in the environment of its intended and made accessible to users.

Review : To determine any unforeseen issues:

- The implementation is observed in its environment.
- Feedback is elicited from users.

After the initial review phase, any major issues are fixed.

We compare our solution back to our original problem statement to verify the problem has indeed been solved.

Implementation Review then continues in the form of maintenance where additional feedback is gathered to improve the solution which is implemented at a reasonable future date.

### Summary

Problem definition – A concise definition of the problem is made which decribes what the future solution should do

problem analysis – determine all details that are needed to solve the problem, e.g processes, procedures, data etc.

Identify and evaluate possible solutions – generate many solutions and learn each solutions strength and weaknesses compared to each other.

Select and justify the optimal solutions – choose the optimal solution based on criteria which point to the most efficient solution based on speed and storage capacity.

Implementation and review – the solution is created and reviewed to determine any issues that prevents it from solving the problem. The issues, if any are fixed so that the problem is now completely solved.

© 2020 Vedesh Kungebeharry. All rights reserved.