Here’s our context 8 ● We have a lot of cruft and technical debt ● Our frontend team tends to the junior side ● This is mostly about managing the JavaScript ecosystem
Figure out One Way™ to do things 10 There’s a lot of decisions that go into building a high-performance web application. ● How to fetch data ● How to render your application ● Dealing with user interaction
Figure out One Way™ to do things 11 There’s a lot of decisions that go into building a high-performance web application. ● How to fetch data ● How to render your application ● Dealing with user interaction Is it worth solving these problems more than once?
The Paradox of Choice 14 ● Independence without constraint can be detrimental ● Most choices that don’t really matter. ● Provide extension points where it makes sense to.
Fix it yourself (or “Google-ability”) ● Optimize for discoverability by taking advantage of things like open-source ● Be a part of the community that has brought so much change to JavaScript 17
Fix it yourself (or “Google-ability”) 18 ● Optimize for discoverability by taking advantage of things like open-source ● Be a part of the community that has brought so much change to JavaScript ● Spend less time building things others have already solved.
Deciding when you do need it. 22 ● Fundamental paradigm shifts are easy to justify ○ Vanilla -> jQuery -> Backbone -> React ● What determines a paradigm shift? ○ Does it change how you think and develop your product?
Deciding when you do need it. 23 ● Fundamental paradigm shifts are easy to justify ○ Vanilla -> jQuery -> Backbone -> React ● What determines a paradigm shift? ○ Does it change how you think and develop your product? ● Lateral movements are usually not worth it. ○ Switching between different flavors of Flux
Reduce Churn When Possible 25 ● Pilot changes before rolling them out. ○ Ensure you have a rollback plan in place. ● Optimize for fewer breaking changes. ○ Stopping the world is very expensive. ○ Incremental adoption ensures that you’re always in a working state.
Solving problems for the 80% 27 Benefits from the One Way™ Moving between teams is like moving between states, not moving between countries. Most of the problems you’re solving are generalizable anyway. Improvements can be shared across your whole organization.
Good tools are half the work 29 ● Your developers need to understand how and why to use these tools ● Don’t just help, educate ○ Biweekly forums, workshops where you build stuff from scratch
Good tools are half the work 30 ● Your developers need to understand how and why to use these tools ● Don’t just help, educate ○ Biweekly forums, workshops where you build stuff from scratch ● Engineers in pain build the best solutions
Do you need a team to do this? 32 ● These sorts of decisions are already being made implicitly throughout your organization. ● Have a North Star to guide your development ○ Having an opinion is different than knowing what you care about.