Posted on August 3rd, 2020

BTW, This is a new site that I am working on, so there's almost no content here at the moment, but with any luck, and some spare time, that will change soon

Gooddogs.com has provided help and consultation in software architecture, developer effectiveness and web development for over 25 years. The Gooddogs Repository was one of the first add-on modules for the DotNetNuke open source CMS and continues to support the software development community through open source projects, conference and user group speaking and mentorship.

Being an Effective Developer

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.

How can Tooling help?

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 tooling, 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.

Types of Tooling