Peer Review at Home

The benefits of peer review are well known, and this has led me into a difficult situation. As an employee for a large organization, doing peer reviews is a normal part of the job, and it is fairly easy to locate a willing coworker to do a peer review. Process exists for this, documentation is standardized, and the benefits are reaped.

Working at home, however, presents some problems. For one, finding someone to execute a peer review is difficult, since there is no one else around who understands the concepts to be reviewed. Additionally, without creating an organizational structure to the contracts accepted, it is easy to fall into the trap of bypassing the process when inconvenient. The benefits, too, are more difficult to realize, since there is only one level of testing before the program reaches the client. While this means the benefits are greater (the peer review will reduce the number of bugs to reach the client), since the person performing the review is unfamiliar with the work, they are unlikely to detect as many potential bugs as someone who is familiar with the code.

I would be interested to know if anyone has found a good solution to this. How do you find someone to do a code review on custom code you wrote on your own? How do you ensure that you do not bypass your own process, beyond a measure of personal discipline?

Working at home

I recently took on a few contracts which I work on at home. With a wife and baby in a two-bedroom apartment, this turned out to not be a very good idea, but was, in fact, the best of the alternatives. Through my ISP, I do have internet access at one of the local coffee chains, which means I could choose to work away from home for the cost of an occassional cup of coffee. As well, there would likely be fewer distractions at the coffee shop then there would be at home.

However, I chose to work at home for a few reasons. For one, considering that I work full-time during the day, this means I have little time to spend with my daughter, and working at home allows me to interact with her as much as possible. As well, my schedule does not get tied to the coffee shop’s hours, which can be problematic when you need to work until 3AM for several consecutive nights. This also, of course, saved me the few dollars for the occasional cup of coffee.

However, my fears of distraction at home proved to be accurate. When my daughter was awake, I was unlikely to be able to spend more than about 30 minutes working at a time. As well, since I was at home, my wife could, although she did avoid doing this as I got closer to the various deadlines, call me away from my work to help her. Because the size of the apartment is not large, I was unable to seclude myself somewhere to avoid these distractions.

On the next contracts I accept, however, I think my approach to work would remain unchanged. Working at home to spend time with the family is important to me. Although I don’t consider the time spent working to be quality family time, I was around the family, and I believe it is the constant presence that prevents the father from becoming a stranger to his own children. This is something I would like to avoid. Were I to come home for dinner, then leave to spend several hours at the coffee shop working, return to sleep, and then leave first thing in the morning, I am sure that within a very short time my daughter would treat me as a stranger, and my wife would certainly be unhappy about my commitments to the family.

The occasional contracts are important for the extra cash flow they provide, as well as opportunity to network and learn new technologies in a less structured environment than at a full-time salaried job. For these reasons I will continue to accept contracts on a regular basis. However, to remain available to the family, I have and will continue to be selective about the contracts that I accept. I have outlined my general personal requirements for contracts that I would be willing to accept below.

  • Contracts requiring a regular weekly commitment exceeding 15 hours are unlikely to be accepted, although I have made the occassional exception. My daily schedule, once worked out in detail, leaves me with less than 30 hours per week, not including recreation time. If I spend more than half of that working, I suspect I will burn out. The upside of this is that if I do choose to take a contract, I am already sure I can and will commit the time needed to complete the work.
  • Contracts which include long-term maintenance are going to be avoided. While I do stand behind my own work, and will fix bugs in any code I write, my goal is not the acquisition of a large number of maintenance contracts. I prefer to work on a project for a predetermined amount of time, and then move on.
  • Before I accept a contract from anyone, I prefer a personal reference from someone I know. The reason for this is actually quite simple. Having worked for several people and organizations, it has become clear that some people are better to work for than others. By speaking to someone who knows you, I can find out if you are likely to be an ideal client: one who knows their requirements from the start, who pays on time, and who can be reached easily for any issues.

If you have some work which you think I may be suited for, and you believe you can meet at least the first two of the three requirements above, please contact me. Visit my about page for information about who I am and what I do, as well as for information on how to reach me.

Hello world. This my website!

Hello world. This my website!