GopherCon 2019 - Standardization of Go at GitHub
These are some notes from my experiences at the GopherCon 2019. I don’t expect these will be laid out in any particularly useful way; I am mostly taking them so I can remember some of the bits I found most useful in the future.
Benefits of Standardization
- Less cognitive overhead
- Developer portability
- With the right processes, you get auditing and upgrade scrutiny
What to Standardize
-
libraries/packages
- what versions of what code should be used?
- process for evaluation of new packages
- process for reviewing changes to existing packages
- automation of upgrades
-
project structure
- where do i find X in the code?
-
development lifecycle
- how do i test this?
- how does this get into production?
Process
-
Language working groups
- volunteers
- module vetting and upgrades
- creating process
Challenges
-
buy-in
- evangelize
- open dialogue – venues for others to voice concerns, test, and give feedback
- tons of automation for migration
-
migration
- modules, packaging, and distribution
-
resources for implementation
- people & time – hired full-time framework engineers
- added okrs/roadmaps to motivate progress