Today, I'd like to begin summarizing some points from the book Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability by Ken Pugh. The book is organized as a series of stories that highlight a particular guideline. Each post will focus on a single guideline. Today's is Don't Reinvent the Wheel: look for existing solutions to problems before creating new solutions.
As a developer, I'm as guilty as the next guy of Not Invented Here syndrome but I've come to appreciate the fact that if I'm going to get paid, I need to work on solving the problem and not creating a shiny new tool that I think will help me to solve the problem. Sometimes I can grab an entire product from the open source community and solve the problem but often I have to integrate many pieces together in order to get things done. For me, I tend to gravitate to the Spring portfolio of solutions. I'm comfortable with the programming model and they tend to stay out of my way and let me focus on the problem at hand. Most importantly, they free me up from having to write yet another custom configuration file parser or MVC web framework. The faster I can create a solution the more I stay interested and the happy my boss is.