プロジェクトを円滑に進めるための原則

2022/10/29に公開

はじめに

プロジェクトに参加しているメンバーが上手に環境に適用せずに離脱してしまうことはよくある。そうなれば、身体を壊してしまう可能性が考えられる。これは新規メンバーに限らず、既存のメンバーであってもプロジェクトや本人の状況などに変わりがあれば発生する可能性がある。

今回の記事では、そのようなことを未然に回避するために重要な原則を徹底解説する。

原則

ドキュメントを整理する

まず最初にやるべきことは、開発で使っているプロジェクトのドキュメントを整理することである。ドキュメントには主に以下のことを書き記しておこう。その際に、難解な専門用語や概念は説明を入れて第三者にもわかりやすく説明することを心がけよう。わかりやすいように画像やソースコードも付け加えて書くと質の高いドキュメントが仕上がる

  • 選定した技術とその採用理由
  • 機能仕様とその変更理由
  • 設計方針(例:アーキテクチャ)とその採用理由
  • 抱えている課題と障壁となる事項

とりあえずこれらをまとめておけば質の高いドキュメントを仕上げられる。どのようにまとめるべきかわからなければ以下の書式フォーマットで書くと整理しやすい。参考になれば幸いである。

document_format.md
# ドキュメント名

# システム図

<!-- システム図の画像を載せる -->

# 選定した技術

<!-- 選定した技術とその理由を簡潔に書いておく -->

## 技術A

## 技術B

# 仕様

# 設計方針

<!-- 採用したアーキテクチャとザックリとした設計手順を箇条書きで書く -->

# 設計手順

<!-- ザックリでもいいからとりあえず書いておく。ソースコードと画像、GIFがあればベスト -->

# 抱えている課題

<!-- 現時点でプロジェクトが抱えている課題点を書いておく(まとまらなければ箇条書きで書こう) -->

「最も優先度の高い作業」だけをタスクとして扱う

複雑なことは一切せずに、「最も優先度の高い作業」だけをタスクとして扱う。これはあくまで個人の主観ではあるが、タスク管理の基本的な原則はこれに尽きる。

とりあえずやるべきタスクを列挙してみて、最も優先度の高い作業だけをタスクとして取り上げる作業を一度やるべきだ。タスクの優先度は100点満点で採点し、90点以上のタスクだけをTodo管理ツール(Notionなど)に書き込んでいこうそれ以外のタスクは極力登録しない。これをやるだけでも「タスクが全く消化できなくて一向に進まない...」という不安や焦燥感を解消できる。

タスクは「誰が」やるのかを明確にする

これはタスクを適切に管理する上で最も重要になる。設定するタスクには「誰がやるのか」を明確にしておこう

Qiitaの記事「プロジェクトの残業を50%削減したタスク管理手法を惜しみなく公開する」によると、上述の内容に関連して以下のことが書かれている。

メンバー全員がピリつく瞬間である。これもまた「大きなタスク」ほど発生率が(略
タスクを切った直後と現状が異なるので、「最初のアサイン対象者が動けない」という状況も少なくない。結果として無関係のメンバーが押しつけられることとなり、「何で俺がこんなことを」と不満が溜まる傾向にあった。

上述の内容の要旨は、タスクの中に「誰がやるのか」を明確にしないと他のメンバー――特に無関係のメンバーに迷惑をかけてしまうことがあることを示唆している。

プロジェクトを円滑に進めるためには、必ずタスクに「誰がやるのか」を明確にすることを記述するべきである。タスク名にその担当者の名前をセットで書いておくのが最も効果的な方法である。

ペアワークを実施する

これは簡潔に言えば、既存のメンバーがどのように作業するのかを間近で見ることを意味する。さらに、新規メンバーが作業する方法を一緒に見ることでタスクや作業の不備・欠陥を早期発見できる。

テストコードを用意する

上述に関しては、株式会社ゆめみのZenn記事「プロジェクトに浅瀬を作る」にて以下のような記述がある。

テストコードがない部分は危険な場所であり、仮に変更も不具合も発生しない箇所なら極論なくても問題はありません。頻繁に変更され、特に不具合による変更が発生しているなら、テストコードを追加します。歴史的な経緯からテストコードの追加が困難な場合は、テストがなくて危険な場所であることをドキュメントやコメントで明らかにします。

プロジェクトの中で、頻繁に変更されていて特に不具合による変更が発生しているならテストコードを追加しよう。追加する際には、仕様等が書かれているドキュメントに変更点と不明点をソースコードや画像付きで同時に書くと良質な意思疎通を図れる。どうしてもテストコードが書けない場合は、その旨と理由を丁寧にドキュメントに書いたりコメントに残したりすること。

おわりに:プロジェクトマネジメントは正解がないゆえに、最も難しいテーマの1つ

今回の記事では、あくまで一個人の見解に過ぎないがプロジェクトを円滑に進めるための原則を簡潔に解説した。

【プロジェクトを円滑に進めるための原則】

  • ドキュメントを整理する
  • 「最も優先度の高い作業」だけをタスクとして扱う
  • タスクは「誰が」やるのかを明確にする
  • ペアワークを実施する
  • テストコードを用意する

参考サイト

https://zenn.dev/yumemi_inc/articles/safety-project

https://qiita.com/0w0/items/0b287be30af6539ac5e9

GitHubで編集を提案

Discussion