how to create/improve oss products and its community
TRANSCRIPT
How to Create/Improve OSS Product and Its Community
YAPC::Asia 2015 (2015/08/16) Satoshi Tagomori (@tagomoris)
Satoshi "Moris" Tagomori (@tagomoris)
Fluentd, Norikra, MessagePack-Ruby,... CPAN: Net::Hadoop::WebHDFS, Woothee, Norikra::Client, ...
Docker logging driver for Fluentd (docker v1.8)
Treasure Data, Inc.
How to create/improve OSS product and its community
• What the OSS product is for? • What programming language the product is written in? • How do we versioning about the product? • What (natural) language we use around the product? • How can we create the community around the product? • Famous developer people problem • The way to live as a OSS developer
What the OSS Product Is For?
• OSS version of internal product?
• OSS native?
• Internal use + alpha?
• Internal use primary, Global use secondary?
• Global use primary, Internal use secondary?
• Global use primary (and nothing else)?
What the OSS Product Is For? (2)
• What depends on "What the OSS Product Is For?"
• Core developer selection
• How to accept contribution
• How to maintain that software
What the OSS Product Is For? (3)
• Goods to create/improve community
• Open developer team
• Open steps for contribution
• Support from a company
What Programming Language the Product Is Written in?
• Perl? Ruby? Python? PHP? JavaScript? Java? Scala? Clojure? C? C++? Golang? Objective-C? Erlang? Haskell? ...
• Once you wrote it in Perl, Scala people don't take a glance on it. (strongly biased :P) (community side issue)
• Data processing world is dominated by JVM (runtime side issue)
How Do We Versioning about the Product?
• Versioning says that:
• it's unstable or not
• it's still under development or not
• it's still under maintenance or not
• Unstable version requires a lot "Air Reading"
• Miyagawa's 0.99 product is safe! (really?)
What (Natural) Language We Use Around the Product?
• English! English! English!
• Almost all things around the product should be done in English:
• Code/Commit comments
• Issues, Pull-requests, Mailing lists
• Software design sheets / its drafts
What (Natural) Language We Use Around the Product?
• What important is to express: "We DON'T exclude you."by using English
How to create/improve OSS product and its community
• What the OSS product is for? • What programming language the product is written in? • How do we versioning about the product? • What (natural) language we use around the product? • How can we create the community around the product? • Famous developer people problem • The way to live as a OSS developer
How Can We Create the Community around the Product?
• Create/Maintain good software
• Be open for contribution
• Show it's stable and still under maintenance
• Communicate with people all over the world in English
How Can We Create the Community around the Product?
(2)
• One more thing: Pluggable/module architecture
• Apache httpd, Nginx, Linux kernel, ...
• Emacs, Vim, Eclipse, IntelliJ IDEA (and many IDEs), ...
• Plagger, Fluentd, ...
• Pluggable architecture makes user community to be developer community!
Famous Developer Problem
• Some OSS products seems to become famous easily!
• especially from famous developers....
• DON'T mind it!
• There's many reason which we can't know
• Good looking point
• Existing (but unknown) use cases
The Way to Live as a OSS developer
• We can't create a super product at first
• Anyone can't create a super product without continuous improvement