(C) Daily Kos
This story was originally published by Daily Kos and is unaltered.
. . . . . . . . . .
Not All Ideas are Good Code - A Lesson For Today [1]
['This Content Is Not Subject To Review Daily Kos Staff Prior To Publication.']
Date: 2025-02-08
I got this squeeze toy as conference swag back when I worked for AltaVista Search. The cracks in his skin match the wrinkles on my bald head. We have both been around for a while. My last gig before I retired was project leader on a network filesystem project (nfs-ganesha). If you want to know more about Tux, see here. Nearly all of my 40+ year career was in research or Open Source software development. I first met James Bottomley at one of the Linux related developer conferences I attended. I am one of the many “Drive By” contributors he mentions. That network filesystem project is Linux-adjacent which got me into discussions with him and others about internals in both projects.
The reason I publish this at this time is because our politics “have lost the plot” as the Brits say. We have given in to the pitfalls that James clearly describes in his talk at FOSDEM in 2025. BTW, I still recognize many of the faces in the link even though I’ve been retired for almost 11 years now!?! They are starting to look like me… So much grey (less)hair/(more)beard.
To the point.
James is talking about Open Source projects which are very different from commercial software which is a very much top-down affair. They are more like society and the body politic in that there is no top down chain of command no matter how hard some political parties and especially corporate elites try to make it. The lesson James is trying to get across is how to function effectively in that environment. Having been a project leader myself, it really is very much like herding cats. And that is part of the plot that is lost — by both Republicans and Democrats. A whole lot of the tension and, in an increasing number of cases, the borderline dysfunction to outright adverse social behavior and criminality indicates a perilous breakdown in the social contract that holds us all together.
We have a valuable lesson in his presentation. The Open Source project (Linux in particular) is a good social behavior experiment and example. Nobody dies in the story which makes it a good study lesson. All of the dynamics are there. The project work is interesting enough to the participants that they make real commitment to it, i.e. they stay in the game. The stakes are high enough to matter but not so high that extremes become existentially scary.
Cooperative competition and the necessary negotiation in it is a key property of the Open Source model. None of us need to be there and in some of the conflicts and schisms he refers to, some folks, some of whom made significant contributions in the past disappeared never to be seen or heard from again. In Open Source, that is seen and felt as failure. In corporations where “You’re FIRED!” is the modus operandi, that is company failure masquerading as management success. In government, especially in these times, that often results in violence even to revolution. A developer in the first case can simply go do something else. In the corporate case it is within its own fiefdom bubble and insulated from the outside world. Society and government are different because participants have nowhere else to go; exile is not really an option and the other options involve violence. That is why so many family conflicts end up in domestic violence and escalating societal conflicts end up in bloody revolution or war.
What drives projects is “ideas”. One of us sees a problem or a possible (cool) improvement/addition and our process of thinking through a solution does two things; one is code that we write and test; the other is the internal emotional investment to see it get done. But the driver of all that personal effort is an idea that I must then get tested and approved by others, the result of which is in one of three forms.: it gets accepted as I wrote it (very rare), it gets modified, sometimes many times over months and years before it is accepted (common case), or it gets rejected (not uncommon case). This where this whole process fits into our failing political process. Substitute policy for idea and the law implementing it for the accepted code and we can see the process dynamics.
It is easy to see the failures of both major parties in his examples. Republicans, and especially the MAGA wing show all the signs of just giving up on the whole process. The world has move on and no longer accepts their ideas. It is hard to see any commitment to the process anymore as their effort seems to be just trying to brute force their own way. They have given up participation but really have nowhere else to go. Having tantrums, especially with sharp sticks does not end well.
The Democrats also have serious problems. They try but they are not very good anymore with the process. Note that James keeps coming back to negotiations about contributions, i.e. ideas. It is very hard to have a negotiation about ideas when you really don’t have many or real commitment to what you have. You cannot be a contributor to the project if all you want to do is hold someone else’s coat.
So enough introduction. On to the presentation video. But first some vocabulary and terms:
Code Synonymous with software. Modern software looks like written sentences (statements) that express the logic and flow of the program. In the old days it was written as individual (encoded) instructions for the hardware. A source code file is formatted into a series of “lines” just like any other text document. A line is the smallest unit of source code text.
Synonymous with software. Modern software looks like written sentences (statements) that express the logic and flow of the program. In the old days it was written as individual (encoded) instructions for the hardware. A source code file is formatted into a series of “lines” just like any other text document. A line is the smallest unit of source code text. Patch Think of the patch to cover a the hole in your beloved Levi’s. That is where the term comes from. It is an edit/change in the code to fix a problem or add a feature. In the Linux project and others like the ones I worked on, they are the text in an email where the format of the text indicated lines of code to be removed and lines to be added. A remove coupled with an add is a modification. Email is being slowly replaced by other tools but the process is the same.
Think of the patch to cover a the hole in your beloved Levi’s. That is where the term comes from. It is an edit/change in the code to fix a problem or add a feature. In the Linux project and others like the ones I worked on, they are the text in an email where the format of the text indicated lines of code to be removed and lines to be added. A remove coupled with an add is a modification. Email is being slowly replaced by other tools but the process is the same. Upstream The software process starts with ideas in the heads of the developers in the project. That is the upstream. Everything and everyone else ending with the end user is downstream.
The software process starts with ideas in the heads of the developers in the project. That is the upstream. Everything and everyone else ending with the end user is downstream. Project This is the organized group that does the work. Although the video doesn’t mention it, there is a repository where the code for the project is kept. The repository is capable of preserving the full history of changes. At points where work has been tested and considered stable, there is a release which is a marked point in the project history. Look at my old project above… In the government sphere, think of the Archivist who registers laws/amendments that have passed and the National Archives as the repository. A release would be a law passed by the legislature and signed by the executive and published by the Archives.
This is the organized group that does the work. Although the video doesn’t mention it, there is a repository where the code for the project is kept. The repository is capable of preserving the full history of changes. At points where work has been tested and considered stable, there is a release which is a marked point in the project history. Look at my old project above… In the government sphere, think of the Archivist who registers laws/amendments that have passed and the National Archives as the repository. A release would be a law passed by the legislature and signed by the executive and published by the Archives. Contributor A contributor is an individual developer. That person could be a solo developer or a team in the organization. Individual team members are noted as the contributor of their parts of the team work.
A contributor is an individual developer. That person could be a solo developer or a team in the organization. Individual team members are noted as the contributor of their parts of the team work. Maintainer The person responsible for a component, i.e subsystem, of the project. He/she is the middle management. They both review/accept patches in their component and pass them upstream to the project leader.
The person responsible for a component, i.e subsystem, of the project. He/she is the middle management. They both review/accept patches in their component and pass them upstream to the project leader. Submission is the process of including a patch into the project. The patch first goes through review by others and when accepted, signed off, it is added to the repository as a commit.
That should be enough to keep a non-technical person from getting lost. The important part of the video is the process dynamics anyway. The rest is detail. Besides his code, this is a significant contribution that James has provided to the project. He understands how people think and work which is a very important skill when you are herding cats.
And here is the video. Read, mark, and inwardly digest.
[END]
---
[1] Url:
https://www.dailykos.com/stories/2025/2/8/2302427/-Not-All-Ideas-are-Good-Code-A-Lesson-For-Today?pm_campaign=front_page&pm_source=more_community&pm_medium=web
Published and (C) by Daily Kos
Content appears here under this condition or license: Site content may be used for any purpose without permission unless otherwise specified.
via Magical.Fish Gopher News Feeds:
gopher://magical.fish/1/feeds/news/dailykos/