This is something we rarely think about, but, as programmers, every day we have to make several choices. Every step of our job involves a (conscious) choice. Which programming language, which technology or which framework are probably the most easy to identify - and to answer. The design of the data structures, the design of the UI and the interaction within the various parts of the project usually are a collective work.

But after that, when you are alone between the keyboard and the chair, the constraints begin to show up. And, when there are constraints, different paths and different solutions must be evaluated, each one with its own drawbacks. In the end you have to choose. And this choice may influence your next weeks (or months).

At it's core, the job of a programmer is to make decisions. From the names of the variables up to the way to implement a fancy algorithm, our day-to-day job is full of decisions.

But one question among many puzzles me: is the development time adequate to the task? To say it in a different manner, is the time we spend creating something proportional to its importance for the user?

I know that the answer is "No, it isn't" because I've seen so many functions (or even full projects) developed just to be a bait or for marketing reasons. However, excluding these situations, sometimes I wonder if I'm spending too much time on small details.

But also the opposite is something to consider: am I spending not enough time on things that would need more consideration? Which is the rule? Does a rule exist? Suggestions are welcome.

Image by W.carter taken from Wikimedia Commons licensed under the Creative Commons Attribution-Share Alike 4.0 International license.