What is Developer Efficiency? what makes one developer more efficient than another? is it just experience? or is there some things we can do to make ourselves more efficient?
I’ve been developing software for about 30 years now, and over the years I must have written the same code thousands of times, over and over again, and I bet I’m not alone. Boilerplate code, authentication, IO routines, data access, validations, data binding, messaging, css layouts … sure, they may vary from project to project, but many times the variation is slight. When I think about how much of my life as a developer has been spent typing keystrokes that I’ve done so many times in the past, it makes me think that there must be a better way, some way to be more ‘efficient’ as a developer. I want to spend the vast majority of my time writing code that is specific to the problem at hand.
We all know that there are helpers out there .. project templates, scaffolding tools, snippets, etc. And we use them, in varying degrees, to cut down on the repetitive nature of writing software. How many of you use the in-the-box project and item templates that come with Visual Studio, and the first thing you do when creating a new project is to make the same changes over and over to the project to bring it in line with your personal style? How many of us take the time to extend those helpers, to write our own templates, our own scaffolders, our own snippets? We each have our own style. We may follow the same best practices, but the art of crafting software is a very personal activity.
By creating and customizing our own helpers, we can be more efficient, we can spend less time getting started and more time in the domain specific code of the problem at hand. And, this is not just for individual developers, if you work for a small company or a large enterprise, the ability to craft a collection of code generating tools provides you with the ability to enforce style and code design across a team of developers, and the less code we write, the quicker we can get to end of job, with less defects and higher quality as we’re using code that has been vetted and tested over time.
This series will try and cover all the various tools out there that you can use to generate boilerplate code when developing software, how you can extend those tools to fit your personal or corporate style and become more effective developers
This will be a living list, adding new tools and methods over time to, hopefully, become a resource for all developers who are tired of writing the same code over and over again.