Speee DEVELOPER BLOG

Speee開発陣による技術情報発信ブログです。 メディア開発・運用、スマートフォンアプリ開発、Webマーケティング、アドテクなどで培った技術ノウハウを発信していきます!

OSS Gate in Speee

株式会社Speeeの@selmertsxです。

今回は、2016年6月11日(土)に、弊社にて行った OSS Gate ワークショップについて、 ご紹介させて頂きます!

OSS Gate について

OSS Gate は、「OSSの開発に参加する」を実際に体験できるワークショップです。
株式会社クリアコードの代表取締役をされている、須藤功平さんが講師として活動されています。

OSSの普及を目的として始まり、今回で4回目となっています。

ワークショップの流れ

ワークショップ全体の流れは下記のようになっています。

  • ワークショップの説明
  • コミットしたいOSSを選ぶ
  • 選んだOSSのドキュメントを読み、動かしてみる
  • 改善したい点を見つけたら、issue/PRを作る
  • ワークショップの振り返り

ワークショップの説明

f:id:mogmog2:20160624185212j:plain ※ ワークショップについて説明を受けているエンジニア

ビギナーとメンター

ワークショップは、ビギナー、メンターと立場を分けて行いました。

OSSの開発に参加したことない、もしくは参加したことはあるけど、自信がないといった人がビギナー。 OSSの開発に参加したことがある人がメンターとなって、役割分担してワークショップを進めます。 メンターのお仕事は、ビギナーが困ったときに話を聞き、意見を求められたら答えるといった形でビギナーのサポートを行うことです。

僕は、OSSの開発に参加したことはほとんどないのですが、 人数の関係で2人のビギナーのメンターとしてワークショップに参加させて頂きました。

作業ログ

ビギナーは、個人のgithub issueにログを残しながら作業を進めていきます。 メンターは、ビギナーの作業を直接見たりログを眺めたりしながら、 ビギナーの作業進捗を追います。 ログには、現在の作業内容と、思っていること、そして必要なら備考を残してもらいます。

ログを細かく残すことによって、問題が発生したときに、何が原因だったのか振り返り、 そのときのログなどを、issue報告をする際に活かすことが出来るようになります。

・ 作業内容: gem install
・ 感想: dependencies多すぎ

※ 作業ログのサンプル

コミットしたいOSSを選ぶ

ビギナーは、これから貢献するためのOSSを選びます。

今までお世話になってきたOSSや、 これから使おうとしているOSSを、 貢献する対象のOSSとして選んでいる人が多かった模様です。

僕が見ているビギナーの人は、 それぞれ delayed_jobsimple-rss を選んで作業を進めていました。 両方共、次に仕事で使うから早くキャッチアップしたいという、かなり現実的な理由でした。

なおメンターは、コミットしたいOSSを選ぶことは出来ません。 基本的にずっとビギナーの方を見守ります。 僕も、羨ましいなと思いながら見守っていました。

選んだOSSのドキュメントを読み、動かしてみる

f:id:mogmog2:20160624185215p:plain

READMEを上から眺めながら、実際に gem install し、動作確認を進めていきます。 業務の中では、必要なところだけつまみ読みすることが多いので、頭から全部読むのは 少しばかり懐かしい感覚です。

改善したい点を見つけたら、issue/PRを作る

f:id:mogmog2:20160624185217p:plain

一通りドキュメントを読み込み、実際にgemを動かしてみて、 貢献できるチャンスを見つけたら、issue/PRを作っていきます。

幸い(?)にも、delayed_job, simple-rssともに、 手順書をそのままなぞるとエラーが出てしまう問題があったため、 その修正PRを出すなどしました。

https://github.com/collectiveidea/delayed_job/pull/919
https://github.com/cardmagic/simple-rss/pull/25

また、参考となるReadmeを探している間に fluentd-doc のエラーも見つけたため、 さくっと修正してました。(ota42yさんすごい!)

https://github.com/fluent/fluentd-docs/pull/229

ワークショップ振り返り

最後に、ワークショップの成果や感想などを、 みんなで issue に書いて振り返りました。 みんな、何らかの形で貢献できた模様です!

今まで敷居が高いと考えていた、OSS貢献への第一歩を踏み出せて、 みんな満足していました。

ワークショップとその後

今回のOSS Gate は、弊社の技術力アップを目的として開催されました。

すぐに目に見える効果が出るほど、世の中甘く無いですが、 いくつかのPRがマージされるなどし、 参加者のOSS活動への心理的な障壁は随分取り除かれてきたのかな という印象を受けました。

また、PRがマージされた何人かのエンジニアは、 OSS貢献への自信もついたのかなと思います。

これまで利用している gem などで問題が発生したら、 その問題を回避する形で業務を進めていましたが、 貢献チャンスと受け取って逆にテンション上げるように なったメンバーも少なからずいた模様です!

※ マージされたPR

https://github.com/gimite/google-drive-ruby/pull/206

https://github.com/rurema/doctree/pull/275

最後に

OSS Gateでは定期的にワークショップを実施されてます。 1ヶ月後の7月開催分はすでにキャンセル待ちと大盛況です。 すでに9月分も募集が始まっていますので、OSSに興味のある方はぜひ! https://oss-gate.doorkeeper.jp/events/46275

またSpeeeではOSS活動をしたいエンジニアを募集しています。 Ruby,Scala,Go,iOS,Androidと様々な募集をしていますので、興味のある方はぜひ!

ASEAN6億人にあたらしい転職サービスを届けるエンジニアを募集! https://www.wantedly.com/projects/44504

「嫌われる広告から好かれる広告へ」未来のスタンダードを創るエンジニア募集! https://www.wantedly.com/projects/58311

アプリでライフスタイルを変えていく、iOS/Androidエンジニア募集! https://www.wantedly.com/projects/57015