At CodingHorror.com, Nathan Bowers wrote an interesting article about the importance of quantity over quality when you're crafting code:
The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the "quantity" group: fifty pound of pots rated an "A", forty pounds a "B", and so on. Those being graded on "quality", however, needed to produce only one pot - albeit a perfect one - to get an "A".
Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the "quantity" group was busily churning out piles of work - and learning from their mistakes - the "quality" group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay. - From Art & Fear
Bowers draws the conclusion that in order to produce better code, one must produce more code. This supports the old saying, "Practice makes perfect." It's hard for most programmers, being of such a detail-oriented mindset, to stop picking at details to create bug-free code efficiently. A great place to start is to take Bowers' advice and start programming more often to become better at what you do. This means taking on side projects in your spare time or at work to really hone your skills.
Sometimes even a well-practiced developer can experience inefficiencies. If you're starting to feel like a little bogged down with your backlog of work and you're getting in all the coding you can, it may be time to explore other things you can do to eliminate that backlog by becoming a power programmer.
Maintenance backlog can be frustrating for a savvy developer focused on efficiency. If you're running into issues with code that was created before you arrived on the scene, try not to get frustrated. If you think of programming like driving, it's easy to see that everyone drives their car differently and uses different routes to get to their destination. Backlog amassed from other developers is just part of the trade and in order to be most efficient at debugging and fixing errors in the code of those before you, you must be patient, diligent and take your time to find the best solution. Sometimes being a power coder is learning when to slow down and analyze the work in front of you.
If you feel like you're spending a lot of time fixing errors and bugs, it might be time to check out your maintenance logs. If you're already a great coder, you won't have a significant amount of bug fixes from your own code in your logs and likely should look into other ways to enhance your skills. If you do seem to be spending a significant amount of time fixing your own bugs and code errors, then you have room to improve and could likely benefit from more practice or education in the language that you write.
Becoming a power programmer might be as simple as hanging out with other experienced software developers. Pairing up with another programmer will help you to see how they do things differently in order to best understand inefficiencies or differences in techniques. If your company hasn't already implemented the Pair Programming technique, you might want to take it upon yourself to introduce the concept to management. This allows one programmer to write the code while the other navigates and observes. Roles can be switched frequently, allowing both software developers to collaborate on strategic direction, swap ideas on improvements or brainstorm potential future issues. According to a 2013 study by IEEE Software, 95% of programmers surveyed said they were more confident in their solutions when they pair programmed.
No one wakes up and says, "I want to be really mediocre." Everyone wants to be great at what they do. Being great in your profession can bring you a higher salary, make you feel more fulfilled in your career and eliminate stress in the workplace. It's hard to feel fulfilled as a software developer when you're buried under a constant barrage of change requests, improvements and bugs. Add to that dealing with another developer's maintenance backlog and you're sure to get a little frustrated. Whether your goal is to become more efficient at programming in Java, mastering mainframe development or to become a little bit savvier in the world of Unix and Linux, these tactics are a great start to helping you improve.
Ready to improve now? Expose yourself to new development platforms and languages and consider taking some of our suggested introductory courses to sharpen your skills. Lily Tomlin said it well, "The road to success is always under construction." If you're taking the time that you need in order to improve your skills and be a better programmer, you'll find that becoming a more efficient, power programmer will come in time.