We had a consultation last year to better structure our code base to look more like the first picture. Then it slowly evolved back into the second picture.
Apparently, this is a dogfood burger. No idea why that exists, but I'll take it, because I'm definitely dogfooding.
I'm building a build system. And I've got three previous/ongoing projects where I'm directly integrating it.
And yeah, I've noticed that I'm kind of jumping between features, always just building them as far as I need them.
And in particular, I'm not really planning ahead. For exanple, I noticed after the fact that I could easily pull out a whole feature into a separate library, and that would already be useful on its own.
But on the plus side, it's much easier to figure out actual requirements this way.
I usually keep todo-lists, where I've kind of noted down the next few steps for each feature. And well, those then usually also contain infos for the step I'm currently working on or for previously completed steps.
I rarely actually stick to my planned next steps, but it does help when switching between contexts, if that's why you're asking.
The last thing I messed around with choked on some wide characters that weren't in the current locale, so I guess picture the top half of the burger bun, about two thirds of the top part of the patty, a small pile of raw ingredients off to the side and some inexplicable six-inch nails through the raw meat, maybe.
Most of the rest of the stuff I do could be compared to those nouvelle cuisine jokes that have been running since the 1980s. Large plate, inexplicably small serving of something allegedly gourmet but is probably a cube of the cheapest pâté from the closest supermarket that was flash frozen and then stylishly drizzled in jus de menthe or something.
"This project uses an API written in PHP, with HTML in Lua (OpenResty) and JavaScript. We're starting with the PHP component, please write me a burger with cheese, bacon, lettuce, tomato, pickles, ketchup and mustard."
"Absolutely! I'd be happy to help with that! I understand that we're creating a burger in PHP. Here is a burger, with cheese, bacon, lettuce tomato and mustard. Explanation of the burger: The bacon is on top of the cheese, so it doesn't fall off. The lettuce is included, to create an underlying HTML structure."
"Um, that's not at all what I asked for. First of all, you completely forgot the ketchup, which I explicitly told you was a requirement. Secondly, you said there was mustard, but I don't see any. Third, the cheese is cottage cheese? No one puts that on burgers! Why would you put cottage cheese? Third, the bacon is turkey bacon. That's not what I wanted at all. On top of that, the lettuce is UNDER the burger, not ON it. We're not writing HTML, this is meant to be a rest API. All the output should be JSON.
Please try again. Write me a burger in PHP with pig bacon, mustard and ketchup, which you forgot to include last time, cheddar cheese (NOT cottage cheese) and tomato, pickles and lettuce INSIDE the bun. This is an API, so don't write any HTML!"
"I appologize for the misunderstanding. Here is your burger with bacon (made from pigs, not turkey), mustard, ketchup, cheddar cheese, tomato, pickles and lettuce inside the bun. I understand this is an API, so I've taken out the HTML. Please let me know if there's anything else I can help you with."
"It looks like you've called a function to put the lettuce inside the bun, but you never created that function?"
"You are correct. Your PHP code would need to have the function defined to put the lettuce inside the bun. Here is your updated PHP code with the putLettuceInsideBun function included."
"Thank you, there's a tomato and the lettuce is inside the bun now. I'm not sure why you called the putLettuceInsideBun() function twice, but at least it's in there now. I note there's still no bacon, cheese, ketchup or mustard. You know what? I'm just going to write those parts myself!"
"Writing PHP code can be a fun and educational challenge! Please let me know if I can assist you any further with your PHP hot dog grilling project."
I would take an already-made burger, then inspect it and rip out elements of it, replace several others, add a bunch of layers of new things. It would take a few months and I would have no idea what I'm doing the whole time, but I would persist. The end result would be a delicious burger that occasionally has a missing item. Still working on why/where/how that happens. People would enjoy it, but most would not know that they can customize their burger, or the extent of the options.
(I used to code as a hobby in VB, C#, and Java over a decade ago, almost two; this burger example is me not knowing a damn bit of Lua, as I fork and modify a game mod to have a lot more features, less confusing variables, and lots of broken commented code as I have ideas but still don't fully grasp what I'm doing. Weeeee!)