Hanlon's Razor and working with young engineers27 Jul 2013
Think back to when you were a fresh engineer writing your very first production application. If you were anything like me, you didn't quite appreciate the value of separating concerns because you had never had to maintain somebody else's code. Not only that, but you probably didn't write any unit tests because you didn't know any better.
I'm not afraid to tell you that my first production application was a WinForms
project written in C# and the entire application was in a single file. That's
right, about 2,000 lines of code in
FormMain.cs. Then came the day that I
needed to add a feature and I hated the old me for doing this. What an asshole.
Why would old me make life so hard?
Now consider Hanlon's Razor which can be summed up in a single sentence:
Never attribute to malice that which is adequately explained by ignorance.
Past me wasn't an asshole, he simply didn't have the experience, knowledge, or foresight to consider the consequences of structuring an application the way he did. It was so easy to be mad at past me rather than appreciating that current me knows better.
Take a moment to appreciate how far you have come in your career - the exercise of looking back works even if you've only been writing code for a week or month. It's quite amazing.
Now consider this when working with a young engineer or with somebody who has different experiences than you. Think about this when they ask a seemingly stupid question and be empathic to their position in their career. Extend the same appreciation to how far they've come because they deserve it as much as you do.