There is a common theme pushed by fanatics of capitalism that never dies: that a profit-driven commercial project ensures higher quality products than products under non-profit projects. Some hard-right people I know never miss the chance to use the phrase ā€œgood enough for government workā€ to convey this idea.

Iā€™m not looking to preach to the choir here, but rather to establish a thread of scenarios that correspond to quality for the purpose of countering inaccurate narratives. This is the thread to share your stories.

In my day job Iā€™m paid to write code. Then I go home write code I was not paid for. My best work is done without pay.

Commercial software development

When I have to satisfy an employer, they donā€™t want quality code. They want fast code. They want band-aid fixes. The corporate structure is too myopic to optimize for quality.

Anti-gold-plating:

I was once back-roomed by a manager and lectured for ā€œgold platingā€. That means I was producing code that was higher quality than what management perceives as economically optimal.

Bug fixes hindered:

I was caught fixing some bugs conveniently as I spotted them when I happened to have a piece of code checked out in Clearcase. I was told I was ā€œcheating the company out of profitsā€ because they prefer if the bugs each go through a documentation procedure so the customer can ultimately be made to pay separately for the bug fix. Nevermind the fact that my time was already charged anyway (but they can get more money if thereā€™s a bigger paper trail involving more staff). This contrasts with the ā€œyou get what you pay forā€ narrative since money is diverted to busy work (IOW: working hard, not smart).

Bugs added for ā€œconsistent qualityā€:

One employer was so insistent on ā€œconsistent qualityā€ that when one module was higher quality than another, they insisted on lowering the quality of the better module because improving the style or design pattern of the lower quality piece would be ā€œgold platingā€. This meant injecting bugs to achieve consistency. The bugs were non-serious varieties; more along the lines of needless complexity, reduced performance, coding standard non-compliances, etc, but nonetheless something that could potentially be charged to the customer to fix.

Syntactic dumbing-down:

When making full use of the language constructs (as intended by the language designers), I am often forced by an employer to use a more basic subset of constructs. Employers are concerned that junior engineers or early senior engineers who might have to maintain my code will encounter language constructs that are less common and it will slow them down to have to look up the syntax they encounter. Managers assume that future devs will not fully know the language they are working in. IMO employers under-estimate the value of developers learning on the job. So I am often forced avoid using the more advanced constructs to accommodate some subset of perceived lowest common denominator. E.g. if I were to use an array in bash, an employer might object because some bash maintainers may not be familiar with an array.

Non-commercial software development

Free software developers have zero schedule pressure. They are not forced to haphazardly rush some sloppy work into an integration in order to meet a deadline that was promised to a customer by a manager who was pressured to give an overly optimistic timeline due to a competitive bidding process. #FOSS devs are free to gold-plate all they want. And because itā€™s a labor of love and not labor for a paycheck, FOSS devs naturally take more pride in their work.

Iā€™m often not proud of the commercial software I was forced to write by a corporation fixated on the bottom line. When Iā€™m consistently pressured to write poor quality code for a profit-driven project, I hit a breaking point and leave the company. Iā€™ve left 3 employers for this reason.

Commercial software from a user PoV

Whenever I encounter a bug in commercial software there is almost never a publicly accessible bug tracker and itā€™s rare that the vendor has the slightest interest in passing along my bug report to the devs. The devs are unreachable by design (cost!). Iā€™m just one user so my UX is unimportant. Obviously when I cannot even communicate a bug to a commercial vendor, I am wholly at the mercy of their testers eventually rediscovering the same bug I found, which is unlikely in complex circumstances.

Non-commercial software from a user PoV

Almost every FOSS app has a bug tracker, forum, or IRC channel where bugs can be reported and treated. I once wrote a feature request whereby the unpaid FOSS developer implemented my feature request and sent me a patch the same day I reported it. It was the best service I ever encountered and certainly impossible in the COTS software world for anyone who is not a multi-millionaire.

  • MiddledAgedGuy@beehaw.org
    link
    fedilink
    arrow-up
    15
    Ā·
    11 months ago

    Commercial software: complete goals x, y, and z and get paid.

    FOSS: Project of passion.

    Short and black and white version: Iā€™d rather use the software people are excited to make.

    My take on whatā€™s realistic: Things are rarely so simple. Commercial software will often (not always) be easier to use. I feel like most users donā€™t want to expend any more than minimal effort to effectively use their software (which I donā€™t think is unreasonable). So in those cases and for those users, easier = better.

    Also, highly specialized commercial software might be better than any FOSS options. For example, thereā€™s nothing in the FOSS world that can compete with the big players in commercial electronic medical records software.

    So, while I love FOSS, and I find Capitalism problematic, sometimes commercial is better.

    P.S: The response is more to the concept of the post. Your actual post is both well written and thought out and doesnā€™t feel at all like ā€œblack and whiteā€ thinking.

    • BearOfaTime@lemm.ee
      link
      fedilink
      arrow-up
      1
      Ā·
      edit-2
      11 months ago

      Great example: FOSS CAD.

      It takes massive investment to build the systems you see in things like Catia/SolidWorks/Autodesk. Whereā€™s the FOSS CAD that competes with these?

      Another massive difference is ownership and risk offloading. Enterprise buys commercial software and pays contracts for maintenance to offload the risk of the software and maintenance activities. Iā€™m sure damn few FOSS devs are capable of playing in that world, where millions of dollars can be lost due to a software failure by a vendor - and since that vendor has been contracted to supply a given Service Level, they pay for the Enterprise loss (well, their insurance does).

      This post is as simplistic as the people who claim paid software or FOSS is always better.

      Everything has itā€™s place, but I doubt Iā€™m recommending FOSS for anything requested by management - nothing fits the requirements from a B2B perspective. There may be a few out there, but the ones Iā€™ve seen are niche operators who are really large companies themselves, using extant FOSS or even financially supporting an FOSS project (Syncthing comes to mind).

  • senseamidmadness@beehaw.org
    link
    fedilink
    arrow-up
    12
    Ā·
    11 months ago

    Anyone who says paid software is guaranteed to be better is either selling you something or delusional.

    FOSS has almost never disappointed me as an end user. Windows disappoints me every time I use it.

  • FlareHeart@lemmy.ca
    link
    fedilink
    English
    arrow-up
    11
    Ā·
    11 months ago

    Yaā€¦ Iā€™m with you 100%. It really feels like commercial software is the ā€œminimum viable productā€ rather than a complete and quality piece of software. Iā€™ve opted for FOSS solutions wherever possible for me and it has worked out swimmingly. Only place Iā€™m still struggling is my home PC. Making the jump to Linux and potentially risking game compatibility is still a bit of a hurdle for me, but once my Win10 license loses support, Linux will be a very strong contender for my main OS.

    • i_am_not_a_robot@discuss.tchncs.de
      link
      fedilink
      arrow-up
      2
      Ā·
      11 months ago

      It wasnā€™t always like this. Back before companies understood ā€œminimum viable productā€ things were better. Now companies do the ā€œminimumā€ and then never come back to finish what they started because they canā€™t see a profit in it. Itā€™s obvious in the way Microsoft has been replacing the old, working parts of the OS with new parts that look more modern but donā€™t work as well, and rarely improving the replacements to reach parity with what was replaced.

  • šŸ¦Š OneRedFox šŸ¦Š@beehaw.org
    link
    fedilink
    English
    arrow-up
    8
    Ā·
    11 months ago

    Thereā€™s always been absolute fucktons of proprietary software thatā€™s buggy garbage. At this point even corporations have conceded the superiority of our development model and have adopted it themselves (even longtime foes like Microsoft). Honestly, most of FOSSā€™s problems could be dealt with by having a tighter relationship with UI/UX designers since thatā€™s usually the biggest pain point.

  • 0xtero@beehaw.org
    link
    fedilink
    arrow-up
    6
    Ā·
    11 months ago

    I do security as my dayjob (more blue team stuff these days, but used to do pentesting in the past).

    Software development normally comes down to a holy trinity of Speed/Cost/Quality. You can only pick two.

    Commercial software has time/cost constraints so they often pick speed and cost over quality initially. FOSS software doesnā€™t need to ā€œget to the marketā€, but also doesnā€™t have any money, so you often get cost/quality over speed.

    However - in larger enterprises thereā€™s so much more, you get the whole SDL maturity thing going - money is invested into raising the quality of the whole development lifecycle and you get things like code reviews, architects, product planning, external security testing etc. Things that cost time, money and resources.

    FOSS software is generally going to be missing this, unless the project gets popular and picked up by some big megacorp that bankrolls the development (Google, IBM etc). Look at mission critical projects like OpenSSL that was (until Heartbleed) more or less one man project.

    Commercial software also needs to invest in licensing, support, documentation, certifications, training and potentially integration partners. Itā€™s a whole different playing field. FOSS has easier time, because itā€™s generally just pointing at the code and saying ā€œwell send a PRā€.

    Then you have the whole devops thing, where you might take FOSS software and build a whole commercial service around it.

    And all of this is just generalizing of course, because unless weā€™re just comparing small programs, thereā€™s really no way to do objective comparisons between ā€œcommercialā€ and ā€œfreeā€ without writing a full 50 page thesis.

    • BCsven@lemmy.ca
      link
      fedilink
      arrow-up
      3
      Ā·
      11 months ago

      Commercial software getting QA, code review, testing, etc seems to only apply till that corp has market share dominance, then they dgaf. Iā€™m indirectly involved with corporate enterprise level software. They big players now release garbage that has breaking changes, they donā€™t care because user base pays yearly licensing and canā€™t drop the paid license nor drop the software; so they live with users being the bug testers. And beaides that they use foss components for some functionality.

    • soloActivist@links.hackliberty.orgOP
      link
      fedilink
      arrow-up
      3
      Ā·
      11 months ago

      That all sounds accurate enough to meā€¦ but thought I should comment on this:

      However - in larger enterprises thereā€™s so much more, you get the whole SDL maturity thing going - money is invested into raising the quality of the whole development lifecycle and you get things like code reviews, architects, product planning, external security testing etc. Things that cost time, money and resources.

      It should be mentioned that many see testing as a cost, but in fact testing is a cost savings. In most situations, you only spend some money on testing in order to dodge a bigger cost: customers getting burnt in a costly way that backfires on the supplier. Apart from safety-critical products, this is the only business justification to test. Yet when budgets get tightened, one of the first cuts many companies make is testing ā€“ which is foolish assuming they are doing testing right (in a way that saves money by catching bugs early).

      Since the common/general case with FOSS projects is there is no income thatā€™s attached to a quality expectation (thus testing generates no cost savings) - the users are part of the QA process as free labor, in effect :)

  • Moonrise2473@feddit.it
    link
    fedilink
    arrow-up
    6
    Ā·
    11 months ago

    But thatā€™s a shitty employer that is just making software for profit. Like Oracle or IBM. They have a niche of masochistic customers who enjoy being nickel and dimed at all times.

    There are other examples, like indie games are closed source software that are written with no pressure to do x, y or Z and are driven by passion. Same for other programs, I can see there are many ā€œquality first, money secondā€ examples

    And also in Foss there are highly opinionated software where the devs completely ignore users, ban them from GitHub when they post issues, or continuously change the APIs without a valid reason so your plugins need a constant rework and itā€™s a mess to stay behind

    • soloActivist@links.hackliberty.orgOP
      link
      fedilink
      arrow-up
      3
      Ā·
      11 months ago

      The 1st Ā½ of your comment sounds accurate. Butā€¦

      And also in Foss there are highly opinionated software where the devs completely ignore users, ban them from GitHub when they post issues,

      Right, but to be clear non-free s/w is worse - you canā€™t even reach the devs, generally, and there is no public bug tracker. FOSS is an improvement in this regard because at least there is a reasonable nuclear option (forking). The nuclear option for non-free software is writing it yourself from scratch.

  • Corgana@startrek.website
    link
    fedilink
    arrow-up
    5
    Ā·
    edit-2
    11 months ago

    Well said- FOSS software is almost always better at accomplishing the task at hand, but because most FOSS devs arenā€™t also UX/UI developers, the software is often harder to just pick up and use for someone unfamilliar. I think thatā€™s the main reason it sometimes has a perception of being ā€œworseā€.

  • java@beehaw.org
    link
    fedilink
    arrow-up
    4
    Ā·
    edit-2
    11 months ago

    This post highlights some issues with the commercial software that are obvious to anyone who is working in the industry, but completely ignores issues of the open source software. Both good and bad software is being developed using each model. Itā€™s pointless to compare them this way. Linus in his book provided more substantial arguments in favor of open source.

  • krellor@beehaw.org
    link
    fedilink
    arrow-up
    4
    Ā·
    edit-2
    11 months ago

    I feel this take misses the picture a bit in terms of the strengths and weaknesses of FOSS vs commercial software. FOSS is great at building tools for common or popular problems, but starts to run into challenges in solving problems that are some combination of niche, unfun, too big, or too hard.

    For example, I needed to export thousands of scheduled jobs off of an IBM mainframe and onto a different platform as part of switching to a COTS ERP. Should I task an internal team of developers to write a one off? Would any open source solution exist? There arenā€™t a ton of zOS open source projects out there, in part because there just arenā€™t a lot of zOS systems programmers out there. Theyā€™ve all been frozen in carbonate to solve the Y3K problem, lol. No, in this case I light a pile of money on fire and pay Computer Associates for their commercial tool which generated an XML file almost a million lines long (just the jobs and scheduling parameters/dependencies). And it just worked, insofar as any ERP migration just works.

    Another factor is the time it can take for a FOSS project to mature. No one would try and say that Octave is a 1-1 replacement for Matlab. Indeed, it wasnā€™t until jupyter notebooks came along in Python that I felt I really had a good Matlab alternative, and even then, some less common packages donā€™t have a good FOSS alternative in Python. I still remember the first time getting some of the open source convex analysis packages going on Linux. It was a nightmare of dependencies and didnā€™t have all the capabilities of the commercial solutions, because that type of mathematical software development is really, really hard.

    Additionally, commercial software is helpful at supplying services with ongoing costs. E.g., office 365 with OneDrive would require rolling my own NextCloud with libre office or something similar to get anywhere near the functionality I get from a family Microsoft 365 account out of the box.

    Iā€™m all for FOSS, but a tool is a tool, and sometimes commercial software fills needs that just arenā€™t going to realistically attract a developer community. However, my favorite client tools are usually open source and I like being able to pilfer the code for my own projects.

    Edit: I also wanted to add that I did commercial software development at one point, and I got to solve some really difficult, deep technical issues. It may sound really lame, but the work I did on search optimization for a commercial tool was really rewarding. Taking something that lots of people had to use and improving the execution time of arbitrary queries from minutes to seconds was a blast and important to the org, and something I was able to take the time to get right. Iā€™ve also just had to bang out some CRUD code too, so of course it varies, but not every commercial code outfit it terrible to work for. And the hardware and OS on tools like Palo Alto firewalls just wouldnā€™t get made through open source alone.

  • mycoffeeisready@feddit.nl
    link
    fedilink
    arrow-up
    4
    Ā·
    11 months ago

    God have mercy for the poor souls that have to use Clearcase. In fact it sounds like you and I may work for the same organization.