来年度Jsys19に導入したい"RDD"を紹介してみる


この記事はJsys Advent Calendar 2018の第16日目の記事です。

どうも、Jsys 1年、にー兄さんです。遅れてしまって申し訳ございません(汗)
ブログで書こうかも迷ったのですが、今回は慣れ親しんだQiitaで書かせていただきます。

さて本記事では、「来年度Jsys19に導入したい"RDD"を紹介してみる」というテーマでお送りいたします。
実際にJsys18で初めて本格的なチーム開発を経験し、感じたことは多々ありました。
良い機会なので、それらも含め来年度の開発に向けて「これ使いたい!」と思った、ある技術について紹介できればいいなと思います。

前置きが長くなりましたが、最後までお付き合いいただけると光栄です。よろしくお願いします。

学園祭を終えた感想

チーム開発と言えば、GitHubは必須ですね。gitやGitHub自体は前から使っていたものの、個人開発ではバージョン管理さえできればいいので、ブランチを切るのもmasterdevelopくらいでした。中途半端に一人でissueとかプルリクとか上げてみたりしてましたが、結局Closeするのもマージするのも自分だし、最終的にはmasterでベタベタ書いてしまうなんてこともしばしば。(いけない)
そんなこともあり、自分のアカウント名がついたブランチのコミットがぐんぐん伸びていく様子を見ると頑張ってる実感ができたのは嬉しかったです。
とはいえ不慣れなところが多かったので、コンフリクトも結構起こしましたし、ブランチの扱いとかコミットメッセージとかもテキトーなところが多かったと思います。

ところで、今回の開発で困ったことがありました。コーディングが始まった頃の話ですが、「あれ、何すればいいんだろう」と思うことがあったのです。素直に先輩に聞けばいいのですが、なんというか、「どれを見ればいいのか」「どこまでが自分の仕事なのか」「果たしてこんなこと聞いていいのか(Slackの発言とか結構気にするタイプ)」みたいなよくわからない疑問というか、変に気を遣ってしまっているだけではないと思いますが、そういう状態に陥ってしまうことがありました。そうなると開発は進みませんから当然モチベーションも落ちます。一時期Nuxtのコードを見るのも嫌な時期がありました(ご迷惑をおかけしました)
そんなこともあり、来年の体制には何が必要なのかと考えました。考えた末、たどり着いた答えは「ドキュメントの充実」でした。

学生プログラマにこそ、ドキュメントあれ

ドキュメントの充実という結論に至った時、頭をよぎったのはRDDでした。
RDDとは、README Driven Developmentの略で、字のごとく「READMEを大切にして開発していく手法」の事です。この記事を見ている方には説明不要かもしれませんが、READMEとはプロジェクトの概要(About/Description)、使用方法(Usage)、要件(Installation)、ライセンス(License)などの情報を記した、一般的にはマークダウンで書かれたドキュメントの事です。
自分もまだ完全に理解したわけではないのですが、READMEを書く→開発という流れをとります。READMEってどのタイミングで書くのが正解なのか、自分もわからず開発していましたが、この手法では明確に決まっています。

RDDに関する素晴らしい記事が以下にあります。

RDDのメリット

RDDのメリットについて引用させていただくと、

  • モチベーションが高いときに書ける
  • 要件定義につながる

と紹介されています。

確かにドキュメントを書くというのはめんどくさい行為です。逆に言うと、ドキュメントを書けるくらい余裕がある時を有効活用できるのはとても素晴らしいですね。結局何かしらの形でドキュメントにするのであれば、書けるときに少しづつ書いていくのが得策でしょう。
それと、ドキュメントを書いているときって「今からこんなサービスを作るぞ!」という気持ちで書くのでやる気もアップしますね。

学生プログラマにとってのドキュメント指向

私がRDDをお勧めするのは、↑に書いてあるメリット以外にも、私たち学生プログラマならではのメリットも考えられると思います。

入門者にやさしい

まぁ当たり前と言えば当たり前なんですけど、多くの学生プログラマはプログラマ歴が短いです。実際にJsys18の中にも初めてHTMLやCSSを書いた人も多かったですよね。私が思うに、いわば入門者や初心者と呼ばれる学生にこそドキュメントの読み書きをして欲しいのです。常々思うことなのですが、大学から何かを始めた人って習得がめちゃくちゃ早くてびっくりするんですよね。だから伸びの大きい時期に本格的なチーム開発に参加できるなんて、本当はすごく贅沢で貴重な体験なわけです。

ドキュメントを書けるということは、ある程度そのことについて知見がなくてはなりませんから、書いている最中に頭の中で情報が整理されるという経過があります。しかも、そのドキュメントは自分と同じ世代の人が書いたものですから、もしかすると同じバグを踏んでいたり、手こずっていたりするかもしれません。自分と同じ状況の人がいるってだけで安心しますし、その解決方法が載っていれば、一層開発が捗るはずです。

ドキュメントを書く習慣が身につく

前項と同じ内容が含まれますが、「書く」ということに焦点を当てて考えてみます。
私自身もこの記事を執筆しているので感じているのですが、文書に起こすというのは結構大変です。そういう感覚を身に着けるのも大事なことだと思います。

お堅いこと書かなくてもいいんじゃない?

これはメリットと言えるか微妙なのですね...w 私たちは学生です。会社員じゃありません。べつにどのドキュメントも正式なものである必要はありませんし、外部に公開しないのであれば、自分たちさえ内容を把握できれば良いのです。そうなるとフランクな感じで書いてもいいんじゃないかと思います。いつもの通り、Jsysの和気あいあいとした内輪ネタで盛り上がろうじゃありませんか。

最後に

今回は以上となります。RDDを取り入れた開発が来年のできたらいいなぁという妄想記事でした。
最後まで読んでいただき、ありがとうございました。