Recently on Twitter, there was a question posted on what your favorite tools were. Not only was I delighted with the amount of answers (and the information I gained on what was suggested), but the amount of thought that people took before answering. I suspect they were looking specifically for testing tools, but my answer applies to nearly all areas of my life.
Choosing tools - be they something that you write, a regular expression, a locator, or a commercial product - is so very dependent on what you need it to do that a general recommendation is likely useless to those in other areas. Even in the world of databases - which seem to have been around forever, and all the options are fairly well know - there are still large disagreements on relational versus document databases, and how to best utilize them to get the information needed.
And selecting tools of nearly any type for a brand-new project is an exercise in frustration.
Thankfully, there are few totally new ideas out there - you can look at the current versions of the competition, and gain some idea of what you will be able to use the tooling for. And a look at the potential near future, from many sources (including those that you may not agree with) will help add to the list of things to consider. Using the database example above: is the database going to need to store information from a VR or AR version of your product? If so - what might be added, or taken away, to allow access to both old and new data for each of these versions?
As my selected image hints, the proper tool may not work for all types of problems. Yes, your selected tool might be excellent, but there is always the possibility that your project has outgrown it, or that a different tool is a good choice, now. Tools have grown and changed - and have competition that didn't exist before. So time needs to be invested in looking to see if the current toolbox needs an upgrade.
This adds not only time to look at options but the potential time of changing things in your system, which may not be a popular idea. Going back to change things that are working perfectly well at this moment is never an activity that brings delight - even if you know that making these changes is a good thing. And the possibility for adding errors is increased, because it isn't always something that brings new information, or new value. And then checking those changes - it seems an endless, slightly thankless task while you are in it.
My answer to the favorite tools was "A notebook, and time". If you can plan a bit of time every week, and make notes from the various sources that you use, and are trusted, you can have a head start. When the time comes to consider a new option, you should have information on what is out there, and what issues each thing creates, or solves. And that will allow you to add the best possible choice to the toolbox, going forward.
Top comments (2)
Also, it's no good if you use the tool in such a way that mandates that the same tool be used later on. Keep everything open, and think of those who come after you. That includes thinking of what your future self will have available. Maybe a month later you change you mind about what tools you use, and when you come to that old project later one you are locked in to that old tool that you don't even know how to install any more.
Exactly. Tools, what they do, the equipment they run on, and how to make sure they give us the correct answers change often.
I remember the thrill of getting a half-gig drive: and thinking no one would ever be able to fill it. I still think of that, and laugh now at the size and complexity of the programs we use today.
Thank you for taking the time to comment!