starting an open source project: 0-100k users - china mobile summit 2015 - en

42
STARTING AN OPEN SOURCE PROJECT: 0 TO 100,000 USERS AN EXMICROSOFTEE ACCIDENTALLY CREATES A WILDLY POPULAR OPEN SOURCE PROJECT

Upload: dan-cuellar

Post on 17-Aug-2015

18 views

Category:

Software


0 download

TRANSCRIPT

STARTING  ANOPEN  SOURCE  PROJECT:

0  TO  100,000  USERSAN  EX-­‐MICROSOFTEE  ACCIDENTALLY  CREATESA  WILDLY  POPULAR  OPEN  SOURCE  PROJECT

ABOUT  THE  SPEAKER

Dan  Cuellar• BS  in  Computer  Science  from  Carnegie  Mellon• Creator  of  Appium• Head  of  Software  Testing  at  FOODit• Previously  at  Microsoft,  Zoosk,  and  Shazam

THE  MOST  TERRIFYING  5  WORDS  IN  TESTING

THIS  ALL  SOUNDS  FAMILIAR

EVERYTHING  IS  NOT  AWESOME

WHAT  IS  APPIUM

• An  implementation  of  the  Selenium  JSON-­‐wire  protocol  that  controls  native  and  hybrid  iOS  and  Android  application• The  most  popular  open  source  mobile  functional   testing  framework

APPIUM PHILOSOPHY• Use  standardized  and  sanctioned  APIs  and  techniques

• Code  in  the  language  of  your  choice• Java,  C#,  Python,  Ruby,  Objective-­‐C,  node.js,  PHP,  and  more

• Do  not  modify  the  application  under  test

• Keep  it  free  and  open  source

HOW  DOES  IT  WORK?UIAutomation /  UIAutomator

AppiumServer

Test  Script

JSON-­‐Wire  Protocol  Request

JSON-­‐Wire  Protocol  Response

HTTP

TIME  TO  SPREAD  THE  WORD

GETTING  THE  WORD  OUT• Answered  almost  every  forum  question  for  the  1st year  of  the  project• Answered  most  StackOverflowquestions• Spoke  at  any  conference  that  would  have  us• Stated  our  mission  and  philosophy• Talked  to  companies  that  were  interested• Utilized  Twitter  and  social  media

LOSING  CONTROL  IS  A  GOOD  SIGN• One  day  a  website  and  twitter  account  showed  up• Android  support  was  added• The  code  was  ported  to  another  language• I  lost  commit  privileges  on  the  repo  (briefly)• My  conference  proposal  was  rejected  because,unbeknownst  to  me,  two  other  people  had  alreadysubmittedAppiumtalks  at  the  same  conference

SCALABILITY• Eventually,  you  won’t  be  able  to  answer  every  question

• Other  people  will  have  learned  from  reading  the  forums  and  the  community  can  answer

• You  won’t  be  able  to  test  or  scrutinize  every  commit• Unit  tests  are  your  friend

• You  won’t  know  the  what’s  on  anymore• Draft  good  release  note• Keep  detailed  commit  messages

STARTING  AN  OPEN  SOURCE  PROJECTTHE  WRONG  WAY

• Use  proprietary  technologies• Share  the  code  via  email• Provide  no  documentation• Do  not  post  slides• Respond  to  issues  via  private  communication

THE  RIGHT  WAY• Use  open  technologies• Post  code  on  GitHub• Write  documentation• Use  Slideshare&  YouTube• Post  responses  on  forums

CONFLICT• Agreeing  to  a  philosophy  and/or  mission  beforehand  is  helpful• There  is  no  rigid  chain  of  command  to  resolve  disputes

• Conflict  is  best  kept  out  in  the  open• This  leads  to  debate  which  results  in  better  decisions• Transparent  decision  making  leads  to  better  end-­‐user  understanding

• Sometimes  whoever  writes  the  code  make  the  decision• People  may  have  opinions  but  aren’t  willing  to  code  the  solution

WHEN  PEACE  IS  NOT  AN  OPTION• Losing  contributors  is  bad,  but  not  the  end  of  the  world

• Unless  they  leave  the  open  source  community,  their  work  is  still  shared  with  everyone

• Multiple  projects  doing  the  same  thing  isn’t  necessarily  a  bad  thing• Choice  and  competition  brings  about  innovation• Having  options  is  good  for  end-­‐users

In  the  end,  the  most  awesome  thing  will  win

BY  THE  NUMBERS

In  the  last  2  ½  years• Over  2,000  Stars,  1,500  Forks  on  GitHub• Over  100  Contributors  and  5,000  commits• Over  150,000  downloads  of  Appium 1.0• Over  3,000  issues  closed

ROBOTS

HOW  DOES  IT  WORK?• Calibrate  the  robot  to  map  points  in  the  physical  world  to  points  on  a  device  screen• Run  an  app  on  the  device  with  Appium that  can  tell  you  what  coordinates  are  being  touched

• Touch  three  places  on  the  device  and  record  the  physical  and  device-­‐centric  coordinates

• Build  a  matrix  to  translate  any  point  between  the  two  systems

• Intercept  touch  actions  with  the  AppiumServer  and  send  them  to  the    robot

THE  MATH

WHY  DID  APPIUM SUCCEED?• From  Day  1,  There  Was  a  Clear  Philosophy  and  Vision• We  were  as  inclusive  as  possible,  which  led  to  an  active  community• We  supported  as  many  languages  and  platforms  as  possible• We  based  our  tool  on  an  existing  tool  people  were  already  familiar  with• We  made  decisions  designed  to  build  an  active  community

• We  put  a  whole  lot  of  work  into  it• We  went  to  any  and  every  conference  that  would  have  us• We  answered  almost  every  forum  post  the  1st year  or  so

INCLUSIVENESS

INCLUSIVENESS

INCLUSIVENESS

INCLUSIVENESS

PERSONAL  TAKEAWAY“Life  can  be  much  broader  once  you  discover  one  simple  fact:  Everything  around  you  that  you  call  life  was  made  up  by  people  that  were  no  smarter  than  you  and  you  can  change  it,  you  can  influence  it,  you  can  build  your  own  things  that  other  people  can  use.

Once  you  learn  that,  you'll  never  be  the  same  again.”

-­‐Steve  Jobs

MORE  INFO•Website:  http://www.appium.io

• Slack:  appium.slack.com

• Forum:  discuss.appium.io

• GitHub:  http://www.github.com/appium/appium