Open Source hot take: A software project is allowed to be *done*.
-
@dashdsrdash @ArneBab @tante It’s possible (but difficult) to design software to be intuitive and easy to use. It’s easier to write good documentation but nobody wants to do it. This is why so many projects give the documentation work to AI now even though it’s not very good. They kind of understand that they are supposed to have documentation but don’t want to do it and don’t *really* understand what the purpose/goal of documentation is.
@MisuseCase
it's hard to write documentation for something you already knowalso, people "good with computers" have absorbed so much of the unspoken patterns seen in computing that they mostly get by without documentation and it'a hard for them to figure out which parts may be unobvious to an average person
@dashdsrdash @ArneBab @tante -
Or, better, make it easy to add features without needing a fork. Provide clear and stable APIs and hooks for plugging in scripting languages.
No single program can capture 100% of all users' requirements. The goal for a Free Software project should always be:
- Implement the 90% of requirements that are common to most users.
- Make it easy for users to add the remaining 10% themselves.
- Make it easy for users who have the same 10%s to share their changes.
- Make it easy for users who have overlapping 10%s to share the common parts with other people, including overlapping sets of people.
Once you reach this point, you're done.
@david_chisnall @webbop @tante
Well, I do that for most of my recent personal projects, while being fully aware that I'm likely the only user of that project

I never regret it though, because designing extensible software is fun

-
@MisuseCase
it's hard to write documentation for something you already knowalso, people "good with computers" have absorbed so much of the unspoken patterns seen in computing that they mostly get by without documentation and it'a hard for them to figure out which parts may be unobvious to an average person
@dashdsrdash @ArneBab @tante@wolf480pl That may be why Stackoverflow worked so well.
Until its community got devastated by AI.
-
@MisuseCase
it's hard to write documentation for something you already knowalso, people "good with computers" have absorbed so much of the unspoken patterns seen in computing that they mostly get by without documentation and it'a hard for them to figure out which parts may be unobvious to an average person
@dashdsrdash @ArneBab @tante@wolf480pl @dashdsrdash @ArneBab @tante A few years ago I was responsible for ensuring security compliance for components of a large project. Doing this work required reviewing documentation of the components. I found that while all the documentation followed a common format, parts were often hastily copy-pasted or entered, and sometimes they were out of date.
/1
-
@wolf480pl @dashdsrdash @ArneBab @tante A few years ago I was responsible for ensuring security compliance for components of a large project. Doing this work required reviewing documentation of the components. I found that while all the documentation followed a common format, parts were often hastily copy-pasted or entered, and sometimes they were out of date.
/1
@wolf480pl @dashdsrdash @ArneBab @tante I would have to chase down someone on the team responsible for the component to get missing/current information. Sometimes the documentation about who was responsible for a component was out of date too, and the person I tried to reach was gone.
When I chased someone down for details about their project they sometimes asked me why Thing A had to be in the documentation anyway, didn’t everyone know Thing A worked like this?
/2
-
@wolf480pl @dashdsrdash @ArneBab @tante I would have to chase down someone on the team responsible for the component to get missing/current information. Sometimes the documentation about who was responsible for a component was out of date too, and the person I tried to reach was gone.
When I chased someone down for details about their project they sometimes asked me why Thing A had to be in the documentation anyway, didn’t everyone know Thing A worked like this?
/2
@wolf480pl @dashdsrdash @ArneBab @tante I would remind them that the project was a few years old and very large, different people were coming on board or leaving all the time, requirements had changed, and teams working on different things often didn’t talk directly to each other. So when documenting your feature you cannot assume prior knowledge and you need to be explicit about even the “obvious” stuff.
/3
-
@david_chisnall @webbop @tante
Well, I do that for most of my recent personal projects, while being fully aware that I'm likely the only user of that project

I never regret it though, because designing extensible software is fun

-
@wolf480pl @dashdsrdash @ArneBab @tante I would remind them that the project was a few years old and very large, different people were coming on board or leaving all the time, requirements had changed, and teams working on different things often didn’t talk directly to each other. So when documenting your feature you cannot assume prior knowledge and you need to be explicit about even the “obvious” stuff.
/3
@wolf480pl @dashdsrdash @ArneBab @tante Good documentation is a skill you can learn but it often involves questioning your assumptions and thinking about people outside of yourself and your immediate team. Many people (not just computer people) have a difficult time with that and even find it emotionally uncomfortable.
/end
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
@tante It's a shame that this could be considered a hot take.
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
In industrial circles, the common version of this is
don't let the perfect be the enemy of the good
eg, to survive, you need to ship and sell products
another, cruder version
make shit, sell shit, ship shit
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
@tante In our language there is a proverb which means that a new bloom knows to sweep faster but an old bloom knows how to clean corners.
Your insight reminds me this ,exactly -
In industrial circles, the common version of this is
don't let the perfect be the enemy of the good
eg, to survive, you need to ship and sell products
another, cruder version
make shit, sell shit, ship shit
@failedLyndonLaRouchite @tante I was pondering how at an “individual level”, most people actually crave for software staying still. How many pieces of software do I have where I explicitly stick with older versions? Actually pretty much every single one.
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
@tante As an audio engineer, I don't fault other engineers who take on work (I guess) remixing or remastering songs/albums, but the USUAL reason that even happens at all has nothing to do with the ARTIST wanting it done.
It's some 30-something fuckwad running a social media campaign for a publishing conglomerate or streaming service who thought it would be fun to "refresh" the tracks with a modern twist or mAkE eVerYtHinG LoUdeR.
It was done with the original release.
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
@tante this advice isn't specific to OSS either
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
@tante It makes me think about this article: https://andrewkelley.me/post/why-we-cant-have-nice-software.html
-
@dashdsrdash @ArneBab @tante It’s possible (but difficult) to design software to be intuitive and easy to use. It’s easier to write good documentation but nobody wants to do it. This is why so many projects give the documentation work to AI now even though it’s not very good. They kind of understand that they are supposed to have documentation but don’t want to do it and don’t *really* understand what the purpose/goal of documentation is.
Small bit of correction:
There is no intuitive software. At best, there is software which re-uses a common pattern, formalized or not, so that what you have learned previously is recognizably appropriate in this new system.
-
Open Source hot take: A software project is allowed to be *done*. Not everything needs to add features or rewrite things. You can just be happy with functionality and focus on just maintainance. "Maintenance mode" is not always bad but can just show a mature product.
-
Small bit of correction:
There is no intuitive software. At best, there is software which re-uses a common pattern, formalized or not, so that what you have learned previously is recognizably appropriate in this new system.
@dashdsrdash @MisuseCase @ArneBab @tante "There is no intuitive software. At best, there is software which re-uses a common pattern ..."
Okay, but this is a distinction with no practical difference. All human minds are a bunch of things learned previously (whether on an individual level, or a genetic lineage level in the case of instincts).
Intuition itself doesn't exist outside of the context of learned patterns (assuming we include genetically learned patterns).
-
@dashdsrdash @MisuseCase @ArneBab @tante "There is no intuitive software. At best, there is software which re-uses a common pattern ..."
Okay, but this is a distinction with no practical difference. All human minds are a bunch of things learned previously (whether on an individual level, or a genetic lineage level in the case of instincts).
Intuition itself doesn't exist outside of the context of learned patterns (assuming we include genetically learned patterns).
@dashdsrdash @MisuseCase @ArneBab @tante And even if we artificially draw a distinction between innate instincts and individually learned patterns, there is the possibility of "intuitive" software which relies upon instinctively known patterns.
I mean, we COULD do that, but why? No actual human users think only instinctive knowledge separate from individually learned knowledge.
-
@dashdsrdash @MisuseCase @ArneBab @tante And even if we artificially draw a distinction between innate instincts and individually learned patterns, there is the possibility of "intuitive" software which relies upon instinctively known patterns.
I mean, we COULD do that, but why? No actual human users think only instinctive knowledge separate from individually learned knowledge.
@isaackuo there is software that is easy to understand and efficient to use.
Usually because it uses similar patterns of interaction throughout the software, gives perceptible hints for next actions, and enables combining learnt patterns.
That’s what UX designers do, and it makes a huge difference. For the command line, it’s API design, a part of language design.
Look at game design for possible paths to take.