DEV Community

Sebastian Nozzi
Sebastian Nozzi

Posted on

Investment vs. Heroics

Companies are wasting money left and right in their software-development project. And they don't know it.

How do they wast money? By investing poorly and thus wasting time. What does it mean to waste time? Best case: by getting less output for a fixed amount of money (salary) in a given timespan (per month). Worst case: by getting negative output for a fixed amount of money (i.e. bugs, with the result of time or even data loss for customers).

And this results from poor decision making and lack of investment. Because investing is not popular. Short-term reward is.

Investing

What does it mean to invest? To invest means paying a big sum of money upfront, and / or dedicating a large quantity of time upfront. Acquiring something (a system or a skill). Building something. And hoping to reap the rewards later. Rewards that might not come. Or might not be visible.

The latter is a big problem. Because often the results of good investing are not visible, because good investing prevents problems.

Short-term Heroics

Preventing problems is not popular.

Fixing problems, fire-fighting problems, is much more visible, popular. And costly.

But costly compared to what? Companies are not aware of "what could have been". Of how the constant "heroic" fire-fighting, fix-it-as-it-comes (over and over again), would compare with the scenario where an investment was made upfront to prevent further occurrences of a certain problem.

Example

Situation A: The productions servers refuse to start. Heroic developer goes on to investigate. After hours of debugging (there are no clear error logs) the cause is clear: new certificate had been installed in the staging server but not on the production one. Short-term solution: install the new certificates (manually) on the production server. Heroic developer saves the day! (until similar problem happens again)

Situation B: Production servers refuse to start. Boring developer investigates. Certificates had been (manually) installed on staging server but not production. Boring developer sees to it that certificates are automatically created, re-newed and installed through the build-pipeline. Should there be an issue with certificates the build would fail and the developers would be made aware of the exact issue in time. This approach (investment) takes time, but it will prevent downtime and productivity loss in the future.

Of course the "problem" with situation B is that what is visible is that a) it takes time to implement and what is not visible are the b) problem "preventions" (the results of investment). Management or teams that value short-term heroics over boring long-term investment might not see the benefit of it, or outright fight against it altogether.

Final words

At the end of the day it's human nature.

But it is both human nature to seek immediate rewards and also to recognize these tendencies and transcend them. Because to choose investing for a better future is also human nature.

It is up to choose to invest wisely.

Top comments (0)