What I’ve Learned in 45 Years in the Software Industry shares some great career for software engineers.

  1. Beware of the Curse of Knowledge
  2. Focus on the Fundamentals
    1. Teamwork
    2. Trust
    3. Communication
    4. Seek consensus
    5. Automated testing
    6. Clean, understandable, and navigable code and design
  3. Simplicity
  4. Seek first to understand
  5. Beware of Lock-in
  6. Be honest and acknowledge when you don’t fit the role.

My main take-away is the curse of knowledge. This is the something I haven’t thought much about, and I am clearly seeing myself fallen to it many times, by assuming my audience knows the same context as I do. The solution is the point 4: seek to understand your audience.

Empathy seems to be a common ingredient here. In point 1, it’s suggested to try to imagine what it would be like to learn what you are communicating for the first time. In point 2.6 and point 3, assume the next person to maintain your work won’t be as smart as you, and thus look for simple, clean and understandable design. In point 4, you first need to understand others if you want to influence and work effectively with them.