Hey
A few years ago, I would hang out in C++ and C# channels on IRC. I went there to learn from other people’s questions or from my own questions. Sometimes, I could even answer people’s questions. The culture of the channel meant that answers would normally be just enough to set people on the right track rather than postulating one’s own knowledge. So for instance, if someone wanted to know what the name of the function first called is, we’d say, take a look at “main” rather than giving them the whole rundown; of course, my illustration is for C++.
One thing I’d often find is people coming in tired and stressed. Very often, people would beg for answers saying, “Please help me, I’ve been working on this problem for 6 hours! It’s 2 AM and I need to get to sleep!” The answers were consistent from the IRC channel: “No. Go to sleep and work on it in the morning. If you still can’t get it working then we’ll help you.” This was the best possible answer the channel could ever provide; people eventually got the message and went to bed. Invariably, the next day the same people would come back in to the IRC channel and say, “Guess what! This morning I figured it out in 20 minutes!”
The interesting thing in all of this is that somehow, the channel knew people would find the solution themselves the next morning. You see, they understood a fundimental rule in software development:
People solve more problems and create less new problems when they get their sleep and feel comfortable with their workload.
This is an important thing to remember: software is an intellectual pursuit. Without sleep and rest, people will not perform anywhere near as well as what they would normally!
So, how does this affect quality? Well, as you would imagine, you get more defects, more defects are intermittant, and the general quality of builds goes down.
When testing, we need to be aware of these factors. They have an impact on the quality we should expect.
Kind Regards
Glenn