how to create/improve oss product and its community (revised)

Post on 16-Apr-2017

7.638 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

How to Create/Improve OSS Product and Its Community

(Revised with Beer 🍻)java-ja.OSS (2015/10/05)

Satoshi Tagomori (@tagomoris)

Satoshi "Moris" Tagomori (@tagomoris)

Fluentd, Norikra, MessagePack-Ruby, Woothee, ... Docker logging driver for Fluentd (docker v1.8)

Treasure Data, Inc.

–tagomoris 🍻

“I never got mails from Tony Morris.” “Didn't you work about OSS?”

We are hiring!

DataWe

We are hiring!

Skillful Java programmers (+ Ruby!)

& Distributed system engineers

http://yapcasia.org/2015/talk/show/5f5cad74-004a-11e5-acf4-89c77d574c3a

http://t-wada.hatenablog.jp/entry/active-oss-development-vs-simplicity

http://tagomoris.hatenablog.com/entry/2015/08/31/101025

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

Discussions about OSS development and maintenance

• Clean code vs dirty contributions • Software getting fatty vs small/beautiful new product • All-in-one vs plugin chaos • Japanese for closed/fast vs English for openness

• Which way we should choose?

All OSS products needs: More users

More use-cases More contributions

🍻 Except for exceptions :P

ex: PoC, Just for Fun, ...

What's the OSS Product 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's the OSS Product For? (2)

• What depends on "What the OSS Product Is For?"

• Core developer selection

• How to accept contribution

• How to maintain that software

What's the OSS Product For? (3)

• Things nice to have to create/improve community

• Open developer team

• Open steps for contribution

• Support from a company

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 does spoil using English our skill?

🍻 It can't be measured

if we use only Enligh :P

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!

The Way to Live as an OSS developer

• We can't create a super product at first

• Nobody can create a super product without continuous improvement

The Way to Live as an OSS developer

Do it, and keep doing it.

pictures of beers or something else

break...

Discussions about OSS development and maintenance• Clean code vs dirty contributions • Software getting fatty vs small/beautiful new product • All-in-one vs plugin chaos • Japanese for closed/fast development vs English for openness

• What should we do?

🍻 Clean code vs dirty contribution

• Bad feature: Say "NO!"

• Good feature:

• Someone said: "OK, I'll write a patch to solve it!"

• Good code: "Great, merged!"

• Bad code: .... 🍻

🍻 Software getting fatty vs

Small/beautiful new product

• Docker vs Rocket

• (Language what you're using) vs Golang

• Recent Hashicorp products vs Past these

🍻 All-in-one vs plugin chaos

• For example: Logstash and Fluentd

• Logstash has many well-organized plugins

• And large developer team

• Well managed plugin portfolio, controlled by someone

• Fluentd only has APIs (and few built-in plugins)

• And very small committer team

• Uncontrolled plugin chaos, contributed by many people

🍻 Japanese for closed/fast development

vs English for openness

🍻 Japanese for closed/fast development

vs English for openness• "divide and conquer" by using local language

• it's reasonable only if:

• local community has many leading engineers in the world

• team has enough resource to publish the product in whole world when it goes global

• IMO, it's not reasonable for many cases

What should we do?

Many things make many limitations...

🍻

What should we do?

What should we do?

• We have not so many options:

• Limited English? or not-so-limited Japanese?

• Dirty hack? or not-so-beautiful code?

• Local strong closed team and (strong marketing team + money)? or global weak spreading team?

• We must choose the way to go every time

The Way to Live as an OSS developer

Do it, and keep doing it. (again)

top related