←back to thread

873 points belter | 2 comments | | HN request time: 0s | source
Show context
mr_tristan ◴[] No.42951184[source]
This list does resonate, but I’d make some tweaks to express things slightly better. For example:

> Most programming should be done long before a single line of code is written

I would say “most engineering should be done before a single line of production code is written”.

Formalizing a “draft process” is something I’m really trying to sell to my team. We work in an old codebase - like, it’s now older than most of the new hires. Needless to say, there’s a whole world of complexity in just navigating the system. My take: don’t try to predict when the production code will be done, focus on the next draft, and iterate until we can define and measure what the right impact will be.

The problem is that there’s a ton of neanderthal software engineering management thinking that we’re just ticket machines. They think the process is “senior make ticket, anyone implement ticket, unga bunga”. What usually happens here is that we write a bunch of crappy code learning the system, then we’re supposed to just throw that in a PR. Then management is like “it’s done, right” and now there’s a ton of implicit pressure to ship crap. And the technical debt grows.

I haven’t quite codified a draft process, but I think it’s kind of in line with what Chris here is talking about: you shouldn’t worry about starting with writing production code until you’re very confident you know exactly what to do.

Ah well, it’s a fun list of opinions to read. Chris’ WIP book is an interesting read as well

replies(2): >>42952052 #>>42955031 #
1. smj-edison ◴[] No.42955031[source]
Sort of tangent, but is there a semi automated way to select which engineer would be best to implement a ticket? Something like "we need to modify this API, let's run git blame and see who has the most familiarity" and some form of scheduler that prioritizes the most experienced engineers on the parts of code that only they know?
replies(1): >>42956493 #
2. mr_tristan ◴[] No.42956493[source]
Not that I know of.

I do think you could do some analysis to associate code with implementers and create graphs, where you account for additional things like time. I could see LLMs being helpful in maybe doing part of that analysis. But I would use that to see where the biggest "bus factor" is, i.e., finding subsystems where there's really only one active contributor.

For planning or task assignment, it might just help to say "ask X for more detail" when there's no other docs or your LLM is spewing jibberish about a topic