Hey guys: Here's an article I wrote on this subject from the Cramsession NetAdmin news: ============================================================ 1) Feature: How to Solve Computer Networking Related Problems ============================================================ Let's face it, our jobs are about solving problems. It you don't like solving problems, you probably shouldn't be working with computers and computer networking. When the day comes when hardware and software are able to solve problems on their own, that will be the day when we need to find something else to do for a living. The good news is that as hardware and software become increasing complex, the higher the probability that something will go wrong, the lower the probability that the hardware or software will be will be able to fix itself and the guarantee that it will be more difficult than ever to determine what the problem is and how to fix it. What methods do you use to solve a new problem? What goes into problem solving problems and what are the prerequisites to solving any problem? I'd break the requirements and methods into the following areas: * Basic understanding of the technologies * The ability to formulate the right question * Knowledge of the available problem solving resources * The ability to use the problem solving resources effectively ----------------------------- Basic Knowledge ----------------------------- You won't even know where to begin if you don't have a basic understanding of the technology. For example, suppose you're an Active Directory expert and you know everything there is to know about Windows 2000 Active Directory. Someone puts an ISA Server 2000 firewall at the edge of your network. Everything is working fine and then Internet access stops. You don't know anything about ISA Server 2000 firewalls. How can you possibly solve the problem? All you know is that "the Internet doesn't work any more". How often have you heard that sort of question? "The Internet doesn't work any more. Why?" or "The Active Directory isn't working right, how can I fix it?" or "the Exchange Server isn't getting mail, I require a solution now". Those are observations, not problem statements. In order to solve a problem, you must have a basic understanding of the technology so that you're able to at least categorize the problem. For example, instead of saying "the Exchange Server doesn't work", you would say "the SMTP service isn't receiving mail from external SMTP servers, but its receiving mail from internal SMTP clients and internal SMTP servers just fine". At this point you've narrowed the problem down to "my Exchange Server isn't receiving mail from external SMTP servers. Don't even try to solve problems with unknown technologies. You're likely to make the problem worse and much more difficult for the next guy to come and fix if you do. ----------------------------- Asking Questions ----------------------------- The second key to effective problem solving is formulating the right questions. Once you've identified the problem, you can formulate a question or series of questions that guide you on your search for answers. For example, suppose you've identified and summarized the problem with the Exchange Server as we have above. You've identified that the Exchange Server is not accepting mail from external SMTP servers. What kind of questions would you ask? * What would cause the Exchange Server to stop receiving mail from external Exchange Servers? * What would stop inbound access for TCP port 25? * Are any other protocols affected, or is it just TCP port 25? * Are any other servers affected by this inbound SMTP problem? * What services need to work properly in order to receive mail from external SMTP servers? * What protocols, other than SMTP, are required to receive mail from external SMTP servers? * Are the SMTP packets arriving at the gateway? Are they arriving to the internal SMTP relay? Are they arriving to the Exchange Server? This is just a small sample of questions that you might ask yourself when trying to solve the problem "external SMTP servers can't send SMTP messages to my Exchange Server". The question asking process serves a very important function. It causes you to focus on the problem and then places you into the *context* of the problem, not just the problem itself. You know problems don't live in isolation, so you first start thinking about "direct causes" (like problems with the Exchange Server itself), and then you consider "indirect" causes (like "what other services are required to get SMTP messages to the Exchange Server?") It would be great if problem solving were as simple as asking and answering the right questions. The big challenge is to ask the right questions, and the right questions might not be the first ones you ask. If problem solving were easy, you could actually use the decision trees in the Resource Kit to solve your Windows problems! <g>. The question asking process engages what you know both consciously and what you know unconsciously. It "engages your brain" and starts both your conscious (the "thinking" process that you're aware of) and the unconscious (the processes that you're not aware of) problem solving facilities to go into action. What's amazing is that the unconscious problem solving mechanisms continue to work even when you're done with consciously thinking about the problem. But you have to "feed" these unconscious processes with a lot of well considered questions. You can set about looking for answers once you have your questions. You'll be able to answer many of the questions using information you already know. For example, you know you can determine if the SMTP packets have arrived at the firewall, SMTP relay and Exchange Server by running a packet sniffer on the interfaces responsible for accepting these messages. Just set up the sniffers and go to an external network client to send a message via an external SMTP server and watch the action. ----------------------------- Problem Solving Resources ----------------------------- Sometimes you'll run up against a wall and need extra help. Where can you go? * Look up the answer in a book * Use a mailing list dedicated to your subject * Use a newsgroup dedicated to your subject * Use a search engine like www.google.com or www.alltheweb.com * Pay a consultant The first method, looking up an answer in a book, is how things used to be done. I think most of us now use books more for entertainment and education more than we use them for problem solving. Book indexes just aren't very good at helping solve problems. A mailing list is a great way to solve problems. The key is figuring out what mailing list to ask the question. The trick is to ask the question correctly. Make sure you do your research first so that you can formulate the question according to the traditions and mores of the group. If you don't, the "list trolls" will shoot you down. Newsgroups are probably the best place to find answers. Just remember that newsgroups share the same burden as mailing lists: you need to formulate your questions correctly or you'll not get an answer or worse, scorn will be poured upon you. The great thing about newsgroups is this is the place the best and brightest hang out. Although not technically newsgroups, you can often find excellent advice on Web boards, such as those you find at http://boards.cramsession.com/boards/default.asp Search engines are the problem solving method of choice among many experienced problem solvers. For example, you can use Google to search not only Web sites, but newsgroups as well. The requirement is to ask the right question by formulating the right query. Putting together good queries is a matter of trial and error combined with experience. And that brings us to the last step: using these problem solving resources effectively. Mailing lists and newsgroups are always a crapshoot because you have to hope someone will take time to think about your problem and know the answer. On the other hand, Google is nice because if you type in the question you often will be able to come up with an answer, even if there is no specific article that contains the precise answer to your questions or problem. ----------------------------- Using a Consultant ----------------------------- Your resource of last resort is the consultant. The consultant is an uber specialist who has insights and knowledge of the subject that's giving your problems. They see things you don't see. However, you have to be sure to pick the right specialist. All specialists consider problems to be nails and they are hammers. If the problem is the "nail" of their specialty, you could end up wasting a lot of money. ----------------------------- Using Google ----------------------------- Let's return to our example and add a twist. During our question asking process, we discovered that the firewall protecting the network is ISA Server. What search string would you use when you get to the Google search page? How about: "isa server" inbound exchange stops Most of the stuff on the first page doesn't look very interesting. Look at the entries on the second and third page. Nothing obvious stick out. However, while reading the results of the Google search, you realize that you forgot about the spam filtering software on the SMTP relay. Google helped you because there were a lot of advertisements for spam filtering software! You check the spam whacker and you realize that your "assistant" had misconfigured the software and it was identifying everything as spam! Problem solved. (BTW -- this was a real life problem). ----------------------------- Conclusion ----------------------------- Problem solving requires basic knowledge, question asking, knowledge of available question answering resources and the ability to use the resources effectively. There's one more thing: practice. The more often you put yourself into problem solving mode, the better you'll get. That's how the "old pro's" are able to seem like magicians when they solve problems. They do it everyday and go through these processes so quickly that they don't expend much energy consciously engaging their problem solving processes. They just kick in! Take some time to help other people with their problems if you don't have enough problems to solve at work. Make a goal to solve 2 or 5 or 10 or 20 problems a day. You'll notice that you'll be able to solve more problems each day as you get better. I hope you you'll benefit from what you've read here and please let me know if you have your own problem solving tips and tricks. Thomas W Shinder, .Net Admin bi-Weekly Editor Co-Author, Configuring ISA Server 2000 http://tinyurl.com/1llp Co-Author, ISA Server and Beyond http://tinyurl.com/1jq1 insider@xxxxxxxxxxx ======= HTH, Tom