Hacker News new | ask | show | jobs
by MilStdJunkie 997 days ago
This is more or less my life as well.

The "finisher argument" that gets rolled out is "product lifetime costs". It goes like this.

Open Source Product A will always be your responsibility, which will take X hours off the team's time forever. Vendor Product B will be maintained from the vendor side, thus removing that wildcard of X. Ergo, over the "lifetime" of the product, B will have lower costs than A.

Since this argument has dollars in it, it always wins, and everyone makes smug faces.

I personally think it's almost completely ridiculous to evaluate software with anything called "lifetime costs", and honestly, it's getting pretty close to ridiculous to cite that metric for any complex system, physical or not. But that's just me[1].

I'd be interested to hear what the general readership's opinion is on whether or not the "Lifetime Costs" argument holds water, and why.

[1] In the software case, what's a "Product" "Lifetime"? Is that "the software in its current precise configuration", because then we're talking a lifetime of picoseconds. Or is Product defined so broadly that virtually any software of that class can be called "the Product", in which case you're stretching my credulity to say you're capable of supporting this notion of "Product" for N arbitrary period. I don't think you will make any money doing that. Either way . . when it comes to "lifetime costs" for physical complex systems, there's a supplementary argument, out of scope for this discussion, but still applicable in heavy industry.

3 comments

Open Source project O will cost your team X hours of time to develop expertise in managing it.

Enterprise product E will cost your team X hours of time to develop expertise.

O requires install time. E either requires install time or integration time.

When O breaks, it is likely that the community has already seen this problem and can provide suggestions via docs, mailing list archives, discussion fora, blogs... Your team's expertise will increase. If your problem is interesting, the developers will likely get involved.

When E breaks, you will open a ticket. Within 24 hours, someone from the E company will try to diagnose your problem, going down a flowchart that they will not share with you. If your problem is in the FAQ or flowchart, it will get solved within a week, probably. If your problem is interesting, it may eventually be solved in a future release. Your team will spend less time working on it, but E will be broken for longer.

You will pay dollars to your team to support O, which will make them happier.

You will pay dollars to the E company to support E, which will make them happier.

E will invite your execs to dinner at the E conference.

O will never invite anyone to anything.

This is the secret.

E will also conduct award ceremonies and invite the suits - "Best Practices Journey Award 2023".

O will have a virtual hackathon broadcast on their self-hosted Jitsi.

You forgot the cost of Y hours your developers could have spent on A.

This is the actual, non-cynical driver for many of these decisions. An exec is looking at devoting developer time to building or curating software that isn't part of the core competency of the business, and balancing it against staffing product development or IT aimed at the business's specialization.

To make avoidance of E palatable, you have to show that use of O will not only cost significantly less that E, but that using it will also make up for the lost time that you would have spent building A.

I say this as someone who constantly has to justify why we don't just grab some SaaS offering off the shelf and groom it * cough * um... integrate it, rather than continuing investment in the purpose-built "commodity" my team runs.

I actually agree with the "lifetime" argument. The real fallacy is here:

> Vendor Product B will be maintained from the vendor side, thus removing that wildcard of X.

Product B also has a lifetime cost as you'll be paying monthly for the subscription.

Also no product is maintenance free, even as you pay for it. Products evolve, you also do, next months JIRA could break some of a company's use cases and they'll have to deal with it. The vendor might be helpful and guide thsm through the process, but that's still work.

A good example of that is Microsoft's enterprise offering: it's a paid product and you still need a department to manage it day to day.

I dig it. And yeah, B has license costs, but those often go to a different cost center so they're invisible[1] . . and as we all know invisible things don't exist.

We'll agree to disagree that "lifetimes" are a real thing in software - I actually think this is a pretty fluid thing - but I'm going to extend your case here to illustrate how "lifetime" interacts with incomputable costs. We have the known license costs, as stated above, but then added to that we also have this unknown cost that represents "how much time my team needs to spend maintaining the vendor product". That cost is unquantifiable but it's going to go up the less tightly-defined the product is[2], and, as stated, there is an inverse relationship between "lifetime" and "tightly defined".

So you're in a situation where the lifetime is either very short, or the vendor costs are high. But you never know "how much my people will need to do at the very base level of vendor support" so the multiplier can take it way outside of the range of "acceptable" very, very rapidly, with just a small increase in scope/lifetime. You end up paying out more for the vendor support than you're making from the Product, thus operating the whole shebang at a loss.

I think this is much more of a problem when in a domain that's not commodified, or even worse, something that's extremely niche. I'm thinking of SGML and FOSI publishing systems, specifically, but it could go for anything way out on the fringes, like weirdo material-assembly-or-org-specific CAD functions. I'm going to go out on a limb here and say if your business depends on niche, you're really way, way, way better off in-housing that, then interfacing it with the commodified functions that can run off the vendor. There's no ceiling on how high the vendor costs can go with niche stuff.

[1] Please don't get me started on cost centers.

[2] For a given cost, Product grows in scope, less profitable for the vendor to staff for supporting it, support goes down.

But what if that vendor product B got crippled (like recently Unity and today JIRA) for most of features that people deemed essential, or even vanished? People who is less fortunate has to switch to more cost-effective solutions (it may include F(L)OSS ones).