Is a Porsche convertible or a Handa Minivan the best car for you? It depends on your why. Why are you looking for a car?
Minimum Level Functionality
To be a valid choice, any car must meet a minimum bar. It needs to perform the basic function of a vehicle. It must be in good condition, driveable, compliant with safety regulations. Thus all cars meet do this same set of things. But if this was all there was to choosing a car, why is there such a variety of cars to choose from? Why don’t we all drive the same one?
In his book, “Start With Why”, Simon Sinek explores some of this question. He asserts that people don’t buy what you do but why you do it.
What is Your Why
So which car would you choose? It depends on your why. Are you trying to haul around your troupe of children? Or are you and your wife going out on a hot date Friday night?
Are you the image of practicality, where buying a sports car seems uncharacteristic and unuseful? Or are you looking for a thrilling ride?
Are you pocketbook bound, just looking to expanded needed capacity? Or are you open to purchasing a driving experience?
Do you imagine yourself driving with the wind through your hair or do you see yourself in the car in order to facilitate getting from point A to point B?
All answers are valid. Notice the questions and the answers are more about you than the car. A good match will depend on your why.
Why Choose Your Software
Why isn’t there just one coding language? Seemingly objective, we describe ourselves using the right tool for the right job. But there are many tools that do the same job. How many general programming languages are there? Mucho! What was the why of the language creator when he made the new language?
There are different tools for different people. Different people identify with different whys for making the software choice they do. An object-oriented paradigm can produce the same products as a functional paradigm can. The approach is different. One language or paradigm might match the taste of a programmer better. He might identify with it, match to who he is and his own why. Programmers think of themselves and their crafts from a certain personal lense. How they view themselves will draw them toward the founding why of particular pieces of software. We work better in cultures that we identify with.
So who are you? Can you identify your why for choosing a particular piece of software? Do you think it’s valid if someone else drives a Porsche while you drive a minivan, or vice versa, even though they both perform the minimum requirement of transportation?