1 / 36

Problem Solving

Problem Solving. A Critical Skill for the Construction Phase of Software Development. Introduction. This lecture will look briefly at Decision Making Problem Solving Process These are critical skills in software development that are often neglected in concept based courses.

shamara
Download Presentation

Problem Solving

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Problem Solving A Critical Skill for the Construction Phase of Software Development

  2. Introduction • This lecture will look briefly at • Decision Making • Problem Solving • Process • These are critical skills in software development that are often neglected in concept based courses. Copyrght 2001 George Blank

  3. Definition: Decision Making • Decision Making is choosing between alternative courses of action Copyrght 2001 George Blank

  4. Definition: Problem Solving • Problem Solving is identifying and correcting deviations between what you wanted to happen and what actually happened. • In simple terms, it is explaining the difference between what you wanted and what you got. Copyrght 2001 George Blank

  5. Definition: Process • Process is approaching problems and tasks in a standardized way. • Process is mainly about avoiding undesired outcomes. (Don’t repeat your mistakes!) Copyrght 2001 George Blank

  6. Tying them together • Unless we take pains to do every step differently every time, our software development methodology is a process. It may be a good process or a bad process. • The key activity during requirements, analysis and design is decision making. • The key activity during construction is problem solving. (This course is mostly construction.) Copyrght 2001 George Blank

  7. Why Decision Making? • One of the skills that you will be expected to develop in this course is the selection of appropriate configurations and middleware for Client Server computing. • Since you will have taken the course, you may be the logical person in your organization to make recommendations for a project. Copyrght 2001 George Blank

  8. Decision Making Process • There is a best way to do decision making: • Define the question • Identify Alternatives • Evaluate Alternatives • Select an Alternative • Manage Risk • Implement the Alternative Copyrght 2001 George Blank

  9. Define the question • “If you don’t know where you are going, all roads are the same.” • The first step in Decision Making is clearly stating your goal, usually in a simple, clear sentence. • This is usually called a “Decision Statement” Copyrght 2001 George Blank

  10. Identify Alternatives • Once you know what you want to do, you have to think of ways to accomplish that. This may involve research, brainstorming, consultation with experts, sending out requests for proposals, looking at other projects or many other activities. • You should continue to look for alternatives until you are sure that you have some good ones. Copyrght 2001 George Blank

  11. Evaluate Alternatives • To evaluate alternatives, look at your Decision Statement. Then generate lists of characteristics that are necessary (“Must Haves”) and desirable (“Wants”) to meet your goals. • Compare each of your alternatives against the lists of “Musts” and “Wants”. Copyrght 2001 George Blank

  12. Mandatory Characteristics • If a decision alternative does not meet one of your “Must Haves,” it is not a valid alternative, and cannot be selected. • For example, if your goal is to get a Master of Science degree from an accredited University, NJIT is a valid alternative. Joe’s Barber College is not a valid alternative. Eliminate it from your list. Copyrght 2001 George Blank

  13. Optional Characteristics • Your decision alternative will meet different wants to different degrees. A good way to evaluate them is to rank your “Wants” from most important to least important, and score each alternative against each “Want”. • You could assign weights to each “Want” and quantitatively evaluate each Alternative, or you could do it less formally. Copyrght 2001 George Blank

  14. Optional Characteristics (2) • For example, my wife and I wanted to go somewhere during Spring break. We wanted to spend less than $1000, and go somewhere we haven’t been before. I prefer to take my vacations in Europe. • We found a fare of $500 for two people on Icelandair, and then had to choose between London, Rekyavik, Copenhagen, Stockholm and Amsterdam. Copyrght 2001 George Blank

  15. Select an Alternative • Once you have eliminated alternatives that fail to meet one or more of your “Musts,” and rated the rest of your alternatives against your wants, you select the best alternative. • My wife and I chose Copenhagen, because we haven’t been there, and it was a good choice for a short visit in early Spring. Copyrght 2001 George Blank

  16. Manage Risk • Once you have a tentative decision, you make a potential problem analysis and ask what could go wrong. Based on this, you might decide to select a different alternative, or take steps to minimize the risks. • For example, Copenhagen has a very high rate of property theft. We did not take any valuables. Copyrght 2001 George Blank

  17. Implement the Alternative • Finally, you put the selected alternative into action, following your risk plan. • My wife and I enjoyed our vacation in Copenhagen, but we left our best cameras behind. Copyrght 2001 George Blank

  18. Problem Solving • Decision Making focuses on selecting an alternative before you do something. Problem Solving focuses on things that go wrong while you are doing something. • Since problem solving is concerned with the difference between what you wanted and what you got, it concentrates on finding the deviation. This can be looked at graphically. Copyrght 2001 George Blank

  19. Actual Goal Begin Point ofDeviation Deviation You begin with a specific goal in mind You get a different result You find the deviation You analyze and correct the deviation Copyrght 2001 George Blank

  20. Deviation Analysis • To analyze a candidate defect, ask: • Does it explain the deviation? • Does it explain the timing of the deviation? • If the answer to either of these questions is NO, that is not the defect. • If both answers are YES, that may be the defect. • If either answer is UNKNOWN, investigate further. Copyrght 2001 George Blank

  21. Explain the full problem • I cannot overstress the importance of asking if the candidate defect explains the whole problem. A partial explanation is not enough. Copyrght 2001 George Blank

  22. Logging • When I was writing business solutions (custom software), I always put a logging function in my my software, such as storing every procedure call with its parameters in a file. Sometimes I included the ability to turn this on or off, but it was always there. It was the most valuable support tool I had. That is how I found my deviations. Copyrght 2001 George Blank

  23. Defects • Defects are not random “Acts of God.” • Software defects are context sensitive. They usually occur when the machine is in a particular state and receives a specific request. Analysis of the timing can reveal the state and the request. • The two questions help eliminate time wasted looking at things that are not defects. Copyrght 2001 George Blank

  24. Eliminate Defects • Once you have a candidate defect that meets both criteria, correct that defect and determine whether that solves the problem. If it does not, repeat the process. • Software engineers are notorious for hoping a problem will go away without making a change. Copyrght 2001 George Blank

  25. Brake Problem • A Manager is driving a Software Engineer and a Hardware Engineer down a steep hill when the brakes fail. By steering the car off the road and up an embankment through some heavy brush, the Manager manages to get the car stopped without killing them. Copyrght 2001 George Blank

  26. Solutions The manager says; “One of us will have to go for help!” The Hardware Engineer crawls under the car and says; “Let me check the brakes.” The Software Engineer says; “Lets get back in and see if it happens again.” Copyrght 2001 George Blank

  27. Relevance to this course • Client/Server programming largely concentrates on the construction phase. The principal activity is problem solving. If you expect the examples in this course to go smoothly, you will not be prepared for the real world. Copyrght 2001 George Blank

  28. Documenting a Problem • If you are going to answer the question, “Does this potential defect explain the problem?,” you are going to have to gather information. That is why I require so much documentation with your projects, and concentrate mainly on your environment and the problems encountered. It is also why I expect you to solve your problems. Copyrght 2001 George Blank

  29. The Nature of C/S Problems • Problems during Client/Server development are usually either problems understanding the middleware or problems getting different components to work together. This ignores simple mistakes, which are also common. We all make stupid mistakes, which is why we invented code inspections, and why we work in teams. Copyrght 2001 George Blank

  30. Problems in Assignments • Figuring out how to use compiler and link options and configure the environment and middleware is not an incidental obstacle to completing the assignments. It is the whole point of the assignments. • Real world software development is more about problem solving than programming. Copyrght 2001 George Blank

  31. What if you can’t do it? • We are looking at many technologies in this course, and don’t have the time to ensure that everyone has success in every environment on every example. • Document how far you got, and how you dealt with your problems, and you will get partial credit. Since there are several assignments, a few problems will have only a minor grade effect. Copyrght 2001 George Blank

  32. Specific Problem Solving Skills • The problem solving skills required in the business world are deviation analysis, documenting and explaining defects, researching documentation, and consulting with colleagues to solve problems. We will practice all of them in this course. Copyrght 2001 George Blank

  33. Process • If you make the same mistake frequently, there is a problem with your process. Don’t just fix the problem: fix the process. • A manager’s main job is fixing processes. • The following slide hung on the wall of my office: Copyrght 2001 George Blank

  34. Fix the ProblemThen Fix the ProcessDon’t Fix the Blame Copyrght 2001 George Blank

  35. A Simple Example • A program that I use has a lot of dialog boxes. Some of them have positive answers on the right and negative ones on the left. Some are reversed. Some of them put positive answers in the middle. • That is a bad process that guarantees frequent mistakes. Copyrght 2001 George Blank

  36. Reference • Charles H. Kepner, The New Rational Manager, Princeton Research Press, 1981 ISBN 0936231017 Copyrght 2001 George Blank

More Related