Editorials

Tool Selection – Can it be done?

I remember the days when you could be a full stack developer only knowing a couple of software languages. Generally you had to know SQL and another language for the user application. Perhaps you were writing applications in Visual Basic, Power Builder, Oracle Forms ( I know I have left a lot of other tools out, because these were the most popular Windows software tools of the time), or any of dozens of different 3/4/5 GL languages.

Today, it is not uncommon for a full stack developer to need to know multiple languages and APIs to make things work. You’ll still probably need to know SQL. However, it is likely you’ll need to know an ORM generating tool to convert your tabular data into objects and sets of objects. You’ll probably have a language for your custom application as a service of some sort.

Then, on top of that you’ll need to know, or at least understand, how to serialize and deserialize data effectively, even if you use a tool to get it done. There is still a lot of scaffolding needed to get all of those communication processes working.

Most of the applications I find myself writing anymore tend to be web applications, primarily because they are simple to distribute to clients (they need a browser). So, simplifying the deployment process results in more languages I need to learn. Now I’m learning JavaScript as a browser language. Then, add JQuery as a superset of JavaScript that is more transportable across multiple browsers.

That just got me started. Now we are writing presentation code using CSS. However, to bring consistency to our sites, and make our applications more responsive to different form factors, we are now looking at libraries like bootstrap, etc. When we want to take advantage of the client computer by using the browser, we start looking at tools like Angular.

Already I have named a number of different technologies, each with its own degree of power and sophistication. And those are only a few of many that are available today.

Our choices for Windows development have gone from PowerBuilder, Oracle Forms or Visual Basic as a Windows application to Dozens of tools, multiple frameworks, multiple patterns for communication etc. and multiple clients on a host of different operating systems, with many different form factors.

What does all of this mean? Do we care? Why should we care? The answer for me is based on research that has been done on how people make choices. The more options they have, the harder it is for them to make a choice, let alone make a good choice. They have found that people can easily choose between two options. As you add more options, the difficulty increases.

Based on that understanding, we have so many options for the tools we use every day. Let’s say you want to work with Microsoft MVC. Even now there are many versions from which to choose. My point is that if you are confused about what tools to learn and where to put your effort, you are probably not alone, and if you don’t collaborate with others in the same situation, it is even harder to sort through all the options.

How do you dig through the plethora of technologies? What is your approach? How about sharing your insight in our comments?

Cheers,

Ben