A problem well stated is a problem half solved.” -Charles F. Kettering, American engineer and inventor
Andy Harris is a senior lecturer in the Department of Computer and Information Science at Indiana University/Purdue University Indianapolis (IUPUI) and has written many books on programming. He was one of my professors at IUPUI and is responsible for developing STAIR, an acronym for a general problem-solving strategy. While originally developed for computer programmers, this same strategy can be used for solving a problem, finding a job, or starting a new business.
I’ve written about STAIR before in the Business Analyst Glossary of Terms, but here it is again in more detail below. I’ve quoted the original content, but condensed it for clarity:
- S – State the Problem – “Take the time to describe carefully to yourself what you are trying to accomplish…Some problems are best described with sketches or other tools (like flowcharts and data diagrams)”.
- T – Tools for the Job – “A tool might be a command, a button on a toolbar, a selection on a drop-down menu, a strategy, a program, or something else, depending on the kind of job…and the context.”
- A – Algorithm Development – “An algorithm is…a strategy or plan of action….[that uses the] tools from the previous step…[and determines] how those tools will be used to solve the problem.”
- I – Implementation of the Algorithm – “The actual process of translating our human thought into something the computer can understand…Implementation can mean ‘just do it’.”
- R – Refinement – “It is normal…to attempt a solution several times before the problem is solved. A skilled problem solver will analyze what happened, review the other steps, and try again.”
State the Problem
Is there a way to use STAIR to analyze a person, job, or business? I’m currently taking the Coursera course, Foundations of Business Strategy, which is meant to, “develop your ability to think strategically by providing you the tools for conducting a strategic analysis.” Could identifying the problem, what tools you have, and your proposed method to to solve it be used in the business analysis process?
Tools for the Job
As a IT business analyst I have a specific skill set, background, and experience level that is different from a doctor, lawyer, or programmer. There is a limited amount of jobs I can take and businesses that I can create. Harris states, “Knowing the capabilities of…computer applications…[is one of] the main ways you add new tools to your toolbox…As you gain experience, you will constantly be adding new tools.”
Algorithm is just a fancy word for a set of well-defined instructions for carrying out a particular task. In other words, it’s like a process. This is different from a heuristic, which is a technique that helps you look for an answer. A heuristic tells you only how to look, not what to find. In this way, STAIR itself is a heuristic that contains an algorithm as Harris notes, “The process is the same regardless of the complexity of the problem.”
Implementation of the Algorithm
This is where you “do the work” and start processing the algorithm using the tools in order to solve the stated problem. The process would include making a list of all skills, education, experience, equipment, connections, and clients a person has. The next step would be to compare this list to job and business requirements to look for best-fit. When this process is complete, a list of jobs and business ideas is created.
Harris says, “We like to think if we learn a skill and prepare ourselves properly, we can solve a problem on the first attempt. Experience shows us this is not usually the case.” The result of the comparison was highly limited to the brainstorming process and what Google Search results provided. As a result the list was far from extensive or complete and the algorithm steps should be reviewed for a better way.
Each unsuccessful attempt should bring you closer to an understanding of the problem and its solution. Refinement usually means going back and looking at the previous steps critically. Ask yourself if you really defined the problem properly. If so, have you used all the possible tools at your disposal? Are you sure there is not a tool available that you have overlooked? Did you choose the best algorithm for the job? Did you implement the solution properly? (You would be amazed at the number of computer errors that are the result of simple typing or spelling errors!) Again, you will find that practice will make you much more confident at this critical stage of the process.”
Begin With the End in Mind
I know enough about myself to know that the jobs and businesses I’m able to do and start right now are not the ones I want to be doing or running in the future. I also know that I don’t currently have the skillset to do them. I believe that programming is an essential skill for the types of jobs and companies that I want to have so that is why I am learning how to use Ruby on Rails. Like Andy Harris said, “If you don’t know where you are trying to go, how will you know when you get there?”