進捗共有に必要な情報 - 目的、期日、現状、今後 - 2015-08-31 - ククログ

ククログ

株式会社クリアコード > ククログ > 進捗共有に必要な情報 - 目的、期日、現状、今後

進捗共有に必要な情報 - 目的、期日、現状、今後

クリアコードはフリーソフトウェアの開発で得た知見を活かして受託開発(やサポート業務や開発支援など)をしています。

フリーソフトウェアの開発は「やりたいことベース」あるいは「必要なことベース」で開発することが多いです。その開発スタイルでは「期日」という概念が希薄です。定期的にリリースする開発スタイルを取り入れているプロジェクトもありますが、「リリース日までに○○を実現するぞ!」というよりは「リリースに間に合わなかったら○○という機能は次のリリースに持ち越しだな」という感じです。

しかし、仕事として開発する場合は「期日」という概念が希薄なことは致命的です。約束したものを約束した日時までに提供できない可能性が高くなるからです。提供できない場合は対価を得られませんし、次の仕事にもつながりません。(約束を守らない会社と契約したいか考えてみてください。)

「約束を守れない」という事態を未然に防ぐ方法として、「進捗を共有する」という方法があります。「朝会」として毎朝進捗を共有しているチームもあるでしょう。

進捗を共有することで、当事者が「約束を守れない」という事態になりそうだと気づいていない場合でも、まわりの人が気づいて対策を講じることができます。

補足:「進捗を共有する」ことは、「約束を守れない」という事態を未然に防ぐ、という防御を目的にしたときだけ利用できることではありません。共有してお互いの協力を促進するという目的のために使うこともできるでしょう。他にもいろいろな目的のために使うことができますが、ここでは、「約束を守れない」という事態を未然に防ぐ、という目的に使うという話です。

前置きが長くなりましたが、このような情報を進捗として共有すれば「約束を守れない」という事態を未然に防ぐことに役立つ、という情報を説明します。

共有する情報

「約束を守れない」という事態に気づきやすくするために次の4つの情報を共有します。

  • 目的

  • 期日

  • 現状

  • 今後

それぞれの関係(+α)を図にすると次のようになります。

共有する4つの情報の関係

「スタート」からはじめて、「期日」までに「目的」の「成果」を実現することを目指します。

「現状」は「スタート」からどのくらいの「期間」が「使用済み」になったかと、今の時点での「成果」です。

「今後」は今の時点からどのように「目的」に向かっていくかの方向性と「使用予定」の「期間」です。

「現状」と「今後」を材料に、「残り」の「期間」で「目的」に到達できそうかを検討することで「約束を守れない」という事態に気づきます。

他の人が到達できなそうと気づいたら約束を守れそうか当事者に聞いてみます。他の人は、異変に気づくために次のことに注目します。

  • 「残り」の「期間」が足りるか

  • 「今後」の方向が「目的」に向かっているか

  • そもそもこれらの情報を当事者自身が把握しているか

これらに疑問を感じるときは当事者に声をかけます。

具体例を示します。Groongaという全文検索エンジンの管理用Web UIを開発するという仕事をしているとします。

当事者に声をかけた方がよさそうな例です。

8月31日の進捗: [[" * Groongaの管理Web UIの開発", [[" * 昨日から検索UIを実装し始めた。今日も引き続き検索UIを実装する。"]]]]

大丈夫そうな例です。

8月31日の進捗: [[" * Groongaの管理Web UIの開発", [[" * 目的:Groongaのコマンドの詳細を知らなくてもユーザーがデータベースを操作できるようになること"], [" * 期日:2015年9月4日18時"], [" * 現状:", [[" * 使用済み期間:3日(全部で5日)"], [" * 成果:検索UI以外のUIは完成した。検索UIは昨日から着手している。"]]], [" * 今後:", [[" * 今日1日で基本的な検索UIを完成させる。"], [" * 残りの1日で初心者ユーザーでも使えるように改良して目的達成を目指す。"]]]]]]

それでは個別にそれぞれの項目について説明します。

目的

「目的」はこの開発が始まったときに決まっているはずです。目的は明示的に変えない限りそのままです。つまり、目的を忘れないことが大事です。

「目的」は最初に決まる

フリーソフトウェアの開発では「自分の興味が目的」であることが多いため、「関係者で共有した目的」を忘れないことについて、フリーソフトウェアの開発での知見を活かす機会はほとんどありません。そのため、「目的を忘れない」ということは意識して実施しなければいけません。

なお、目的が変わることは別に悪いことではありません。一度覚えた目的を覚えなおしたくないために、目的が変わることを拒否してはいけません。目的が変わることはフリーソフトウェアの開発でもよくあることです。時代は変わるので、時代に合わせてプロジェクトの方向性を変えることは普通です。目的が変わり関係者で新しい目的を共有したら、新しい目的を受け入れて忘れないようにします。

「目的」に関して、他の人が注目するポイントは次の通りです。

  • 目的がコロコロ変わっていないか(目的が「関係者で共有した目的」ではなく「自分の興味」になってしまっているかも?)

  • 目的を共有しなくなった(目的を忘れているかも?)

期日

「期日」もこの開発が始まったときに決まっているはずです。期日も明示的に変えない限りそのまままです。つまり、期日も忘れないことが大事です。

「期日」も最初に決まる

フリーソフトウェアの開発では「期日」という概念が希薄なことが多いため、フリーソフトウェアの開発の知見を活かす機会はほとんどないでしょう。

期日を忘れている場合、適切な実装の判断に失敗する場合があります。その結果、期日までに目的を達成できないかも(「約束を守れない」という事態になるかも)しれません。

時間がどのくらいあるかによって適切な実装は変わってきます。時間があまりないならたまにしか実行しない処理の性能向上にそれほど時間を使わないかもしれません。期日は適切な実装を選択する重要な条件になります。

「期日」に関して、他の人が注目するポイントは次の通りです。

  • 期日を共有しなくなった(期日を忘れているかも?)

現状

「現状」は「スタート」からどのくらいの「期間」が「使用済み」になったかと、今の時点での「成果」です。これは日々変わります。成果がでていなくても「使用済み」になった「期間」は増えるので変わります。

「現状」はできるだけ正確に把握できていることが大事です。

現状は「使用済み」の「期間」と今の時点での「成果」

フリーソフトウェアの開発では、現状のうち、今の時点での「成果」については知見を活かせる場合があります。「使用済み」の「期間」については活かせる知見はあまりないでしょう。なぜなら、「期日」という概念が希薄なことが多いからです。

フリーソフトウェアの開発では、困ったら途中でも相談する人といくら困ってもある程度形になるまでは相談しない人がいます。進捗共有に知見を活かせるのは、前者の「困ったら途中でも相談する人」です。

前者の人は随時コードを共有する傾向が強く、後者の人はできあがるまで見せてくれない傾向が強いです。一緒に開発していると知見を活かせる人かどうかわかるでしょう。

「現状」に関して、他の人が注目するポイントは次の通りです。

  • 今の時点での「成果」があまり変わらない(行き詰まっているかも?)

  • 今の時点での「成果」を共有しなくなった(行き詰まっているかも?)

  • 「使用済み」の「期間」を共有しなくなった(「成果」を出そうとしているけど行き詰っていて期日を忘れてしまっているかも?すでに期間を使い過ぎているかもしれない。)

今後

「今後」は今の時点からどのように「目的」に向かっていくかの方向性と「使用予定」の「期間」です。一番むずかしい項目です。他の3つの項目はそれぞれ独立していましたが、「今後」は他の3つの項目を把握した上でないとまとめられないからです。

「今後」は「使用予定」の「期間」と今の時点からの方向性

たとえたくさん成果をだしていたとしても、「目的」に向かっていない方向性なら要注意です。当事者は成果をだして順調に進んでいる気になっているかもしれません。「期日」が近づき「目的」はあとどのくらいで達成できるかを考えたとき、かなり作業が残っている(「目的」を達成する「成果」がほとんどない)、という自体になりかねません。

「目的」を忘れているとこの状態になりやすいです。

「目的」を忘れた「今後」

方向性が正しくても、「期間」の使い方を間違うと「期日」までに完成しません。道半ばにして「期日」になってしまいます。

「期日」を忘れているとこの状態になりやすいです。

「期日」を忘れた「今後」

「今後」に関して、他の人が注目するポイントは次の通りです。

  • 方向性が「目的」とずれている(「目的」を忘れているかも?)

  • 「使用予定」の「期間」が多過ぎる(「残り」の「期間」を意識していなそう。「期日」を忘れているかも?「目的」を忘れているかも?)

  • 「今後」を共有しなくなった(目の前の問題しか見ていないのかも?「期日」までに「目的」を達成できないかも?)

まとめ

フリーソフトウェアの開発で得た知見だけを活かしていると「期日」までに約束した「成果」を達成できない可能性が高いです。そのため、それを未然に防ぐための対策が必要になります。

対策として、進捗を共有し、当事者が気づいていなくても周りの人が気づいて対応を始める方法を紹介しました。この対策を実現するために、進捗として次の4つの情報を共有することを提案しました。

  • 目的

  • 期日

  • 現状

  • 今後

フリーソフトウェアの開発ができても仕事ができるわけではありません。クリアコードは、フリーソフトウェアの開発もできるし、仕事もできる開発者を集め、対価を得ながら継続してフリーソフトウェアを開発できる体制を維持していきます。