Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Emerging Best Practices in Swift

Ash Furrow
October 29, 2015

Emerging Best Practices in Swift

Presented at Swift Summit SF 2015

Resources:
Colour palette: http://www.colourlovers.com/palette/49963/let_them_eat_cake
In Programming, One is the Loneliest Number: http://blog.codinghorror.com/in-programming-one-is-the-loneliest-number/

Ash Furrow

October 29, 2015
Tweet

More Decks by Ash Furrow

Other Decks in Programming

Transcript

  1. Swift
    Emerging Best Practices in
    Ash Furrow

    View full-size slide

  2. Crave
    Beginners
    Rules

    View full-size slide

  3. How do we find new ones?
    Best practices

    View full-size slide

  4. Agenda
    1. Learning is necessary, but not sufficient
    2. Like coding, learning is a skill that can be refined
    3. Being awesome is actually pretty banal

    View full-size slide

  5. Necessary
    Insufficient
    but

    View full-size slide

  6. Job Description
    • Learning is a part of your job description
    • If it’s not, you’re being cheated

    View full-size slide

  7. Whole
    We are all part of a

    View full-size slide

  8. What good are nifty coding tricks
    if you can't show them off to anyone?”
    –Jeff Atwood

    View full-size slide

  9. New best practices
    New Ideas

    View full-size slide

  10. Every act of creation
    is first an act of destruction.”
    –Pablo Picasso

    View full-size slide

  11. Improving Ideas
    • There are very rarely new ideas
    • Invention is not enough
    • We should look for ideas that are new to us

    View full-size slide

  12. Improving Ideas
    • Embrace the new
    • But never throw away what you know
    • You can have preferences!
    • And your preferences can change!

    View full-size slide

  13. Learning
    can be learned

    View full-size slide

  14. Skillful Learning
    • Learning is a skill, like any other
    • It can be learned, practiced, refined

    View full-size slide

  15. How to Learn
    • Seek out new ideas
    • Ideas you disagree with
    • Try things you think will fail

    View full-size slide

  16. Finding New Ideas
    • Open source code
    • Blog posts, books, podcasts, screencasts, conferences, etc
    • Newsletters make these easier
    • Follow people on Twitter (people who are not iOS developers)

    View full-size slide

  17. Don’t Dismiss
    • Never dismiss an idea or a person
    • People will stop talking to you, ya jerk!
    • People are allowed to disagree with you

    View full-size slide

  18. Discovering “Best Practices”
    • You’ll know it when you see it
    • It is a feeling, an intuition
    • This happens with experience

    View full-size slide

  19. Discovering “Best Practices”
    • Ask yourself why this?
    • Write your answer down
    • Collect your answers, and form principles
    • Reflect on them
    • Everyone’s are different

    View full-size slide

  20. Using Principles
    • Use principles to evaluate new ideas
    • Not “is this useful?” but rather “when would this be useful?”
    • Use principles to get better at evaluating ideas
    • Refine principles over time

    View full-size slide

  21. The banality of
    Awesome

    View full-size slide

  22. Use the
    System
    Buddy

    View full-size slide

  23. KPIs
    Write down some

    View full-size slide

  24. • Specific
    • Measurable
    • Achievable
    • Relevant
    • Time-bound
    SMART Goals

    View full-size slide

  25. Specific
    • “Read 10 blog posts.”
    • “Try one new library.”
    • “Open source a playground.”
    • “Give a lunch-and-learn.”
    • “Read a book.”

    View full-size slide

  26. Measurable
    • How will you know when you’ve accomplished a goal?
    • Make a “definition of done”

    View full-size slide

  27. Achievable
    • Be realistic, but ambitious
    • Remember, this is a part of your job – take it seriously

    View full-size slide

  28. Relevant
    • Everything is relevant ¯\_(ツ)_/¯
    • Just reflect on what you’ve learned

    View full-size slide

  29. Time-Bound
    • We need deadlines
    • Use Google Calendar with reminders
    • Set up recurring events to meet & discuss progress

    View full-size slide

  30. Wrap Up
    1. Learning is a part of our job
    2. It’s not easy, and it’s not comfortable
    3. So we need to hold ourselves accountable

    View full-size slide

  31. Intuition
    Experience

    View full-size slide