Starting an Open Source Project: 0-100k Users - China Mobile Summit 2015 - EN
1. STARTING
AN
OPEN
SOURCE
PROJECT:
0
TO
100,000
USERS
AN
EX-‐MICROSOFTEE
ACCIDENTALLY
CREATES
A
WILDLY
POPULAR
OPEN
SOURCE
PROJECT
2. 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
8. 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
9. 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
10. HOW
DOES
IT
WORK? UIAutomation /
UIAutomator
Appium
Server
Test
Script
JSON-‐Wire
Protocol
Request
JSON-‐Wire
Protocol
Response
HTTP
12. GETTING
THE
WORD
OUT
• Answered
almost
every
forum
question
for
the
1st year
of
the
project
• Answered
most
StackOverflow questions
• Spoke
at
any
conference
that
would
have
us
• Stated
our
mission
and
philosophy
• Talked
to
companies
that
were
interested
• Utilized
Twitter
and
social
media
13. 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
already
submittedAppiumtalks
at
the
same
conference
14. 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
15. STARTING
AN
OPEN
SOURCE
PROJECT
THE
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
16.
17. 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
18. 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
19.
20. 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
33. 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
36. 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
41. 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
42. MORE
INFO
• Website:
http://www.appium.io
• Slack:
appium.slack.com
• Forum:
discuss.appium.io
• GitHub:
http://www.github.com/appium/appium