Jeff Atwood has a really good post titled Don’t Go Dark. I myself sometimes get caught up in things like this. With the exception of code reviews (which I really do enjoy), I have a tendency to clam up when posting my code out for public viewing for things such as open source projects.
Just last night I happened to post a python class I had been working on, it was (and is) nowhere close to being complete. But I did feel as though it had value in it and could be used by other people. I had hopes others would pick it up and improve upon it as well. I reflected on why I believe people would behave this way, and my only insight was to how I felt. My biggest hesitation was not being able to clarify any misunderstandings or to justify why I had written it the way I did and my name would be attached to the code as it stood.
I thought back to a blog post I read over a year ago, I can’t for the life of me remember who posted it. But one of the reason why was to give you a chance to defend yourself on how lousy the code might have been. It might be because of a bug or some user requirement, but since the code will always be there, it is best to document it with explanations on why you did things a certain way (or do not do things).
Performing code reviews, I feel, are extremely important in a developers life. If developers are using the agile principle of pair programming then code reviews are taken place on a daily basis. But all too often developers do not implement pair programming. I have witnessed teams, which even though they profess to use agile principles, are quick to cut out pair programming from their software development.
Maybe this should be a code kata, in that a developer should write up a snippet of code and send out for review amongst their peers.
As I was about to ‘publish’ this post, another similar fear hit me. As I put out my thoughts and opinions on this blog, I am sure that I will get something wrong. But I will always have a way to correct it and publish it out again … hey, that sounds awfully familiar to writing code doesn’t it?