3 ms·
I haven't seen anyone else point out: One of the ways you can often identify really experienced programmers is by them being able to pretty accurately separate
by chunkyks 4y ago
I haven't seen anyone else point out: One of the ways you can often identify really experienced programmers is by them being able to pretty accurately separate thing-that-probably-will-change from things-that-probably-won't.
Finding a good way to balance YAGNI with this-will-definitely-change-in-a-few-months-because-it-always-does is incredibly hard, and I've really appreciated working with engineers who make that prediction correctly.
- creakingstairs 4y agoI think there are also very low hanging fruits that doesn't take more effort but makes something way more future proof. Experienced engineers can identify those, and most of the low hanging fruits seem to be DB design related.
- hinkley 4y agoI'd say it goes even beyond that into being able to separate the hypothetical future problems that will be a minor irritation from the ones that will wreck your whole month. As you get to learn more failure modes for software, you start to realize you can't plug all the holes in the dyke, not if you had absolute control of every hand on your team. You can stop four problems or you can hedge against twenty. The problem is that hedging is way harder to explain to people. It's how we ended up with unsatisfying concepts like 'code smells'. It's not evil, it might not even be that bad, but... don't do it anyway.
- deleted 4y ago[deleted]
- JeremyNT 4y ago> Finding a good way to balance YAGNI with this-will-definitely-change-in-a-few-months-because-it-always-does is incredibly hard, and I've really appreciated working with engineers who make that prediction correctly. Is this a generalizable skill? To me, it feels like changes are more often driven by shifting business requirements and ephemeral victories of internal political battles rather than sound technical reasons.
- chunkyks 4y agoThat's the point, though. What makes someone senior is being good at everything that isn't writing code. Such as being in tune with the business and how it's demands behave over time.
- funkymike 4y agoAgreed. I think being able to predict what is likely to change is heavily dependent on knowing the business domain well since that is going to be the driver of change. I think it is a specific application of curiosity. It's also a matter of being forward thinking in general. I think both are skills one can foster and can apply more generally.