Hey @ anyone who is reading,
I wanted to share the following write-up that's also posted @ . This could be converted into a training workshop and that's why I'm sharing this 'content'.
Principles of Troubleshooting for Software Engineers
During the time that I was a trainer in a large software company, I felt that there just wasn't enough discussion about the principles of troubleshooting. There were hundreds of software engineers in that company and most of them did not approach the task of troubleshooting certain types of software and software applications in an informed way.
I don't blame anyone for this. I think it's just a case of a lack of focus. The purpose of this write-up is to faciliate that focus.
Software engineers would be informed and aware if the principles of troubleshooting were articulated clearly. HR folk, project managers and line of business heads need to be on the same page. The humane element of the job that software engineers must be expressed and emphasized.
If I had to list the key principles of troubleshooting, here's what I'd say:
1. We must make every possible attempt to solve the problem being faced by the client -- and that includes the use of conventional and creative methods.
2. We should replicate the problem being faced by the client at our end.
3. It shouldn't really matter if the client is rude or offensive unless the client is being excessively rude and offensive.
4. Our personal and other professional problems must not matter either.
5. After we have made every effort to solve the problem and failed, we must not disguise our failure with vague words or justifications.
6. We should meticulously document the solutions we've found for future reference.
7. We should allow ourselves to feel satisfied if we've solved a problem but we should not allow ourselves to become arrogant.
8. We should meticulously document the problems we've not been able to solve.
9. We should remember the problems we've not been able to solve but not be burdened by our failures. It's okay to be a human being who has human limitations.
10. Throughout our career, we should make every possible attempt to not get enraged. Rage is the enemy of effective troubleshooting.
However, please know that this is just a first draft. This is just the perspective of a trainer. What is needed is a discussion. HR folk, trainers, project managers and business heads need to sit down and discuss how to add to this outline.
We can't expect software engineers to pursue excellence and perform brilliantly all the time unless we empower them with a detailed job description. People who know exactly what their job entails are motivated to the point of being inspired. I did come across some truly exceptional people in the company where I worked but there was no one there who was interested in tapping into the genius that those people embodied. It's time all of us did what we could to change that.
-- just another trainer