In the article about problem solving in software engineering, i highlighted the major problem solving steps as:-

- Define the problem
- Analyse the problem
- List/Identify alternative solutions
- Select the best solution
- List instructions that lead to the solution using the selected solution
- Evaluate the solution

In this post, i will focus on how to generate alternative solutions.The first solution you are arrive at may not be best of all possible options. It is important that we generate as many alternatives as possible. This will allow us to choose the most effective solution to the problem.

To generate alternative solutions, you can look at the problem in different ways. You are argued to find a new perspective that you have not yet thought about. One technique is to quickly list different solutions including those that do not look viable and then try to eliminate one by one and see where they fail. Try combinations of different parts of solutions.

You can also engage stakeholders. Usually stakeholders see problems from completely different perspectives. If you are a developer, involve users, involve sales people and other stakeholders.

Within the same group, brainstorming sessions tend to generate different solutions. In general, the more alternative solutions at hand, the final solution will be cheaper, elegant and easy to implement

1