Top
Best
New

Posted by edent 10 hours ago

I paid people to try and follow my README(shkspr.mobi)
351 points | 183 comments
bambax 7 hours ago|
> But it is really hard to ignore your own biases. Of course you know that certain commands require sudo and obviously when you wrote -foo you meant --foo and everyone knows that you have to reboot afterwards.

I sometimes write readmes for myself, so that I can remember the exact steps to generate a data report, etc.

It's surprising how much they become incomprehensible after just a couple of weeks; when everything's in our head it's all clear, fluid and self-explanatory; but once we have forgotten the context, nothing makes sense anymore.

pixl97 7 hours ago||
Most people don't think linguistically, we have way more conceptual thinking. What makes it difficult is we rarely realize we are thinking conceptually when writing because these concepts occur automatically and we don't notice it.

In school this lead to a lot of difficulties for me, one in writing those comments out for other people to understand, but the other seemed to be that when reading the average statements used in education for teaching I could map the same strings of language to multiple and sometimes conflicting statements because of the inexactness of the language used.

It turns out explaining concepts while leaving little room for different interpretation is hard.

devmor 4 hours ago|||
As someone who does think linguistically, I often end up at odds with people who are expecting me to imply things in my text, when my text is written specifically to convey exactly what I mean and nothing further.
fellowniusmonk 3 hours ago||
Yes 100%.

There is no undercurrent or symbolism, just read the email as written please.

I became aphantasic at ~15 and spent years after interfacing with non tech people over the phone and email.

In English it's so damn hard to be precise compared to languages like Portuguese.

Also, LLMs blather so fucking much context is impossible to track wtf they are even writing about.

* Fast screenshotting and arrows/drawijg should be first class on all OSes.

wisemang 3 hours ago|||
I’m curious about your statement that you “became” aphantasic. Any specific triggering event, or how did you realize this?

AFAIK aphantasia hasn’t been super widely known about until the last decade or two (obv I have no idea how old you are now)

dylan604 2 hours ago||
I learned about it in high school, and that was 80s/90s but not by name per se. I took the ASVAB and there were questions like "fold a piece of paper in half twice, punch holes in a pattern, and then pick which image would be the result when the paper is unfolded" that I thought were ridiculously easy. I was told that they were difficult for people that cannot form mental images and these help test that ability.
pbhjpbhj 3 hours ago|||
I've never heard of becoming aphantasic, how did that happen?
reubenmorais 5 hours ago|||
> explaining concepts while leaving little room for different interpretation is hard

To play devil's advocate: explaining concepts while leaving little room for different interpretation is also pointless. If you don't care about the interlocutor's interpretation, then why are you even talking to them? If the task is really deterministic, then automate it.

dylan604 2 hours ago|||
You have to learn the rules before you know which ones can be bent and which ones can be broken.

The problem I have is that when I'm asked to follow a procedure that you know just while reading it was created by someone with less experience and better/faster/cheaper ways are available to get to the same result. Deviation will however get you into trouble because the procedure is what is vetted and approved. Deviations from procedure could open one up to liability if things later do not work as expected.

pixl97 4 hours ago||||
School, and specifically learning is not deterministic.

While we can automate away most things, human learning doesn't seem to be one of them.

reubenmorais 4 hours ago||
Yea, that's what I was trying to get at. It is not deterministic because the interpretation is the point. It is how the learner integrates the material. If you don't interpret, then you're not learning, you're just memorizing.

A teacher should therefore embrace the fuzzy nature of explaining concepts.

pixl97 2 hours ago||
With humans it is a mix of both. Learning just the algorithm is hard, you need some amount of initial data to conceptualize, and this amount of data can vary pretty greatly between people.
Zarathustra30 4 hours ago|||
Because the Junior eventually grows up to become a Senior, and they will be responsible for maintaining said automation.
bobthepanda 4 hours ago||
Also, if it’s truly interpretive it leads to a “bus factor” of one, where somebody going on vacation or whatever represents a real timeline risk.
alexpotato 5 hours ago|||
I find that writing this documentation is both a "muscle" and gets better with experience.

e.g. as you both write documentation and see yourself or others use it, you start to get a feel for what people tend to understand and how to communicate it.

You can also do "dog fooding" where one person or group writes the docs and then other people follow them. If you iterate on this quickly, you can get to really good docs in a short amount of time.

1718627440 6 hours ago|||
That's why having a long shell history is so great, you can just scroll back further to get more context, because it really captured everything.
fylo 4 hours ago||
Transcript
pbhjpbhj 3 hours ago||
Your comment needs some documentation! ;oP
dofm 3 hours ago|||
The one thing I have found that really helps here, for self-directed documentation, is to write it for a modified version of yourself.

You may still be the audience. But you will be four or five years older, shit will have gone on in your life, you will have more to remember, you will be tired, you will have less patience, you will resent being forced to do archaeology on yourself, and have a dim view of the irresponsible young scamp who thinks he has an excellent memory that you are right now.

Write for that person and your documentation will be better.

(As you may be able to tell, I am now that person. And I fear there are two more cycles of this to go)

ramgine 6 hours ago|||
My boss gives me shit regularly for not remembering things. He doesn’t seem to understand that when you manage environments in all three clouds, storage arrays in four different countries from different manufacturers, four on prem virtual clusters, Active Directory, entra, etc that you can’t remember everything all the time if you haven’t touched it in a while.

I started a daily journal when my team’s workload got to be so much that we can’t remember everything. It helps, but even going back to it weeks later there were things I did not write down because I assumed I’d remember them later.

I’ve since gotten better at being more comprehensive, and trying to think in the “how to make a sandwich” way of instruction. I’m not being condescending to my future self, I know my future self has too much shit to mange to remember it all.

Telaneo 6 hours ago|||
So long as you know where to look and can quickly check, not remembering is OK. If your boss wants you to remember everything of the top of your head, he's being a knobhead.
RobRivera 6 hours ago||||
You should take this up with someone in the org you trust
qmr 4 hours ago|||
"All three clouds" is such a weird phrase.

There is no "cloud". There is other peoples hard drives.

But let's pretend the "clouds" you use are "clouds". Ok. What makes the other hosting providers not "clouds"? Bit of a no true Scotsman.

Domenic_S 4 hours ago|||
This useless and obnoxious criticism actually ties into TFA a bit: when GP was writing for this audience, they wrote in a way that wasn't overly precise, but specific enough that we'd understand their point.
crumpled 4 hours ago||
This comment actually ties into the GP's point about how when you get further from the context, not being overly precise will lead us to eventually not understanding that part of the point.
Natsu 4 hours ago||
My new test is to ask an LLM questions about the documentation and see if it gets correct answers. I wonder if this will become a common QA step for the docs at some point, it's very useful for finding gaps in the docs or things that are unclear.
andai 7 hours ago||
>I hadn't actually explained what the software would do.

Half the posts I see lately are like, "Gleam 2.0. What we learned" and then you go to the homepage and it's "Gleam is a Tribble for your Fork! (Scroll down) See if you qualify for Gleam Enterprise!"

da_chicken 35 minutes ago||
That's true.

But, I also see a lot of posts that have comments like, "How am I supposed to know what Gleam does when I don't know what a Tribble is? The blog doesn't explain anything! How can someone write an article and not explain these terms that they use so much?"

And the linked blog article is hosted in the Daily Tribble News section of www.tribbleworld.com.

appplication 5 hours ago|||
It’s a bit funny how normalized this is. Surely being more clear would provide some market advantage?

Or perhaps not, if folks who need a Tribble for their Fork achieve instant enlightenment upon reading the marketing copy.

bambax 4 hours ago|||
It also happens with marketing emails, or (worse) waiting lists: "great news, we're live!" -- Who the heck are you again?
pinkmuffinere 4 hours ago|||
I recently had this experience with hotjar [0]. I _already use hotjar_ and still struggled to understand the page lol

If somebody from hotjar/cintentsquare sees this, I’d prefer if your page was more straightforward about the name change. Maybe try “we’ve rebranded to content square”

[0] https://contentsquare.com/hotjar/

beardbandit 7 hours ago|||
I hate marketing websites especially for developer products.

“You no longer have to florp, now you can vorp!”

Big numbers, random charts. 10x 100x 200x!

Who is this for? Just make the docs the home page.

epistasis 4 hours ago|||
The best explanation I have heard is that these pages exist for the finance team that has to go try to understand what the product is that they are being asked to authorize a purchase for.

So what comes across as extremely vague, unclear, and perhaps obfuscatory, is actually somewhat properly targeted to someone who needs to decide "is this an appropriate class of purchase for a dev team." They don't need to decide if it's the best technology for the purpose, just that it is a technology for that purpose.

This is especially clear on every single one of the AWS technology top hits. Clearly the product is so vaguely described that an actual user gleams zero usable information on whether it will solve the task they have at hand, or what the capabilities are.

trollbridge 4 hours ago|||
Pricing:

Individual - free Pro - $20/mo Business - $50/mo (mysteriously the same as Pro) Enterprise - contact us

rapnie 7 hours ago|||
I was confused by your mention of "Gleam", but I suppose it is just a generic name, not referring to Gleam [0], the functional programming language, as the latter is an example of a project that focuses on concise and minimalist documentation (btw, its README is just a reference to the website).

[0] https://gleam.run/

(Updated the text as the downvotes indicated people misunderstood what I wrote. I agree about OP's observation)

extralongdivisi 6 hours ago||
The generated confusion ironically supports OP's point
bethekidyouwant 6 hours ago||
It’s never irony
Analemma_ 3 hours ago||
Now imagine living in San Francisco where you see this shit on every bus ad and billboard. Except these days they’re all “Tribbling. With agents. gleam.ai”
bryanhogan 8 hours ago||
This is very close to what you call usability testing in the field of UX design.

The Nielson Norman Group has a good introduction to this: https://www.nngroup.com/articles/usability-testing-101/

Is this interesting to people on HN?

I majored in a mix between coding and design.

bambax 7 hours ago||
I think I read somewhere (and in any case it matches my experience) that the first user will catch 50% of the problems and that with 5 users you can catch close to 90%. So human testing is not just invaluable, it's pretty cheap for the benefits it brings.
nkrisc 6 hours ago|||
At every UX job I've had we generally ran usability tests with 6 participants. This was before the online usability testing tools proliferated and we had a lab in our office (one way mirror with observation room and everything). Every UX researcher I worked with said based on the available research and personal experience it is as you said: more than 5-6 participants would hit diminishing returns pretty hard and wasn't really worth it.
citelao 7 hours ago||||
Probably you learned that from them! The first user is 31%, from their testing.

https://www.nngroup.com/articles/why-you-only-need-to-test-w...

https://www.nngroup.com/articles/how-many-test-users/

bambax 5 hours ago||
Yes, very probably, thanks!
zeroq 7 hours ago||||
Its not just QA and bug hunting.

You want to hire your target audience, which may be vastly different from yourself, and suddenly you discover that the language is throwing them off, the color scheme brings different meanings, and they just don't understand the flow which felt completely natural for you.

Sammi 1 hour ago|||
It's more like the first user catches all of the critical bugs and a handful of users catch all of the high impact bugs. Cause that's kinda the definition of the impact of critical and high impact bugs.
_false 2 hours ago|||
There's the famous quip that Steve Jobs hated focus groups. What people miss is that he (and Apple overall) was heavy on UX testing.
sbarre 5 hours ago|||
I was also going to post "this sounds like usability/user research".

But I guess we all re-discover things when we need to.

The biggest issue I've seen with tech docs is often expert users of a given tool or product are enlisted to write the docs, because of their expertise.

But then ironically they end up writing those docs for an audience that shares their level of expertise, rather than for the intended audience.

So you end up with lots of assumptions or leaps of logic in the docs that the intended audience can't follow.

bmoathn 4 hours ago|||
I'd wager this is interesting, seems there are a lot of users here building things on the side (or main projects) that need clear UX if they're anything like me, they don't have that UX background to know the best practices. I know I just clicked your link anyway...
lukan 8 hours ago||
Yes very much so and thanks for the link.
extralongdivisi 6 hours ago||
> I hadn't actually explained what the software would do.

I cannot tell you how many READMEs I've read that follow the pattern: "<uninformative-name> is a <buzzword> <buzzword> written in <language>." I only have some semblance of what it does after using/seeing a demo; too often one that isnt available through the README.

jllyhill 6 hours ago|
The other variant is "Foo is an alternative to bar". While it could work in the niche you are in and it is totally fine to not target people outside of it, it could be really hard to get into.
hackernudes 2 hours ago||
Yeah. It was infuriating trying to figure out Minecraft Java mods because they are all like that.
legacynl 8 hours ago||
I love this. Most readmes are plain bad. I think the most egregious is when a readme doesn't state what the project does. I get that not every project is aimed at the public, but if you go through the bother of creating a readme file, why not go the extra 10 centimeters by writing the most basic information? Other issues: * outdated (and thereby wrong) information * using un-introduced abbreviations (bonus points for abbreviations that have common meanings, e.g.: EG, NB, IE, ETC)
fg137 2 hours ago||
There are a number of (newish) AI projects on GitHub whose README make zero sense. I would read it three times but still have no idea what it does.

If your project is aimed at average developers yet someone with professional software engineering experience like me cannot understand it, sorry I'm not going to use it.

Viliam1234 3 hours ago|||
> using un-introduced abbreviations (bonus points for abbreviations that have common meanings, e.g.: EG, NB, IE, ETC)

Every company should give their new employees a list of in-company invented words and abbreviations, so that you don't search for them online and then feel like an idiot for not being able to find them. Especially when the older employees use them as if they are common knowledge.

jampekka 4 hours ago|||
Could have used extra 1 centimeter to format the comment's list properly. :)
extralongdivisi 6 hours ago||
> go the extra 10 cm

Going to steal this

fastaguy88 17 minutes ago||
I find it surprising/annoying/frustrating that many README's start of with how to download/install the software, without ever telling you what it is designed to do. (Perhaps you must have some inkling of what it does to be motivated to read the README.)
pulpconversatio 32 minutes ago||
IDEO.org's design kit has a lot of helpful "design research" tools to solicit person-to-person feedback. Perhaps helpful to people reading this https://www.designkit.org/methods/interview.html
coo1estguy 10 hours ago||
This used to be called "I hired QA people to identify gaps in my project", but hey now it has become paying people to follow readme
nkrisc 9 hours ago|
This sounds exactly like UX usability testing. Sit down with someone and watch them work through whatever process you’ve created.

It’s normal to compensate them for their time.

Normally though you don’t modify it after each participant. But for something very niche like following a README (as opposed to an e-commerce flow targeted to the general population) it might be fine, if less rigorous.

bryanhogan 8 hours ago||
Yes, this is right! It's closest to usability testing in UX design.

As I already mentioned in another comment, I recommend this post for people who want to go a bit deeper: https://www.nngroup.com/articles/usability-testing-101/

tilemarch 7 hours ago||
Humans are great, but AI can really help here too. Let me explain :)

I write docs that AI agents have to follow to play a game through an API, then spin up 20 sub-agents each with their own identities / properties etc. and watch where they fail. They get stuck in the same places as humans.. or they will point out the "obvious" steps not explicitly mentioned.

now where the AI tests start to fall apart is that an agent doesn’t tell you the doc is confusing, it just does something wrong with full confidence. A person on a call says “wait, what?” and that’s worth the 25 euros :)

chanux 9 hours ago|
> My jokes aren't funny and are actively confusing.

I used to write technical documents in prose style, sometimes with meandering stories. I guess I picked it up from my early blogging days. I realized I hated reading some of them back. So I tried to keep it cut and dried. I do sometimes sprinkle a bit of colorful wording just to add a bit of humanity but only if it doesn't get in the way of the main message.

fmx 5 hours ago||
I'm glad the author mentioned this particular learning. Even if you do enjoy reading your own jokes, many other people will find them at best annoying and at worst confusing. When you add in people from other language/culture backgrounds the risk/reward of jokes gets even worse!

There was a famous conflict over rms's joke about the abort() function in the glibc manual[0], which said:

> Proposed Federal censorship regulations may prohibit us from giving you information about the possibility of calling this function. We would be required to say that this is not an acceptable way of terminating a program.

I think that joke illustrates nicely what I mean: it would only have made sense to people in USA, and would have just confused others. Even those who understood it would - IMHO - most likely not appreciate it being in the glibc manual. People don't read manuals to be entertained - they read them to find out as quickly as possible how to get their work done.

[0] https://lwn.net/Articles/770966/

Matl 3 hours ago||
It depends. Sometimes having a short joke or interesting wording in otherwise terse text can help with what is otherwise a bit of a slog, but agreed that it can be confusing.
kens 4 hours ago|||
> "They were the ones who caught the mistakes that no spell chequer could."

I thought that maybe "spell chequer" was the valid British term, which would be interesting, so I searched but it isn't. It turns out that the joke here is that "chequer" is a valid British word, so a word-based spell checker won't flag "spell chequer", so it's self-referential. I see why people found his jokes actively confusing.

patrickmay 3 hours ago||
Agreed, and yet I liked it.
spicyjpeg 7 hours ago|||
When deciding on a style for documentation, I typically draw the line between tutorials and references. The linear top-down flow of an introductory guide lends itself well to inserting additional context throughout it even if not completely on-topic, while in an API or hardware reference you generally want to keep each section reasonably self-contained, trivially searchable for (minimizing false hits by carefully choosing keywords) and readable independently of the others. I have found the literate programming approach [1] of writing entire tutorials as code to work pretty well for this purpose, which I've used to great effect in some of my pet projects [2].

[1] https://en.wikipedia.org/wiki/Literate_programming

[2] https://github.com/spicyjpeg/ps1-bare-metal

bambax 7 hours ago|||
> My jokes aren't funny and are actively confusing.

Well, I found that sentence in the post was very funny ;-)

clbrmbr 7 hours ago|||
isnt this what footnotes are for?
shevy-java 9 hours ago||
Being short and concise is usually the better way.

I tend to be too verbose in writing as I want to explain the context in more detail, but short, accurate, concise is best. Many developers fail at that too, though. Many projects do not have working examples. That annoys me the most. It sends a message of "I don't care about new users learning how to use my project".

ibizaman 8 hours ago|||
Same for me. What helped is the realization that I was trying to cater to everyone in the same document. Now I try to follow the organization outlined in https://diataxis.fr/ I’m still very bad at documentation in general but I’m less dissatisfied when I come back a few months later.
hxugufjfjf 4 hours ago|||
I started using diataxis for all my docs a while ago and I've never gone back to any other kind of documentation framework. In addition, all docs that do not follow this framework makes me really sweaty.
chanux 8 hours ago|||
I had diataxis in mind when I wrote my comment. It's an important and excellent guideline on picking the style based on purpose of the doc.
andai 8 hours ago||||
>"I don't care about new users learning how to use my project"

I published something the other day with minimal instructions, and felt briefly conflicted.

But I figured, if you want to run it, you'll find a way! (It probably doesn't even work on other operating systems, but porting it would take what, 20 seconds of Codexing?) It was true before AI, and it's definitely true now.

My intended audience is people who want to get their hands dirty. Though I suppose these days, that's the machine's job...

ignoramous 9 hours ago|||
> Being short and concise is usually the better way.

The golang docs are like this. As a novice, you are looking for detailed prose, but as you progress, you come to appreciate the terseness.

More comments...