アイキャッチ画像: デスクの上でパソコンを使用している

Drupal (ドルーパル)ドキュメント翻訳シリーズの一環で今回は「新しいコントリビュータのためのノービスタスクの選択」という記事を翻訳してご紹介できればと思います。

こちらは Drupalista たちが Drupal に貢献( contribute back )したいと思ったときに最初に読むべき記事のひとつで、 Drupal に貢献したいときに実際どういったタスク/イシューを選ぶべきかを丁寧に解説した記事となっています。 元記事はこちらです。

Drupal はオープンソース・プロジェクトなので、誰でもそのメリットを享受できる一方、誰でもそのプロジェクトに貢献することができるという特徴があります。 2014 年の Dries さんの基調講演で話にあがっていたとおり、オープンソース・プロジェクトにおいては「プロジェクトに関わる人の総数」を増やすのと同時に「貢献してくれる人の割合」を増やしていくということが中長期的な成功において重要です。 Drupal はそのあたりは長年の蓄積があることもあって、 Drupalista がコントリビュータになるための情報がかなり整備されています。 ただ、日本人 Drupalista にとっては言語の壁などもありなかなかやりづらい部分があるのは事実です。 このあたりのリソースを日本語で用意しくことで日本人 Drupalista が貢献しやすい環境作りのお手伝いができれば...というのが本シリーズの趣旨です。 ちなみにこちらの記事もありますので興味のある方はあわせてどうぞ。

では以下が翻訳文です。 いつものごとく日本語としてのわかりやすさを重視し、ところによって意訳、ところによって直訳となっています。 なお、本翻訳の元となっているのは 2014 年 11 月 18 日更新のバージョンです。

新しいコントリビュータのためのノービスタスク(新人向けタスク)の選択 日本語訳

新しいコントリビュータとは? ( Who are new contributors? )

新しいコントリビュータの人たちは関心のある領域には精通していることかと思いますが、 Drupal コアに貢献するためのツールやプロセスには馴染みがないかもしれません。 Drupal がはじめてという方もいるでしょう。 新しいコントリビュータになりうるのは、サイトビルダー、開発者、ライター、デザイナーといった人たちです。

「ノービス (novice: 新人) 」という単語はそういった新しいコントリビュータが対応しうるタスクを指すために使用しています。

なぜノービスタスク? ( Why novice tasks? )

短時間で対応可能な Drupal コアイシューのリアルなタスクに取り組むことで、新しいコントリビュータは Drupal への貢献のためのツールとプロセスを難しい問題に煩わされることなく学ぶことができます。 よいノービスタスクは人々にはじめてのコントリビューション経験を提供し、先々他のイシューに取り組むための自信を与えてくれます。

よいノービスタスクのポイントは? ( What makes a good novice task? )

新しいコントリビュータのためのベストなタスクというのは、コントリビュータが貢献のためのツール(ローカルの開発スタックや drupal.org 、 Git や IRC など)について気をそらされずに集中して学び慣れられるようにするものでしょう。

  • よいノービスタスクには明快なステップとゴールがあります。
  • タスクのスコープを具体的にしましょう。
  • 理解できるイシューを選びましょう。
  • イシュータグ(「 Needs steps to reproduce 」「 Needs manual testing 」など)が現時点で正確であることを常に確認するようにしましょう。もしタグが正確でなくなっている場合はタグを削除して別のイシューを探しましょう。

ひとつのイシューに複数のタスク ( One issue has many tasks )

イシュー全体が新人向けである必要はないことに注意してください。 ひとつのコアイシューは多くのタスクからなり、それらのタスクには別々のコントリビュータが取り組むことができます。 イシューの中から、サイズが小さくて、定義がきちんと行われており、対応可能なタスクを見つけましょう。

時間の見積もり ( Time estimates )

使える指針は「もし自分が経験豊富なコントリビュータなら、タスクを完了するのにどれぐらいの時間がかかると思うか」の見積もることです。 あなたが通常選ぶタスクは、経験豊かなコントリビュータであれば 0 ~ 30 分の範囲で終えられるものにするべきです。 上述の条件に適合する場合は、もう少し長いタスクを選択しても OK ですが、そのタスクがあなたにとって重い仕事になるようであればそれはよいノービスタスクではないのかもしれません。

タスクのタイプ ( Task types )

新しいコントリビュータはコントリビュータタスクガイドの中にあるタスクタイプを選ぶとよい場合が多いでしょう。 なぜならそれらのタスクには明快な説明があり、多くのイシューにとって必要だからです。 コアのメンター活動については、コアのコントリビューションメンタリングタスクチャートをご覧ください。 そこには Drupal の一般的なコアタスクがそれを完了するのに必要なスキルセットとあわせて分類分けされています。

スプリントのためのタスク ( Tasks for sprints )

新しいコントリビュータがスプリントの間に終わらせられるタスクをピックアップしましょう。 「 Project 」や「 homework 」といったタスク(こういうものには IRC でのメンター活動が数週間必要となります)は通常スプリントの場での新しいコントリビュータのためのよいタスクにはなりません(ただ、通常のコントリビュータや経験豊かなコントリビュータにとってはよい場合もあります)。 さまざまな理由があってそれらのイシューのところに戻ってこない人がたくさんいるということを覚えておきましょう。

スプリントでのプライオリティ ( Sprint priorities )

コントリビューションのメンタリングバックチャネルで「優先順位は?」と質問しましょう。 スプリントリードやタスク選定リードにスプリントの優先順位を聞きましょう。

避けるべきタスクやイシューは? ( What tasks or issues should be avoided? )

避けるべきタスク ( Tasks to avoid )

おすすめのタイプのタスクであっても、新しいコントリビュータが選ぶべきではないものがときどき存在します。以下のようなタスクは 避けましょう:

  • 巨大なパッチ( 50KB のものは大き過ぎ)や多くのファイルを変更するパッチの再適用。マージのコンフリクトの解消方法を習得するには経験が必要だからです。
  • コメントがたくさんついているイシューや厄介なヒストリーのあるイシューのイシューサマリー。新しいコントリビュータのモチベーションを削ぐことがあるからです。
  • アップグレードパステスト。ほとんどの Web テストよりも困難で時間がかかるからです。

割けるべきイシュー ( Issues to avoid )

そのイシューに必要なタスクの中によいものがあったとしても、新しいコントリビュータには好ましくないイシューというものがあります。 以下のようなイシューは 避けましょう:

  • 緊急のもの。新しいコントリビュータには多めの時間が必要なので。
  • 長いもの。圧倒される可能性があるので。
  • 賛否両論のあるものやコンセンサスがないもの。新しいコントリビュータが間違った方向に進んでしまったり議論の途中で行き詰まってしまったりする場合があるので。
  • 再開されたもの、頓挫したもの、方向性が変わってきているもの。とてもややこしいので。
  • 延期されたもの。イシューキューに馴染みのないメンバーは Novice タグのものをただ探すだけでアクティブなイシューだけに絞り込む方法を知らないかもしれないので。私たちは対応可能なノービスタスクに集中すべきであって、たくさんのイシューを持ってしまうことを心配すべきではありません。
  • 開発中のバージョンでないもの。新しいコントリビュータには他の人たちに興味を持たれている重要なイシューに取り組んで欲しいから。 Drupal 6 、 8.1.x 、 9.x のイシューにノービスの印をつけるべきではありません。

また、現在のリリースサイクルフェーズの中でおそらく コミットできない イシューも避けましょう。 新しいコントリビュータは自分の仕事の成果を長期間見ることはないからです。 次のようなものが含まれます:

ノービスタスクのタグづけ/タグ解除 ( (Un)tagging novice issues )

ノービスタスクがひとつでも含まれるイシューには「ノービス」というタグがつけられます。 そういったものにはたとえば、手作業でのテストが必要だったりイシューサマリーにビフォー/アフターのスクリーンショットをつける必要があったりするような複雑なイシューも含まれます。 (経験豊かなコントリビュータが「ノービス」というタグをイシューにつけることに同意しないということも起こりえます。そのような場合にはこのドキュメントのことを伝えるとよいかもしれません。)

ひとつのタスクを特定する ( Specifying individual tasks )

Dreditor は「 Issue summary 」セクションに「 Insert Novice Tasks 」というボタンを追加します。 このボタンはほとんどの行がコメントアウトされた HTML テーブルを利便性のために挿入します。 このテーブルが追加されると次のことができるようになります。

  • コメント化された行をひととおり読んで適切な行のコメントを外す。
  • 本当に適したものがなければ説明文を調整/追加する。
  • 「 Novice? 」の列から「 Novice 」を削除したり追加したりする。
  • 完了済みのタスクの「 Complete? 」の列を更新する(それが行われたコメント番号を参照しましょう)。
  • コメントを外したタスクになんらかの標準的な「 Needs 」タグを追加する(例: 「 Needs screenshot 」「 Needs issue summary update 」。「 Needs 」タグの一覧をご覧ください)。

タスクをより明快にするためにイシューサマリーそれ自体を更新すべきか、あなたが追加するコメントの中でタスクの詳細を記述すべきか()といったところは自分自身で判断してください。 これは「 update the issue summary 」というタスクそのものがノービスタスクかどうかによるところもあります。

スプリントのためのタスクのトリアージ(取捨選択) ( Triaging issues for sprints )

規模が大きめのスプリントでは通常専用のタグを使ってイシューをタグづけするという準備が行われます。 タグを使う際のコンセンサスは、空白やハッシュは含めず大文字始まりで書きます(例「 Amsterdam2014 」)。 本記事執筆時点では、 Dreditor 用の fork や pull のリクエストがあります。 Dreditor では編集されたイシューすべてに自動的にタグづけすることが可能です。 Dreditor を使うとトリアージを行う人は実際にタグを追加することを忘れることはありません: http://build2be.com/content/using-dreditor-triage-issues

ノービスタスクのタグ解除 ( Untagging novice issues )

「ノービス」 (novice) というタグが付いているのにすでにノービスタスクがないイシューについてはタグを外すことが大切です。 これはこの先イシューをトリアージするすべての人の手間を軽減します。 タグを外す際は、何がノービスタスクであるかのガイドラインを含んだこのドキュメントのページを参照してもよいでしょう。 判断するのが一仕事となるようなイシューのタグを外す場合は、このイシューにスプリント固有のタグをつけるということをしても OK です(これらのタグはスプリントでの仕事をトラックするために使うものです)。

翻訳は以上です。 いかがだったでしょうか?

今回は新人向けタスクの選び方を解説した記事を翻訳してご紹介しました。 Drupal プロジェクトへの貢献に興味のある方はぜひご参考にしていただければと思います。

引き続き、 Drupal Sprint Weekend in Shiga 2015 に向けていくつかのリソースを翻訳していきます。