$30 off During Our Annual Pro Sale. View Details »

Providing Flexibility Through Constraint

jnwng
March 16, 2018

Providing Flexibility Through Constraint

product engineering meetup @ quizlet

jnwng

March 16, 2018
Tweet

More Decks by jnwng

Other Decks in Technology

Transcript

  1. Providing Flexibility
    Through Constraint
    product engineering meetup @ quizlet
    3/15

    View Slide

  2. Jon Wong
    @jnwng
    Frontend Infrastructure
    @CourseraEng

    View Slide

  3. Providing Flexibility
    Through Constraint

    View Slide

  4. Figure out
    what you care about

    View Slide

  5. Like any advice, take the
    following with a grain of salt.
    Our context is simply that, ours.
    5

    View Slide

  6. Here’s our context
    ● We have a lot of cruft and technical debt
    6

    View Slide

  7. Here’s our context
    7
    ● We have a lot of cruft and technical debt
    ● Our frontend team tends to the junior side

    View Slide

  8. 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

    View Slide

  9. Building High Performance
    Web Applications
    9

    View Slide

  10. 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

    View Slide

  11. 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?

    View Slide

  12. The Paradox of Choice
    ● Independence without constraint can be detrimental
    12

    View Slide

  13. The Paradox of Choice
    13
    ● Independence without constraint can be detrimental
    ● Most choices that don’t really matter.

    View Slide

  14. 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.

    View Slide

  15. Building a Great
    Developer Experience
    15

    View Slide

  16. Fix it yourself (or “Google-ability”)
    16
    ● Optimize for discoverability by taking advantage of
    things like open-source

    View Slide

  17. 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

    View Slide

  18. 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.

    View Slide

  19. YAGNI (You Ain’t Gonna Need It)
    ● Always start with “no”
    19

    View Slide

  20. YAGNI (You Ain’t Gonna Need It)
    20
    ● Always start with “no”
    ● “Great” doesn’t mean “new” — it means meeting the
    expectations of developers

    View Slide

  21. Deciding when you do need it.
    21
    ● Fundamental paradigm shifts are easy to justify
    ○ Vanilla -> jQuery -> Backbone -> React

    View Slide

  22. 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?

    View Slide

  23. 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

    View Slide

  24. Reduce Churn When Possible
    24
    ● Pilot changes before rolling them out.
    ○ Ensure you have a rollback plan in place.

    View Slide

  25. 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.

    View Slide

  26. The Role of Infrastructure
    26

    View Slide

  27. 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.

    View Slide

  28. Good tools are half the work
    28
    ● Your developers need to understand how and why to use
    these tools

    View Slide

  29. 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

    View Slide

  30. 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

    View Slide

  31. Do you need a team to do this?
    31
    ● These sorts of decisions are already being made
    implicitly throughout your organization.

    View Slide

  32. 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.

    View Slide

  33. In Summary
    33

    View Slide

  34. Provide Constraints
    to Guide Development
    34

    View Slide

  35. Say “no” by default
    35

    View Slide

  36. Figure out what you
    really care about.
    36

    View Slide

  37. Thanks!
    comments / questions / complaints?
    @jnwng
    s/o to Gago for editing
    37

    View Slide