03 Mar 2011. comments
Many software developers have the notion that they can write really great code by working alone. This is an unfortunately common way of thinking in our field. By doing this you miss out on the feedback loops that help you improve yourself and your teammates. Working in isolation is a great way to ensure that anything you are blind to will remain that way, and a great way to miss out on learning about better ways to do things from peers.
When you work alone you tend to build ‘castles in the clouds’ by writing a ton of software to solve problems that “might happen some day”. You don’t practice YAGNI as judiciously as you might with peers to keep you on honest. It’s easy to be tempted to write code that isn’t necessary right now because we’re trained to think about how our software might be used in the future.
A lot of developers also love to refactor code until “it’s perfect”. But it takes experience to realize that you’re never going to get to that perfection and shipping is often more important with the minimal amount of code necessary to solve the problem so that you can get feedback and iterate on a product. If you work in isolation you don’t have someone to help you identify when you’ve passed that point.
Code reviews are critical. You need code reviews in some form or another. Sometimes this can be pair programming (even if it’s informal), or comments on a pull-request. You aren’t perfect and not having a your code reviewed is basically accepting that your code will be broken some of the time. Your peers will also have ideas and perspectives that you haven’t considered.
Don’t go it alone.