sometimes building something new seems obvious. i have to push hard to get people to back up that obviousness with evidence. (provide me with evidence that these existing solutions are not suitable before we build a new one from scratch.
sometimes building something new seems easier or cheaper than the effort required to evaluate alternatives, especially if the solution only takes a few days or weeks of work (take the obviousness factor above into account).
another factor is the seemingly common dislike of working with other peoples code. especially when it's known that modifications will need to be made. do we take this system with a lot of legacy code where we have to modify 20% or is it easier to start over and build what we need?
In house tools can also offer a lot more stability than OSS/commercial equivalents that will often require you to be on their upgrade treadmill. Very few companies will plan for this kind of maintenance so it's important the developers align with that and don't take on unnecessary burdens.
There's more OSS than ever but there is a huge lack of stability in most of it.
This is key. Extremely many "OSS" projects are also not up to quality standards and require significant engineering time for understanding, auditing and perhaps integrating the thing, even before deploying it. The bigger the set of useless features on a project, the bigger the risk in introducing an unknown into the critical paths that allow you to ship/provide a product/service. While many global "base" technologies like Postgres, enterprise Linux, Redis, NodeJS, Tomecat, the JDKs, etc are solid lighthouse projects with better quality than what "just writing your own" without world-class engineering teams and investment could produce in a reasonable amount of time, many others are just not that good. The cost of "adopting" a 2nd- or 3rd-rate FOSS solution may be very high and introduce significant technical debt down the road.
In way to many companies, engineers (including engineering managers) have to explain to a non-technical C suite that OSS/FOSS IS NOT FREE and NOT GUARANTEED TO BE CHEAPER than going with proprietary or self-written, minimal, tested and concise solutions in any given context. They can be, of course, and with some engineering investment they can be for the longest time in the feature, but every case is different and a "wave" certainly is not what just removes the need to do this kind of evaluation.
i disagree that extremly many Free Software or Open Source projects are not up to quality standards. i use them every day and 95% is of high quality. higher than many closed source applications or libraries.
this is not a FOSS question. (i would not touch a closed source library as s potential dependency with a 10 foot pole. it's either FOSS or i write it from scratch)
this is a question of the ability or willingness to adopt and maintain 3rd party dependencies.
fear of FOSS could be added as another reason, but that reason is even worse than mere unwillingness to work with other peoples code.
in order to use a 3rd party application or library as a dependency you must be able or willing to maintain it yourself, in case you run into an issue with its support. (that's one of the big points of FOSS, btw)
you are right about unnecessary features being a risk, but again, that has nothing to do with FOSS as a choice.
this is a general problem with humans. They are "convince" that they do good even when they don't.
> sometimes building something new seems obvious. i have to push hard to get people to back up that obviousness with evidence. (provide me with evidence that these existing solutions are not suitable before we build a new one from scratch.
The main issue here is that the perceived cost of starting from scratch is very low especially when from his ebony tower the programmer ignores all the issues the previous programmer had to confront.
> sometimes building something new seems easier or cheaper than the effort required to evaluate alternatives, especially if the solution only takes a few days or weeks of work (take the obviousness factor above into account).
... days which become weeks, years , decades. Why is a software project (exept TeX) never complete ?
> another factor is the seemingly common dislike of working with other peoples code. especially when it's known that modifications will need to be made. do we take this system with a lot of legacy code where we have to modify 20% or is it easier to start over and build what we need?
If builders made buildings the way programmers make SW ... Why do SW cannot improve the code ? Why do they have to "invent" the wheel every day and in the end they obtain the same thing or even worse ?
I'll give examples:
1. KDE and GNOME. With every release the interface is different. Old programs do not work anymore - they have to be ported to new KDE 4 or 5 or 6 or whatever. They were at the beginning way ahead of windows (r) and Mac now they just copy. Same with GNOME.
2. Win 10 looks the same like Win 1.0. Functionality is the same. Will Win 31 look the same like 3.1 ?
I think framework is extremely abstract today. Sometimes I need to check the source code to understand what kind of magic is going on inside the framework.
sometimes building something new seems obvious. i have to push hard to get people to back up that obviousness with evidence. (provide me with evidence that these existing solutions are not suitable before we build a new one from scratch.
sometimes building something new seems easier or cheaper than the effort required to evaluate alternatives, especially if the solution only takes a few days or weeks of work (take the obviousness factor above into account).
another factor is the seemingly common dislike of working with other peoples code. especially when it's known that modifications will need to be made. do we take this system with a lot of legacy code where we have to modify 20% or is it easier to start over and build what we need?