Thursday, 19 May 2016

I did pair programming with my colleague, do I need a peer code review?

In my opinion the short answer is: yes

Pair Programming is a tool to aid production of an artefact, be it code, a user document, an email, a presentation or some other artefact.

Peer Review is a quality assurance tool or checkpoint in our process. We are checking the output of the production process. Lack of knowledge of the production process is a benefit for Peer Review, however you must understand the problem being solved. It is a clean set of eyes over the problem and the proposed solution.

Pairing and peer review are therefore complimentary and neither one depends on doing the other. It’s a good idea to do both. We know that pairing during production produces less defects. We know that peer review helps catch defects before the customer gets the product.

What pairing means for peer reviews is that we should find less issues and for those issues we find, their solution should be less time consuming. There should be less "returning to the drawing board". But pairing doesn’t mean we should no longer do peer reviews. A good quality process demands a quality checkpoint.

Updated 15th August, 2016

Tuesday, 3 May 2016

Email communication

The single biggest problem in communication is the illusion that it has taken place. George Bernard Shaw

In this post, I propose that email amplifies the illusion of communication and it should be avoided on most occasions.

Reliable communication is one of the biggest challenges of the human race, not alone the software development workplace. Effective communication is as equally dependent on the receiver, as it is on the sender or initiator of the communication.

There are a significant proportion of our engineering fraternity who demand and insist we use email because it's become an integral tool in the office place in the last 25 years. However, contrary to popular opinion, I would like to propose that it has to be one of the worst communication mediums.

In agile we favour Individuals and Interactions over processes and tools, so at an academic level we agree that email is terrible (it's a tool!), but practically day to day, we don't live it.

I see at least the following short comings of email as a medium for communication.

Problems

Feedback: The first problem with email communication is the lack of feedback on the message we deliver. Unless a receiver actually replies, we can only assume they read the message and that they understood it. Generally you only get a swift response to an email when you made an obvious mistake or the receiver strongly disagrees with you!

No tone: Communication is not just what you say, it's also how you say it. The same words said in a certain tone, have completely the opposite meaning (sarcasm). It's very difficult for the reader to detect the tone in an email. All we have is the literal words. However, often the email sender will compose the message as if they are saying it to the receiver, in their head - tone and all.

Mistakes: We easily make mistakes in what we write or type and it's nearly impossible for us to spot our own mistakes.

  • Grammer matters, for intent. A comma missing or inserted incorrectly changes the meaning of a sentence.
  • We can easily leave out a word - this can invert the meaning
  • Fundamentally many of us can't proofread our own mails (Pair email writing?)

Temporal aspect: We can't control when the reader reads the information. With the spoken word we have instant receipt - we can watch the facial reactions of the receiver. With email we assume the reader reads our mail pretty soon after we sent it.

Speed reading: We don't read every word because we quickly read email and loose out on critical detail. Or worse we click on the mail in their mail tool and think they have already read it, but didn't at all.

Volume = Noise: In my experience, the sheer volume of email I receive daily, makes it easy for me to miss important events and information. Some tools help by filtering mails - so you need to know who's "more equal than others" and focus your time reading just those mails. But the large volume magnifies the lack of feedback, the temporal aspect and the need to speed read.

Have you anything good to say about email? It's a great historical record. Most email tools have powerful search facilities. Sometimes this is useful.

Conclusion

If it's important to land your message and it usually is; first talk to some one directly or by phone. Use normal human communication to reach a conclusion and agreement easily and quickly. Then you can follow up with a short email with the decision you agreed so that they can search for it later!