Various steps (not necessarily taken in this order or necessarily taken. I am also an avid Dilbert fan) for:
Problem Solving
- Find out what the real problem is (this can take a while)
- Fix it. If that does not work, continue with problem solving
- Ask co-workers for help and advice
- Google the problem, see what solutions are out there (check age of post!!!)
- Replicate the problem and try to find solution
- Contact social network for solutions or work-arounds
- 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
- Advantages of asking guy who operates forklift
- Try something different
- 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
- Going for a walk, coffee or sleeping on it (not while in the office)
- Depending on situation coming up with different alternatives
- Test solution
- Implement
- 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
- Looking for, finding and fixing bug(s)
- Writing new functions/procedures/programs since this can be faster than finding and fixing bugs. Also it gets rid of decade old code
- Check back with manager and users and implement
- Large companies
- Spending perhaps many days searching through the code (depends on familiarity with code and the number of includes)
- Finding that someone checked programs out of source control
- Wait
- Check the programs from source control
- Make changes to programs
- Ask for permission(s)
- Create test data
- Test program changes, debug, test more
- Ask for permission(s)
- Check source back
- Liaise with QA for testing
- Document
- Ask for permission(s) and sign off(s)
- Initiate to move program changes to production
- Document
- Document in different documentation systems