2015 Reflections

- 5 min read

This year, I'm taking the time to reflect on how changing my career shaped what I learnt along the way. The key areas I'm focusing on are: writing, collaborating, technology, and legacy.

Collaborating

  • Moving from solo to a team brought some challenges, people with similar skills and experience with differing viewpoints can lead you to stalemate on decision making.
  • You learn so much working with a great team, well beyond what you would or could on your own.
  • Diversity of thinking enriches everyone.
  • Accepting that compromises can create better outcomes, and that compromises don't mean someone won and someone lost.
  • Collaborative decision making based on common ground means everyone is on board with decisions made.
  • Creating a set of principles to work with to decide on the points which were most controversial is a great way to navigate difficult decisions.
  • Remembering shared interests, and separating assumed positions from those interests: often we want the same thing we just have different methods of getting there.

Writing and sharing

  • So many great opportunities come from writing, for example writing got me into speaking.
  • The process of writing encourages you to research and learn, assuming you're not just writing thinkpieces on Medium
  • It allows you to share your discoveries with others and help them learn.
  • Writing brings with it the process of discovery, experimentation, and some willingness to be vulnerable. Never be afraid to show mistakes, sometimes that makes the most interesting read.

Technology

  • It seems I'm not alone in feeling overwhelmed with the speed of technology on the web, there is never a lack of things to learn or an abundance of time to learn it.
  • The push toward service oriented architecture is pretty awesome.
  • I love the ubiquity that Javascript has achieved, but I'm also fairly wary of it. I always hear claims of [Insert Library], or [Insert build tool] being the future, but if you've been watching long enough you've probably seen these claims before too.
  • The progressive web app is the new hotness.

Legacy

  • Encountering 10+ years of deeply entrenched legacy code made me appreciate just how dangerous technical debt can be to an organisation, and how important writing code to scale can be.
  • Highly coupled code can be really difficult to remove, replace, or even understand.
  • Write to make your coding decisions easy to change in the future, what you write today will be tomorrow's legacy. Clarity of code and documenting decisions go a long way.
  • Modifying the core of large enough open source libraries will eventually come back to bite you when you can't upgrade to better versions.
  • Consider the next person or team to touch the code, make their lives easy, and make your life easier for not having to explain it everytime someone stumbles upon it.
  • If you absolutely must create technical debt, start planning and prioritising how you're going to remove it and when. (thanks Jerry!) Tech debt is rust in the engine.