Developing a software solution to solve an issue within an organization is not an easy task. There are many different approaches to developing the correct software solution; it is entirely dependent on the problem as to how it is solved. Each approach to solving the problem always starts with a clear definition. Without a clear definition of the problem, a custom software solution may not be the best fit, nor address the true cause. But how do you clearly define an issue for somebody outside of your organization? Here are the three questions that need to be answered to form a well defined problem;
What is the problem?
While this may seem like an obvious starting place, it is an important kick off point. To answer this question, the issue must be defined externally of the personnel it affects, and away from any emotional issues the problem may have been causing in the workplace. The problem must be summarized as a basic point so that there is a clear direction, skillset, and realm involved in creating the custom software solution. This ensures that the software solution proposed will actually address the problem.
What does the problem affect?
By looking at the reach of the problem, you begin to understand how the problem operates outside of your perception. The problem could be affecting the work flow in you department, which then causes errors for another department. Completely mapping the extent of the issue is incredibly important, as it helps develop the features and user capabilities needed in the software solution. This mapping of the problem also gives you a key idea of who should be involved in the solution generation process, in addition to who would benefit from the solution the most. Discovering these stakeholders will help facilitate the design, and eventual implementation of the software solution, as their auxiliary needs can be addressed immediately.
This question also helps continually define the answer to question number one. What you find when you look at the reach of the problem could change exactly where the problem is, or even what the problem is.
Why should the problem be solved?
This question unlocks the motivation behind finding a software solution for the issue. It is often easy to see that there is a problem, but solving a problem is not always worth it. This worth and value can be determined in a myriad of manners, including monetary value, time value, or even by a measured ability for the organization to achieve goals in the future. Without this exploration of the impact of any posed solution, it will be hard to accept the change that a software solution would bring to a workflow.
This question also provides an idea of future evolutions or changes that may need to be made to the software solution to ensure it is still fitting the needs of the company on a long-term scale. A software solution should not be a temporary patch, and instead be agile and scalable to meet the future needs of your organization. By looking at the value of solving a problem today, this gives the motivation and capability to achieve in the long-run.