Live data from Hacker News

Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

acai.sh

311–316 of 316 posts

Re: Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

#311

Earlier quoted context omitted.

A tried and true content marketing strategy. The 100+ upvotes suggest he's doing something right.

A video of someone punching their grandma in the face will get 20M+ upvotes, but how many AI software licenses will it sell?

I'll send you $100 if you can find me a video of someone punching their grandma in the face and getting 20M+ upvotes.

Re: Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

#312

So...is this just Cucumber cough cough behavior driven design again, but stored in YAML so that LLMs can read it easier by loading the AST instead of tokenizing the text?

OMG I forgot all about cucumber, but wow the "cucumber cycle" of old sounds a lot like LLM psychosis of today. As in, the solution to cucumber problems was always to invest more into cucumber! Add more operations! Integrate more things into it!

Did cucumber go away? I never hear about it anymore.

Re: Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

#313
post #309

Earlier quoted context omitted.

The source code is not the specification, the source code is an implementation of the specification. The specification tells you what happens, the source code tells you how it happens. Ideally you also have some additional documentation for the why.

As any four-year-old can tell you, ‘why’ is infinitely recursive. ‘What’ from the perspective of level n is ‘how’ looking down from level n+1 and ‘why’ looking up from level n-k.

That usually does not matter in practice because you quickly reach a level of sufficient understanding.

We usually use UUIDs for this type of object but we have to send those objects to the legacy system XYZ, which only supports IDs with up to sixteen characters and is case insensitive, so we generate sixteen character random alphanumeric strings with uppercase letters which provides 82 bits of entropy.

Could you go deeper? Sure. Why do we have to send those objects to XYZ? Why does the legacy system still exist? Why does it not support UUIDs? Why is there no secondary key specifically for that system? Why are we using UUIDs?

But most likely you do not have to spell all those out. The point of a why is to explain why something is not what one would expect, you explain on top of some common knowledge. Everyone involved might know what XYZ does and why some objects have to get send there. If not, that is probably written down elsewhere. Why is the system using UUIDs? Maybe written down in the design for the persistence layer.

Re: Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

#314

Earlier quoted context omitted.

We never left waterfall in the end. Working with and for dozens, collaborating with probably a hundred software companies in different scales, every single one said: We do agile Guess what? Every single one of them was doing waterfall. Their agile included preplanning and pre-specifying the full spec and each task, before the project kicked off. We'd have meetings where we'd drill down into tasks, folks would write t…

Continuous integration and demos to stakeholders (devs, designers, product managers etc) every 2 weeks - these practices are now engrained :-) It's frequent to then do corrections after these demos, and that really helps ensuring the product manager is getting what their customers need. Easy to forget waterfall in 1970s / 80s really meant teams working on their own for months and then realizing there is no way to ass…

Most companies don't do that much of a regular demo to customers anyways - turns out most customers aren't even interested for the first 30-50% of the project, then they become mildly amused, until the final 80% - that's they start getting incredibly interested and opinionated.

> Agile as "devs can do what they want" never really existed ;-)

No real agile ever really exists in the end :)

But it's not devs not doing "what they want" that bothers me - it's the absurdly over-planned project estimates and timelines, with every detail of the project being specced out, not a lot of margin room for errors, invoking the name of "agile principles" as a way to deal with exactly things the PM's don't want to deal with in that moment.

I'd be fine with some degree of planning ahead, or starting with prototypes/PoC's, but such a huge part of the industry just chunks it into "same boat but we'll put agile stickers on the holes", and there is a whole industry of ceremonies around it, that it breaks the "core principles" of agile.

What a beautiful irony have we built :)

Re: Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

#315
post #309

Earlier quoted context omitted.

As any four-year-old can tell you, ‘why’ is infinitely recursive. ‘What’ from the perspective of level n is ‘how’ looking down from level n+1 and ‘why’ looking up from level n-k.

That usually does not matter in practice because you quickly reach a level of sufficient understanding. We usually use UUIDs for this type of object but we have to send those objects to the legacy system XYZ, which only supports IDs with up to sixteen characters and is case insensitive, so we generate sixteen character random alphanumeric strings with uppercase letters which provides 82 bits of entropy. Could you go…

Sure, I'm not suggesting we need to go into infinite regress for every explanation! I'm saying that you should bear in mind that you _are_ in the middle of an infinite stack, and what is a ‘how’, a ‘what’ or a ‘why’ is just a function of your current position in it relative to the thing you're talking about. In the ID generation code you might want to explain why you're using this weird format here instead of a more standard format (because it needs to be passed to legacy system XYZ). But if you go up a step or two to where the ID is passed to XYZ in code, that ‘why’ has become a ‘what’ — the calling code acts as a ‘specification’ for the behaviour of that ID generation code.

Re: Specsmaxxing – On overcoming AI psychosis, and why I write specs in YAML

#316
post #308

Earlier quoted context omitted.

Most 'programmers' cannot read or write code very well (or reason about structure or architecture) and so they want to 'program in english'.

This has been attempted for as long as programming has existed.

Sure but now it actually works somewhat.
Post reply on HN