誰もがプロジェクトマネージャーです。新しいアプリケーションの開発を管理してスタートアップを成長させたり、新しい10億ドル規模のエンタープライズプロジェクトに取り組んだり、DIYの造園で庭を盛り上げようとしたりする場合でも、常にプロジェクトを管理しています。
プロジェクトの成功は多くの要因に依存しますが、プロジェクトが失敗する最も一般的な理由の1つは、管理の欠如または完全なものです。 悪い プロジェクト管理。チームがどれほど小さくても、または要件がどれほど明確に文書化されていても、チームを適切に管理しないと、プロジェクトは必ず失敗します。
プロジェクトの管理に費やす毎分は、十分に費やされた時間です。それはあなたのプロジェクトの成功に近づくでしょう。アジャイルプロジェクト管理は、現代のソフトウェア開発プロジェクトにアプローチするための広く受け入れられている方法です。しかし、何をしますか アジャイル 本当に意味?
アジャイルの原則をさらに深く掘り下げるには、 アジャイルプロジェクトへの究極のガイド 管理。
この投稿では、かんばんを使ったアジャイルプロジェクト管理の基本について説明します。
アジャイルの原則を内外で理解している経験豊富なプロジェクトマネージャーであっても、記憶をリフレッシュし、コアコンセプトを思い出す必要があります。イノベーションサイクル ソフトウェア開発 は絶えずスピードアップしており、反復ごとにプロジェクト管理がより複雑になっています。アジャイルの基本原則に戻り、コア原則を固めることは常に重要です。結局のところ、繰り返しはすべての知識の母です。
かんばんは、アジャイルソフトウェア開発プロジェクトを管理する最も簡単な方法の1つです。同じオフィスまたは分散したチームから、複数のタイムゾーンに分散して作業するローカル開発チームを簡単に処理できます。
かんばんはプロセスではありません。これは、チームの確立された運用活動への最小限の変更でプロセスを管理する方法です。
かんばんの原則を作業に適用するには、次の2つの簡単なルールを適用する必要があります。
データの視覚化は、普遍的で理解しやすい方法で情報を伝えるための迅速で簡単な方法です。写真を見るとき、人間の脳は複数の情報を同時に処理することができます。一部の研究によると、これはテキストを読むよりも最大60,000倍速くなる可能性があります。
私たちの視覚のための脳ニューロンは 30パーセント 脳の灰白質のプロセスを視覚化する最も一般的な方法は、かんばんボードです。かんばんボードは、垂直方向に複数の列に分割されたボードであり、各列はプロセスの1つの状態を表します。
単純なソフトウェア開発ボードがどのように見えるかを見てみましょう。まず、開発機能の状態を定義する必要があります。
これに基づいて、ボードのレイアウトは次のようになります。
個々のタスクの視覚化は、実行する必要のある作業を表す単純なカード(ポストイットのようなもの)を作成するのと同じくらい簡単です。タスクに名前を付けたり、割り当てられた開発者の名前、期日、およびその他の関連情報をこのカードに追加したりできます。
ソフトウェア設計文書の書き方
そのカードをかんばんボードの列に追加すると、たとえば、特定の開発者が特定の日付に期限があり、現在開発中の特定のタスクに取り組んでいることが視覚化されます。
人間のマルチタスクは妄想です。 1つまたは2つのことに同時に注意を払う代わりに、私たちの脳はそれらを非常に迅速に切り替えています。
これは、ソフトウェア開発において他のどこよりも顕著です。開発者は一度に1つのコードでしか作業できず、別の機能に切り替えると遅延が発生し、集中力とパフォーマンスに影響します。
これは、割り当ての数を一度に1つに制限する必要があるという意味ではありません。開発は複雑で創造的な作業であり、一部のタスクは完了するのに時間がかかり、他のタスクは完了するのに時間がかかりません。開発者が何かまたは誰かを待っている間は常に遅延があります。重要なことは、割り当てられたタスクを、混乱を引き起こさない妥当な数に制限することです(これは通常、一度に3〜5回の割り当てです)。
開発チームが2人の開発者と1人のQAエンジニアで構成されているとすると、ボードには次のWIP制限がある可能性があります。
プロジェクトマネージャーとしてのあなたの仕事は、To Doリストに適切な優先順位が付けられ、タスクが必要なときにすぐに開発者に割り当てられるようにすることです。
適切に管理されたかんばんボードは、プロジェクトのステータスを一目で明確に示します。開発者には十分な作業があり、割り当てが完了したら引き継ぐことができる新しいタスクを準備し、QAエンジニアが新しいタスクのレビューを待っていることがわかります。
Trello Webベースのかんばんプロジェクト管理アプリケーションです。これにより、チームメンバー間、さらには複数のチームやプロジェクト間での簡単なリアルタイムコラボレーションが可能になります。
Trelloでボードを作成するには、[Create new board…]メニュー項目をクリックして、ボードのタイトルを設定します。
空のボードから始めます。 「リストの追加…」ボックスを使用して、かんばんカードの列を作成します。
リストの下部にある[カードを追加...]をクリックすると、タスクを簡単に作成できます。作成する各カードは、チームメンバーによって実行されるタスクを表す必要があります。
Trelloのカードは、さまざまな方法でカスタマイズできます。
かんばんでは視覚化がすべてなので、ボード上でのカードの外観は次のとおりです。
カードを見るだけで、詳細ビューを開かなくても、次のことがわかります。
プロジェクトの計画と管理は、特定のタスクを完了するために必要な労力と時間を理解しないと不可能です。ただし、ソフトウェア開発で行うのが最も難しいことの1つは、新しいソフトウェア製品または機能を提供するのにかかる時間を決定することです。
スクラム 最も人気のあるアジャイル原則の1つである、は、時間に基づいているか「複雑さのポイント」に基づいているかにかかわらず、見積もりに大きく依存しています。
ラズベリーパイ3Linuxサーバー
チームは、タスクの調査にかなりの時間を費やす必要があります。
これは、スクラムがタイムボックス化された間隔に基づいており、特定のタスクグループが完了すると予想されるためです。配信を計画するには、そのタイムボックスで計画されているすべての作業を完全に理解する必要があります。
かんばんはタイムボックス配信に依存しておらず、必要に応じて毎日の配信を計画できます。これはフローの最適化に依存しています。つまり、チームの焦点は、できるだけ早くWIP列を完成させて空にすることです。
チームは、事前に作業を見積もるのに時間を費やしていません。開発者はTo-Doから次のアイテムをピックアップします。できるだけ早く完了してください。そして別のタスクをピックアップします。
これは、チームがワークロードの量を見積もるべきではないという意味ではありません。
毎週または毎日の通話を使用して、期日を更新および確認できます。
ただし、小規模なチームの場合、開発者が常に最も優先度の高いタスクに取り組んでおり、ボトルネックがないことを確認して、開発者に作業を一時停止させることがより重要です。
最終的に、プロジェクトは成長し、開発作業の量をより詳細に見積もる必要があります。この状況になったら、ガイドを読んでください。 アジャイルプロジェクト管理におけるソフトウェアコストの見積もり 。
これまで、プロセスを視覚化してWIPを制限することの重要性と、Trelloを使用してプロジェクトを管理する方法について学習しました。
ただし、ソフトウェアプロジェクトは、カードと列だけで管理することはできません。したがって、アジャイルのベストプラクティスも実装することが重要です。
定期的なチームミーティングを開催します。
これを少なくとも毎週実行して、実行されたことを確認し、必要に応じてバックログ(To-Doリスト)を調整して優先順位を付けます。このようにして、チーム全体が同時に更新を取得し、アイデアを共有できます。これらの会議では、プロジェクトの利害関係者(クライアント、企業のCTO、または決定を下して質問に答えることができる製品チームの誰か)がいて、最終的に非技術的なフィードバックを提供することが重要です。
個々のチームメンバーとの絶え間ないコミュニケーションを確保します。
これにより、全員の日常業務がはるかに簡単になります。これらの会議や同期は非常に短くシンプルに保ち、お気に入りのチャットプログラムをすばやく更新するだけで十分です。毎日チェックインするのは便利です。これは、チームとの1日15分の会議になる可能性があります。この会議では、すべてのチームメンバーが数秒間次のように話します。
通話中にメモを取り、考えられる問題(ブロッカー、タスクへの誤った集中、予期しない技術的課題)を見つけるために注意を払い、チームと協力して作業します。
ソフトウェア開発プロジェクトはそれぞれ異なりますが、ほとんどすべてのプロジェクトに特定のタスクがあります。ソフトウェア開発プロジェクトを開始するときに計画する必要のあるタスクのいくつかを次に示します。
コードのバージョン管理とリポジトリを設定します。
変更の追跡とコードの監視は、特に複数の人が同じコードを更新するプロジェクトで共同作業を行う場合に非常に重要です。
コードバージョニングで最も人気のあるサービスの1つは GitHub 。 GitHubは、Gitのすべての分散バージョン管理およびソースコード管理(SCM)機能を提供するWebベースのGitまたはバージョン管理リポジトリです。
アクセス制御と、バグトラッキング、機能リクエスト、タスク管理、すべてのプロジェクトのWikiなどのいくつかのコラボレーション機能を提供します。
データベースのバックアップポリシーを定義します。
GitHubなどのサービスを使用すると、コードが定期的にバックアップされることが保証されます。
通常、データベースはバージョン管理システムの一部ではないため、データベースのバックアップも頻繁に設定する必要があります。
開発プロセスはエラーが発生しやすく、開発中に間違いを犯したり、間違ったデータを更新したりするのは簡単です。このような問題が発生した場合、バックアップを作成することで問題を回避できます。
コラボレーションツールとファイル共有を設定します。
プロジェクトのドキュメント、機能仕様、設計ファイル、およびプロジェクトの開発中に使用されるその他のドキュメントとファイルは常に更新されているため、チームに配布する必要があります。
これらのファイルを共有するには、さまざまなサービスを使用できます。 Googleは、この問題に対するシンプルで費用効果の高いソリューションを許可しています。 Googleドライブ、Googleドキュメント、Googleスプレッドシート、その他のGoogleアプリを使用して、ファイルを共有したり共同編集したりできます。
個別の開発サーバーとテストサーバーをセットアップします。
開発プロセスは常に継続する必要があります。
開発者は、アプリケーションテストの結果を待つべきではなく、品質保証が完了した機能をレビューしている間、割り当てに取り組み続ける必要があります。
同時に、クライアントは、開発チームを待たずに、いつでもアプリケーションの現在の状態を確認できる必要があります。定期的に更新される専用のテストサーバーを使用すると、このプロセスのすべてのボトルネックが解消され、チームが中断することなく実行されます。
毎週のチームコールの固定時間を定義し、毎日のチームキャッチアップコールまたはチャットの固定時間を定義します。
チームメンバー全員に、電話や会議の時間をカレンダーでスケジュールしてもらいます。これにより、作業を中断することなく、チームに安定したスケジュールを提供できます。
プロジェクト管理は複雑で、非常にストレスの多い活動です。それに構造を追加し、プロジェクトのステータスを常に表示して正確にすることで、このストレスの多くが軽減されます。かんばん方式とアジャイル原則を適切なツールと組み合わせて使用すると、時間を大幅に節約できます。
そうは言っても、プロジェクトマネージャーとしてプロジェクトの管理に専念しなければならない時間を補うツールや方法論はありません。
また、プロジェクトが小さいからといって、必ずしも時間がかからないというわけではありません。この考え方は、将来の大きな頭痛の種の素晴らしいレシピです。
プロジェクトが適切に管理されているかどうかを確認するのに役立つ簡単なチェックリストを次に示します。
このリストは明確ではなく、完了しているわけではないことに注意してください。それはほんの始まりです。
コメントを残し、ソフトウェア開発チームに力を与えるという終わりのない旅を始めたばかりのプロジェクトマネージャーとヒントや実践を共有してください。