SHOULDERS
OF
GIANTS
            JON ROES
OVERVIEW
•Problems
•Strategies for building things quickly
•My experiences
WE NEED TO TALK

 Building software takes too long.
 And half the time it’s buggy.
 Or it doesn’t even solve the problem.
IT’S NOT JUST YOU, IT’S ME TOO
•Not Invented Here (NIH) syndrome
 •“Unwillingness to value the work of others”
•Fear of the unknown
•Programming is fun
OUR SHARED
PROBLEMS
•You are not a unique snowflake.
•You aren’t really interested in software, you
are solving a problem
•Maybe    you’re different because you’re
wrong
CONFESSION
•I don’t always want to write code.
•Would you want me to spend more or less
time shipping your project?
•Would I want to spend more or less time
shipping my project?
•You don’t want me to write code either.
PHILOSOPHY
•Why are humans so successful?
•What if we never wrote the same code
twice?
•How can we push the state of the art
further?
HISTORY
•Math: Numbers -> Arithmetic -> Algebra -> Abstract Algebra
•Science: Galileo -> Brahe -> Kepler -> Newton
•The Avengers: Hulk beats Loki, Iron Man stops the missile, Black Widow deactivates
portal
NEWTON
ART

      Good artists copy.
      Great artists steal.
STRATEGIES
CLASSES OF PROBLEMS
•Social networks
•Stores
•Blogs
•Chat/Forums
•Static
WHAT TO LOOK FOR
•Necessity
•Level of match
 •Exact match
 •Kinda-sorta
•Properties
 •Age
 •Author
 •License
 •Recent Activity
THE UGLY
•Getting cornered
•Picking something unmaintained
•Dependency hell
RISK MANAGEMENT
•Start on a branch
•Make the smallest change you can first
•Set a timebox
WHEN BUILDING MAKES SENSE
•You need a particular feature that would be at odds with the current
philosophy.
•The existing maintainer won’t play nicely
•It really doesn’t exist
•You are the world’s foremost expert in the area
MY EXPERIENCES
SOCIAL NETWORKING SITE
•Missed opportunity
•Could have shipped faster
•Could have delivered more
•Could have had fewer bugs
E-COMMERCE SITE
•Went with Spree
•Could buy a product with a credit card on day one
•Immediately better: searching, filtering, product    management,
reporting
•Helped define categories/taxonomy
•Clean, easy to extend codebase
PUSH NOTIFICATIONS
•No familiarity with iOS push notifications
•Found a library called Grocer, used it
•Sending push notifications in a day
GET OUT THERE
•Contribute to awesome projects
•Make them better
•If not, convince your boss to donate money
Shoulders of Giants
Shoulders of Giants

Shoulders of Giants

  • 1.
  • 2.
    OVERVIEW •Problems •Strategies for buildingthings quickly •My experiences
  • 4.
    WE NEED TOTALK Building software takes too long. And half the time it’s buggy. Or it doesn’t even solve the problem.
  • 5.
    IT’S NOT JUSTYOU, IT’S ME TOO •Not Invented Here (NIH) syndrome •“Unwillingness to value the work of others” •Fear of the unknown •Programming is fun
  • 6.
    OUR SHARED PROBLEMS •You arenot a unique snowflake. •You aren’t really interested in software, you are solving a problem •Maybe you’re different because you’re wrong
  • 7.
    CONFESSION •I don’t alwayswant to write code. •Would you want me to spend more or less time shipping your project? •Would I want to spend more or less time shipping my project? •You don’t want me to write code either.
  • 8.
    PHILOSOPHY •Why are humansso successful? •What if we never wrote the same code twice? •How can we push the state of the art further?
  • 9.
    HISTORY •Math: Numbers ->Arithmetic -> Algebra -> Abstract Algebra •Science: Galileo -> Brahe -> Kepler -> Newton •The Avengers: Hulk beats Loki, Iron Man stops the missile, Black Widow deactivates portal
  • 10.
  • 11.
    ART Good artists copy. Great artists steal.
  • 12.
  • 13.
    CLASSES OF PROBLEMS •Socialnetworks •Stores •Blogs •Chat/Forums •Static
  • 14.
    WHAT TO LOOKFOR •Necessity •Level of match •Exact match •Kinda-sorta •Properties •Age •Author •License •Recent Activity
  • 15.
    THE UGLY •Getting cornered •Pickingsomething unmaintained •Dependency hell
  • 16.
    RISK MANAGEMENT •Start ona branch •Make the smallest change you can first •Set a timebox
  • 17.
    WHEN BUILDING MAKESSENSE •You need a particular feature that would be at odds with the current philosophy. •The existing maintainer won’t play nicely •It really doesn’t exist •You are the world’s foremost expert in the area
  • 18.
  • 19.
    SOCIAL NETWORKING SITE •Missedopportunity •Could have shipped faster •Could have delivered more •Could have had fewer bugs
  • 20.
    E-COMMERCE SITE •Went withSpree •Could buy a product with a credit card on day one •Immediately better: searching, filtering, product management, reporting •Helped define categories/taxonomy •Clean, easy to extend codebase
  • 21.
    PUSH NOTIFICATIONS •No familiaritywith iOS push notifications •Found a library called Grocer, used it •Sending push notifications in a day
  • 22.
    GET OUT THERE •Contributeto awesome projects •Make them better •If not, convince your boss to donate money