Making better tool choices
Over the last few months I have been working on a new site to help developers find tools. I'm really excited about this project and wanted to introduce what I'm working on and the problem I am trying to address.
The rise of package managers
During the last 10 years in software development we have seen some significant changes in how we build software. In my opinion one of the most significant is how much easier it is to integrate external libraries into our applications. Package managers have made it much easier to use external libraries, manage versions and redistribute your own helpful tools.
Making it easier to build and use external libraries has understandably lead to the creation of many, and this growth in turn has introduced a new problem; how do I find the right bits to use in my application?
Spoilt for choice
Choice is a wonderful thing, it means we don't need to be constrained to a toolset which often wont fulfil our needs, however its also dangerous. How do we make sure we are making good tool choices? Back in the old days when choices were fewer we built up a list of our favourites and important new tools seemed to be publicised by word of mouth or blogs. This was good enough when the pool was smaller.
How we find tools
From my own experience and watching my colleagues I have observed several different algorithms for picking tools. When faced with a choice developers seem to use the following:
- Anything which I have previously used which I can wrangle into this scenario
- A quick web search to find the first thing that looked like it would fit the scenario
- Something new and cool I read about on a blog that I wanted to try
I've also noticed that when I look for something specific I often spend a huge amount of time searching before I find the 'right' tool.
Better choices save time
If you are anything like me when you work on a system you need to trade off between re-factoring code to use better tools or living with the niggles of your existing tool set. The cost of re-factoring is often massive and as a result sometimes you will just need to live with a sub-optimal tool set. However I know that personally I find myself saying I wish I had just used x from the start.
Wouldn't it be great if we could make better more informed choices earlier in our projects?
A better way
Back at the end of 2013 I started thinking about the problems around picking tools and how to make these choices easier for developers. I decided two things were critically important in making good tool choices:
- Understanding the options available
- Getting recommendations from a wider group of peers than your immediate colleagues
So I decided to build a site for developers to discuss their scenarios and the different tool options available.
dot dev is what has come out of my first couple of months of work on this idea. The concept is simple, ask about what tool to use in a scenario you have and other developers can suggest tools. This list of suggestions will then in turn help other developers understand the options available.
Voting on the best tool in a scenario to use will provide feedback as to which tools your peers suggest.
Check out the site and let me know what you think.
I've had lots of fun building the site and I'm pretty happy my initial cut is along the right lines but I'm now at the point where I really need a few dedicated users to help me refine the site to get ready for a public beta.
I am looking for developers who are interested in the concept and happy to post whenever they are looking for a new tool to participate in the dotdev alpha.
If this sounds like you I would love to hear from you so send me an email.
If you have any general feedback or questions about dotdev I would also love to hear about them, so get in touch.