1. 17

  2. 5

    It’s interesting to read these kinds of reflections because I find it really helpful to compare them with my own experience. In this case, I agree wholeheartedly with everything except one point:

    Nothing really matters, except bringing value to the customer.

    The author may not have been a victim of their own success yet. As they point out elsewhere, you can’t predict which of your projects is going to be a commercial success. Unless you’re pretty sure it’s throwaway, you might as well write code like you’re going to have to live with it for a while.

    1. 1

      Absolutely agree with that. The amount of “legacy code” (i.e. code we hate but have to maintain because it mostly works) in many organizations is staggering.

    2. 4

      Dependencies aren’t free. You have to keep them up to date. They increase your compile or loading times. They add strange things to your stack traces. And very often they do more than what you need them to do, which means you’re paying for more than you’re getting.

      And don’t forget - dependencies can be buggy or ineffecient. It can be quite frustrating to open up what ought to be a black box, fix a bug or performance problem and then having to maintain a fork while the fix isn’t available as a nicely packaged upstream version yet. Even worse is if the changes are quite large and might not even be accepted. Then you’re stuck with your fork - yet another code base to maintain, perhaps full of choices you would’ve made differently.

      1. 1

        Not to forget the possible security issues when updating stuff. And let’s be honest, not many people have time to audit every dependency there is..

        1. 2

          Luckily, there are solutions to that sort of stuff, which you can integrate into your CI pipeline (for instance nvd-clojure or npm audit). It’s a bit of a pain in the neck to have previously-working versions suddenly bomb due to vulnerabilities, but it’s also a very easy way to ensure you keep abreast of security updates.

      2. 3

        That was an interesting read, but one thing popped out for me, because I disagree wholeheartedly:

        Always leave something unfinished at the end of the day

        I think that depends completely on how your head works. For me, it’s a nightmare, without a clean cut finish for the day I feel like there’s a little goblin poking at the back of my head for the whole night. Even with some care, things that I’m working on more long term tend to stick in my mind at all times and takes real effort to not spend every waking hour thinking about them.

        1. 1

          In my interpretation, I leave my tasks while knowing exactly what duty I will perform in the morning. It’s unfinished, but because I know what comes next, I can quickly get into the swing of it the next day.

          1. 1

            Yeah, it’s completely head-dependent

        2. 1

          No need to make the rules optional. It’s an incentive to not understand them in the first place. Just remember that the rules are made for Man, not Man for the rules.

          1. 1

            Really resonates with my own experience too (even the same amount of time). Thank you for writing it down! All extremely good advice for anyone who’s looking to grow quickly.

            1. 1

              I’m soon in my ~3rd year of this career so these posts are super helpful. Many of the things I already thought myself at times, but reading someone more experienced confirming my thoughts (or correcting them) is nice.