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.
- 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.
- 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.
- The progressive web app is the new hotness.
- 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.