• 1 Post
  • 20 Comments
Joined 4 months ago
cake
Cake day: July 22nd, 2024

help-circle
  • Because you don’t know what you’ll need that wrapper beforehand, that’s my entire point.

    Unless you’re only doing trivial changes, the chances are very high that you won’t be able to design the class structure. Or, you end up essentially writing the code to be able to write the tests, which kind of defeats the purpose.




  • Tests first is only good in theory.

    Unit tests typically test rather fine grained, but coming up with the structure of the grain is 80% of the work. Often enough you end up with code that’s structured differently than initially thought, because it turns out that this one class needs to be wrapped, and this annotation doesn’t play nice with the other one when used on the same class, etc etc.






  • I think you don’t distinguish enough between professionals and capables.

    All your points are either “sysadmin” or “complete buffoon” and nothing in between. That’s not how reality works.

    You absolutely are expected to be able to check your oil and just a few years ago, you were expected to be able to change your tires. That doesn’t make you a car mechanic, but a capable user.

    I’m absolutely not a car guy, but I know how to change a tire. Why? Because it’s necessary knowledge. I also know how to file my taxes, even though I’m not an accountant or tax consultant. Again, because it’s necessary.


  • The sentiment should rather be, that the system maintains itself. And that’s actually something I would get behind.

    Tinkering around is cool, but I’m in my 30s and when my girlfriend’s build pipeline finishes, I’ll be a father, I can’t spend 4h every week fixing stuff, I need a reliable platform to work on. Currently that is indeed a mix of Debian and Nix for me.

    At least the normal update process should work completely transparently for the user.


  • Not a sysadmin, but a capable user.

    People shouldn’t just accept technology as magic. They should understand at least the basic principles of the technology around them. Corporations want us to be dumb and incapable. Look at cars, you seriously can’t expect a normal person to fix anything on them. But that’s not because of inherent complexity, but because corporations want us to just buy new parts when they think it’s time.

    Sapere aude was true in the 19th century and it’s true today as well.




  • I wouldn’t even call it that. It’s a weird lack of a sense of scale combined with organizational hurdles.

    They basically can’t estimate, how much resources a proper app would need and they don’t know how to manage teams to work on a common codebase. So they simply draw a diagram of the functionalities, spin out each block as a “Service”, assign that to a team and call it a day.

    I’ve talked to several of them about this and I had to do very simple math directly in front of them to convince them. I’ve had to explain to a grown man, an experienced engineer, that 16 cores and 96gb memory are more than enough to handle a million simple inserts per day in a batch mode. He wanted to split the job into 4 services, each essentially running 10 lines of actual business logic, each using the resources mentioned above. Absolute madness.



  • Gitlab feels also a bit weird to me, though.

    The git part is perfectly fine, but at my job we’re trying to get our cloud tool landscape to work with gitlab CI and it’s really a struggle.

    Something as simple as packaging the same artifact in two different ways or running tests in docker images before pushing them is really hard. Gitlab seems to insist on having a single commit as its entire context and communication between stages (especially on different runners) is almost laughably limited.

    Jenkins on the other hand has at least the option to have a shared workspace. Yes, this has its downsides, but at least I have the option. Gitlab forces you to use outside tools in very involved ways or follow exactly their own, highly opinionated approach.