プロダクト開発を行いながらOSS活動も緩くやる

ANDPADボード プロダクトテックリードの土屋(tomtwinkle)です

先日CHIYODA Tech #3 にLT枠で参加してきました!

CHIYODA Techとは、千代田区にオフィスを構える企業が運営・登壇するLTイベントです。 今回は弊社9Fのイベントスペースで開催させていただきました!

アンドパッド以外にKINTOテクノロジーズさん、日本経済新聞社さん、スタディストさんがLTで参加されていました。 他社さんのLTも拝見させてもらって皆さんそれぞれOSSに対する様々な想いや課題を感じているんだなと勉強になりました。

LT後みんなでスナックミーさんから提供頂いたスナックをつまみに飲みながらテーブル毎に思い思いに喋るアンカンファレンスも非常に楽しかったです。

LT内容について

今回私が発表させてもらったLTについて少しだけ解説させていただきます。

speakerdeck.com

アンドパッドは基本的にRubyの会社としての知名度が高いのですが、実は徐々にGoで作られているプロダクトも増えてきているためGoについても力を入れています。 敢えてGopherである自分に白羽の矢が立ったのは、大体弊社のこの手のイベントで登壇するのは普段Rubyistの方なのでGopherの露出度今後増やしていくぞと言う意気込みもあるかもしれません(笑

テックブログにコメント書くノリでコントリビュートしよう

弊社ブログははてなブログなので、はてなブックマーク辺りで様々なマサカリコメントが書かれたりもしますが OSSへのコントリビュートもそんなノリで気軽に行おうよということを語りました。 OSS開発怖くないよ!みんなもっと軽い気持ちでやろう!

テックブログ書くノリでOSS作ろう

GoはRubyでいう所のRailsのようなデファクトスタンダードになっているフレームワークのようなものはなく、標準パッケージや準標準パッケージである程度網羅的にベース部分の機能が整っている言語です。

ただし、プロダクト開発で使おうとするとそれらを組み合わせて使う必要があるので、プロダクトを作る度にmidlleware周りの処理はプロダクト向けにカスタマイズしつつも毎回同じようなコード書く羽目になります。

なので、これ大体毎回使うパーツだよなと思ったlibraryは「知見溜まってきたしテックブログ書くか」と同じノリで徐々にOSS化して公開していっています。

github.com

会社として公開しているOSSとしては大体上記にまとまっています。 管理まだしっかりと出来ていないので仕事の合間にせっせとメンテを行っています。 コントリビューターが参加しやすいようにドキュメント書かねば・・・!

個人で公開しているものも幾つかあります。 Shitf-JIS向けのTransformerですが最近以下のようなissueを貰って修正を行いました。 github.com

Go Fuzzingかけて数時間回してみても特に問題が出てこなかったのでヨシとしていましたが Bufferを使った際に挙動が変わるのは結構盲点だったので勉強になりました。 このようなissueやPull Requestを貰えると大変喜びます。

感想

アンカンファレンスで他の話を聞いていて興味深いなと思ったのは 大きくなったOSSの場合は粗雑なissueが建てられがちなので内容を練られていないものは即座にcloseされるというもので、OSSも小規模、中規模、大規模になってくると運用方針も大きく変える必要があると言う学びでした。

OSS活動の仕方については人それぞれだと思うので上記の内容もプロダクト開発をしながらOSS活動も行うためのメンタルモデルの一つとして捉えてもらえれば良いかなと思います。

もし興味を持たれたGopher(もちろん他の言語でも)がいらっしゃれば、カジュアル面談などで緩くお話できると大変喜びます。

engineer.andpad.co.jp