LoginSignup
14
13

More than 5 years have passed since last update.

OSSの始め方と心構えと対策

Last updated at Posted at 2018-12-18

OSSでコントリビューターになって、ドヤりたかったというのが、OSSを始めるきっかけでした。
しかし、今となってはどうやってドヤればいいのか分かりません。

そんなところでOSSのメリットや取り組み方、そのときにやった僕なりの工夫という順で示していきます。

OSSのここがいい!!

キャリア

OSSをやることでエンジニアのキャリアとしてプラスになります(多分)。

OSSのコントリビューターになるということは、エンジニアとしてそのバッジを胸にするということです。

そのバッジが多いほど強いやつに見られます(多分)。

ちなみに、噂によると日本人でOSSをやっている人は少ないらしいです。

英語のコミュニケーション

たいていのOSSのでは、海外のエンジニアとコミュニケーションをすることになります。

日本では英語を使うタイミングはほとんどないので、そういう機会を得られるというのは、OSSならではです。

貢献できる幸せ

アドラー心理学では、他人への貢献感が幸せに繋がるといいます。

OSSをやるというのは、世界で使われるソフトウェアの開発をするということです。

OSSにはアドラー心理学でいう、貢献感と幸せがあります。

OSSのやり方

プロジェクトを見つける

プロジェクトを見つけることからですが、一番ここが難しいのかもしれません。

まず、どう探せばいいのか分かりません。

でも、もう悩んでも仕方ないので、なにかテキトーに選んでいいです。

僕の場合は、今持っているプロジェクトでPHPMailerを使っていたので、PHPMailerを選びましました。

どう貢献するかを決める

プロジェクトにはいろいろな貢献のしかたがあります。
例えば、ドキュメントの翻訳や、バグの報告、issueの解決、とかです。

僕の場合は、プロジェクトにあったissueの中から、テストカバレッジの改善というissueを選びました。
これを選んだ理由は、2つです。

  • カバレッジのテストには、前提知識はあまり必要ない

  • テストのコンテキストを理解した上の改善ではなく、あくまでもカバレッジ優先

コミットする

あとは決まったらやるだけです。
テストのカバレッジを上げることだけに集中してやりました。

今回のissueはあくまでも、今回のissueはカバレッジの改善でした。

なので、カバレッジ優先を念頭に取り組みました。

ただ、PHPMailerは、名前の通りメールを送るものなので、メールを送ることを踏まえたテストをしないといけません。

しかし、ラッキー?なことにメールを送るのなら、このへんはテストするだろう、というところが、テストされてなかったので、まずとりあえずそこを埋めるようにしただけでも、カバレッジは上げることはできました。

また、カバレッジなので、リフレクションを使ったりしてカバレッジをあげていきました。

そもそもテストとしてどうなの?というのは確かにありますが。
カバレッジだったので(言い訳)。。。

苦労した点

TravisCIの結果と、開発環境で再現できない

開発環境で通るテストも、TravisCIでは通らなくて苦しみました。
しかし、手元でTravisの結果を再現できないのは、まああるよ、とのことでした。

この点には、そのあとコミュニケーションをとると、こんな返事がありました。

そんなもんなのね。

qiita1.png

コーディングフォーマットが違う

僕の書いたコードは、PHPMailerのコーディングフォーマットに則っていないことで、Travisから怒られるということがありました。

これを直すのがまあ、めんどかったです。

プロジェクト毎にこういうルールがあると思うので、気をつけましょう。

qiita2.png

よくみたら、最初に注意しているという。。。。

qiita3.png

PR申請 → マージされる

Travisのテストが通ると、正式にPRが申請されます。
あとはレビュアーのレビューを待ちます。

そして、テスト後のレビューは特に指摘はありませんでした。

そして、このとおり。これを待ってました。

qiita4.png

今では、僕のリポジトリにはprivateからPublicになったPHPMailerがあります。

(これはやったね。でいいすよね?)

スクリーンショット 2018-12-17 23.06.27.png

OSSにおいて、英語がハードルに感じる人もいるかもしれませんが、そんなことありません。
僕もそんなに英語ができるワケではありません。

その証拠に、今回載せたやり取りはかなり拙い英語だったと思います。

(やり取りをしてくれたマーカスが優しかったというのもあるかもしれませんが。)

ということで、OSSはまたやろうと思います。

おまけ → 工夫した点

ここから以降は、ある意味おまけです。

怠ける僕を律するための工夫や、わからないときの対策を書いていきます。

これからOSSをする人の助けになるかもしれません。

メンタル面の工夫

  • 毎日同じだけの時間をかけること

  • 「スタンフォードの自分を変える教室 スタンフォード シリーズ/ケリー・マクゴニガル」では、なにかをするには意志力とあります。
    僕は飽きやすい性格なので、努力を当たり前にする仕組みを作りました。

当たり前の仕組み作り

やったことではなく、やった時間でこなす

「仕事に追われない仕事術 マニャーナの法則・完全版/マーク・フォースター」では、やったことでやめると、終わったという事実が心に刻まれる、とあります。

なので、キリの良いところであえて終わらないようにしました。
キリよく終わりそうなときはあえて、手を付けるようにしました。

ハッタリ作戦

僕がやるつもりのissueで、誰かに先を越されるのは嫌だったので、先に「俺は少しできちゃっている。」みたいなハッタリを言って自分を追い込みました。

「ハッタリ」を噛まして、自分の逃げ道をなくしました。

ただ相手からしたらハッタリですらなかったかもしれませんが、自分に対してのハッタリにはなりました。

僕はこれくらいしないと、OSSを途中で諦めてしまうかもしれません。

諦めたくなかったのでハッタリをかましました。

分からないことは、聞く

当たり前ですが、分からないことは聞きました。
僕はまずgithubの使い方もよくわかっていなかったので、そこから聴きました。

それから、PRのしかたとか、わからないことはとにかく聞きました。

スクリーンショット 2018-12-17 23.07.37.png

聞いているうちに英語でコミュニケーションするのが楽しく感じました。

14
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13