Archive for January, 2014

Debugging Tip: Take Notes

January 10, 2014 Leave a comment

I am amazed the number of times I enter a situation where I am asked to help and no information has been recorded. Of course my head is clear and I know that when I am in the moment it is easy to forget this simple step. The following ideas can help you take full advantage of taking notes while solving complicated problems.

Use paper and a pen or pencil

Typing notes is not enough. When you are facing tough problems you need to harness all of the brain power you can. Hard problems need “all hands on deck”. The physical act of using a pen or pencil is going to engage parts of your brain that would not normally be used for the process at hand. Is your hand writing terrible? Great, write slower in a more deliberate fashion. The extra time will give your brain the cycles it needs to process the problem at hand.

Put a date and time on notes

You are keeping a record of your thought process, and records are more valuable when they can be kept in order. For large records, dates also serve as mental markers allowing you to do a “binary search” back through your thought process.

Make a hypothesis, then note whether it was proved or disproved

When solving a problem you need to make an assertion and conduct an experiment to prove or disprove it. This is especially true for extended debug sessions. Tiredness and desperation will often cause one to loop back on assertions that have already been vetted.

Assume others will get involved

When we first start tackling a problem it is safe to say that it will often be resolved quickly. But it is when we unearth larger problems that it may be time to call in reinforcements. Already having a set of notes is ideal, but one can also begin to summarize findings at the first sign a bigger problem is at hand. Notes serve the practical function of transferring knowledge without repeating the same experiment set.problem.

Periodically reread your notes, out load

This returns to the idea that some problems require all of the brain power you can muster. Speech engages parts of the brain that usually lie dormant while the developer is lost in quiet contemplative thought.

Draw pictures about what is happening

Drawing is going to further exercise new parts of the brain.


How to Win Friends and Influence People Notes

January 10, 2014 Leave a comment

As an engineer I find it relatively easy to absorb large amounts of technical material. Books that would put other people to sleep keep me awake and reveal technical secrets that allow me to craft great systems and work a profitable, satisfying career. But like other engineers, while I find my self doubling up on technical material and glazing over “soft skills”

One of those skills is how to win people to your cause. How to Win Friends and Influence People is a classic text by Dale Carnegie that gives a variety of anecdotes and simple advice to improve interpersonal relationships. This posts serves as a condensed collection of some of the points that rang most clear to my own heart and experience.

“If you want to gather honey, don’t kick over the beehive”

“Criticism is futile because it puts a person on the defensive and usually makes him strive to justify himself. Criticism is dangerous, because it wounds a person’s precious pride, hurts his sense of importance, and arouses resentment.”
As a programmer I must at times be maniacally concerned with the correctness of my work. Mistakes large and small can cause software to crash and people to be unhappy with my creation. But this same attention to detail can’t carry over into relationships. As the old cliche goes, one has to “pick your battles”. It is critical to let some things go. We forget that someone was once patient with us and waited and coached us through our mistakes. There was a time in each of our lives where we struggled to speak, write and read. Why should other moments in our life not follow the same pattern?
“I don’t see how I could have done any differently from what I have.”
I have heard variations of this statement time and time again. My first impulse is anger, “How could you not know?” But if we step back for a moment,  we can consider that this very well could be the case. Perhaps the individual really did try their best with the information at hand. With this understanding we can move past the problem and consider the solution. What information can be added to prevent future problems? Problems are obvious. Hang around most young children for an extended period of time. They will eventually call out obvious problems like being bored, tired or hungry. As adults we are often experiencing the same things, we are just not screaming about it while rolling on the floor. Solutions on the other hand are more difficult. A person that can focus on the solution will be a valuable ally. Be that person.
“When dealing with people, let us remember we are not dealing with creatures of logic. We are dealing with creatures of emotion, creatures bristling with prejudices and motivated by pride and vanity”
This statement perhaps highlights the greatest challenge that engineers face in being effective communicators: People have emotions. Logic is simply not enough to convey the message.
“Any fool can criticize, condemn and complain and most fools do. But it takes character and self-control to be under-standing and forgiving.”
To Be Continued….