Problem Solving & Bug Fixing

Various steps (not necessarily taken in this order or necessarily taken. I am also an avid Dilbert fan)  for:

Problem Solving

  1. Find out what the real problem is (this can take a while)
  2. Fix it. If that does not work, continue with problem solving
  3. Ask co-workers for help and advice
  4. Google the problem, see what solutions are out there (check age of post!!!)
  5. Replicate the problem and try to find solution
  6. Contact social network for solutions or work-arounds
  7. Ask everybody from VP to guy who drives the forklift for input and information
    • Advantages of asking guy who operates forklift
      • More accessible
      • Knows what is actually going on
      • Solutions are less complicated and easier to implement
    • Advantages of asking VP
      • Cannot go wrong with his answer
      • Knows what should be going on
  8. Try something different
  9. outsidethebox

  10. Talk to someone about the problem, not because you need his/her opinion, but you have to organize your thoughts. Talking to the wall works too, but should only be done when you are alone
  11. Going for a walk, coffee or sleeping on it (not while in the office)
  12. Depending on situation coming up with different alternatives
  13. Test solution
  14. Implement
  15. If still no solution, ask a different question, since you probably missed the real problem and have to go back to step 1

Bug fixing

  • Smaller companies
    1. Looking for, finding and fixing bug(s)
    2. Writing new functions/procedures/programs since this can be faster than finding and fixing bugs. Also it gets rid of decade old code
    3. Check back with manager and users and implement
  • Large companies
    1. Spending perhaps many days searching through the code (depends on familiarity with code and the number of includes)
    2. Finding that someone checked programs out of source control
    3. Wait
    4. Check the programs from source control
    5. Make changes to programs
    6. Ask for permission(s)
    7. Create test data
    8. Test program changes, debug, test more
    9. Ask for permission(s)
    10. Check source back
    11. Liaise with QA for testing
    12. Document
    13. Ask for permission(s) and sign off(s)
    14. Initiate to move program changes to production
    15. Document
    16. Document in different documentation systems