How Chasing Predictability Destroys Predictability in Software

Поделиться
HTML-код
  • Опубликовано: 17 ноя 2024
  • НаукаНаука

Комментарии • 21

  • @kainx99
    @kainx99 26 дней назад +7

    I particularly enjoyed the bit about leader & managers not using system thinking, which is a major cause of frustration for me in my career... Because they keep us churning more feature, more tweaks, to the detriment of the whole system, and soon the code entropies to the point where every single little thing takes an eternity, because they would not let us architecture the software/system, all they wanted was to add features, no matter the cost, no matter the problem it will generate in the future

    • @FixingSoftware
      @FixingSoftware  26 дней назад +1

      This has been my experience in a lot of jobs as well. Not all though, there are companies and leaders that "get it."
      Also hopefully this is coming out in the video, but I actually understand and empathize with those leaders/planners that are pushing for features. They're also under pressure from the business to deliver.

    • @niamhleeson3522
      @niamhleeson3522 26 дней назад

      Doesn't matter how beautifully designed your system is if your software cannot be released! Software must be useful to someone for the company to survive.

    • @D4no00
      @D4no00 25 дней назад

      @@FixingSoftware I found that companies where business pushes to deliver fast are very rarely efficient. If your business is not in decline, you can afford people refactoring stuff and you should allow them to do that without any constrains, because building poorly designed software creates not only tech debt but toxicity in the company, not to mention that it encourages taking shortcuts. Eventually if the software written degrades beyond a point, all good engineers will leave as they get tired of working in such conditions and you will be stuck in the low efficiency zone forever, I've personally seen a few companies failing their business this way.

    • @FixingSoftware
      @FixingSoftware  25 дней назад

      @D4no00 that’s a good point about the state of the business. I’ve also seen it in low margin businesses. Like in private equity situations where excess profits are siphoned and returned to the holding company shareholders, vs being re-invested.

  • @RogerThat902
    @RogerThat902 26 дней назад +1

    This nails a lot of the problems.

  • @MFTGShane
    @MFTGShane 26 дней назад +4

    Your videos deserve an order of magnitude or 2 more in terms of views. Really high quality content!

    • @FixingSoftware
      @FixingSoftware  26 дней назад +1

      @MFTGShane appreciate the kinds words! Helps if you share but obviously only if you want to.

    • @MFTGShane
      @MFTGShane 26 дней назад

      ​@@FixingSoftware shared on LI, this will definitely help someone in my network.

    • @FixingSoftware
      @FixingSoftware  25 дней назад

      @MFTGShane much appreciated! you can tag me in your share as well and I can answer questions or make clarifications, this is me on LI:
      www.linkedin.com/in/benjaminrthorp/

  • @dranon0o
    @dranon0o 26 дней назад +1

    > what is the solution
    > we don't have leader that can modelize complex-systems
    Here the start of a solution:
    - find and encourage social-skilled developers to become manager and in leadership position while providing training
    - prevent non-techies in leadership positions that manage software development, slowly replace them
    - be able to visualize your domains and systems, if you can't, then you either over-engineered your codebase OR badly designed it (to be too complex)
    Also what helped (in my exp) with predictability:
    - learn DDD and EDA
    - use documentation tools, visualization tools, comprehensible monitoring tools
    - avoid splitting your codebase too much into too much services
    Great video as usual, your opinions are highly appreciated!

    • @FixingSoftware
      @FixingSoftware  26 дней назад +1

      this is great, would love to work on a project together!

    • @D4no00
      @D4no00 25 дней назад

      I've worked in a company where this was in place and it worked greatly! You have folk that interacts with the client and comes up with the requirements (yet still have a good understanding of how technically this should work) and you have some very skilled and socially apt software developers, that not only understand in detail a part of the business, but can also come with a solution to the problem on their own. Each of them work in cooperation to achieve a result, as there is no chain of command that would allow one or the other to take the decision alone.
      I'm really embarrassed about the processes at my current work, as it is exactly the opposite. Total lack of any form of documentation (both technical and from business side), untested projects, using services + shared global storage (I guess they missed the part of data owning when they've read the definition of microservices). Their focus is on delivering features, however I can easily say that the rate they deliver features is at least 10x slower and more painful than the company mentioned above.

    • @FixingSoftware
      @FixingSoftware  25 дней назад

      @D4no00 yeah sometimes speed is an illusion because of the accumulation of undone work and tech debt. It slows everyone down. And it doesn’t take long for that to happen.

  • @JonKruger525
    @JonKruger525 21 день назад

    I think predictability has a lot of value. If my team is relatively good at estimation, that means they have reduced the amount of uncertainty in the system to the point that they can deliver consistently, which I think is often a sign of a good engineering manager. I like having that predictability on my team because it reduces the risk of giving an incorrect estimate and then having to work long hours to hit the incorrect date.
    It’s definitely a trade off though. If you want more predictability from a team, then the team has to work in a more rigid fashion. Sometimes that’s bad, and sometimes it’s good (large cross team projects). I think some companies make the mistake of thinking that it always has to be one way or the other (especially if they make everything rigid).

    • @FixingSoftware
      @FixingSoftware  21 день назад +1

      Once again, well said. My issue isn’t with predictability itself, hopefully that was clear.
      It’s the negative downstream consequences of optimizing solely for predictability. Yes an engineering manager who gets the multitude of ways predictably can be achieved, without killing the longer term sustainability of the team, they’re the keepers.
      To play devil’s advocate: if a team is encouraged to have accurate estimates, might that incentivize deviant corner cutting behavior?

  • @JurekOK
    @JurekOK 25 дней назад

    The "add more lanes creates congestion" is a really poor example. What actually happened there is that with more lanes, more people got served, even if it's at the same level of quality as before; -- as previously these people would not even attempt to get to where they want to.

    • @FixingSoftware
      @FixingSoftware  25 дней назад

      Thanks for the comment. That’s partially true but regardless, it still paradoxically resulted in more congestion. It’s similar to how speed control can actually increase throughput in traffic. It’s a paradoxical non-intuitive result.
      There’s a similar paradox with electronic devices. The more energy efficient they become, demand for them increases and the more electricity end up being used.

  • @Monzy_
    @Monzy_ 23 дня назад

    The video is choppy, it’s distracting and hard to watch

    • @FixingSoftware
      @FixingSoftware  23 дня назад

      choppy as in the actual audio and video is cutting in and out? Or the content itself is choppy?

    • @benjaminthorp2208
      @benjaminthorp2208 23 дня назад

      Ok yeah I see it. Thanks. I accidentally had my phone connected through Bluetooth instead of USB for this video 😩