アジャイルとは

完了

アジャイルとは、ソフトウェア開発のアプローチを示すために使用される用語であり、増分配信、チーム コラボレーション、継続的な計画と学習を重視しています。 アジャイルは、チームが行う作業を計画するための理念や考え方と同じようなプロセスではありません。 反復開発に基づいており、チームがソフトウェア開発で発生する避けられない変更に対してより適切に計画し、対処するために役立ちます。 最新リリース後の Mara と Andy の話し合いに耳を傾けてみましょう。

Mara は、チームに DevOps への関心を持たせる目的に向けて少し進んだと感じていましたが、その歩みは行き詰まっています。 前回のリリースで、チームはバグの修正に忙しすぎて他のことを考えられませんでした。

以前に説明したように、製品マネージャーの Irwin は、レーシング ゲームの Web サイトについてかなり重要な顧客からのフィードバックをチームに提示しました。 これらの問題の解決は楽しいものではありませんでした。 Andy と Mara はコードを書き、それをテスト担当者の Amita に渡します。 Amita はほぼいつでも新しいバグを見つけ、コードを差し戻す必要がありました。 ビルド サーバーではエラーが発生しました。 Tim は、開発とテスト環境でゲームの Web サイトが機能しても、運用環境で機能させることはできませんでした。 誰もが長時間働き、何週か週末に休めませんでした。

リリース後、Mara と Andy はコーヒーを飲むために座りました。 2 人とも疲れていました。 Mara は落ち込んでいますが、Andy の様子は違います。

Andy: 君がなぜ驚いているのかわかりません。 ソフトウェアのリリースは難しいものだ。 いつも長くてつらい仕事だよ。 今まで違うやり方だったことはあるかい。

Mara: ええ。今回ももっと簡単にできたのではないかと思います。 DevOps は私たちの役に立つと本当に思っています。

Andy: 前にバリュー ストリーム マッピングの演習をしたけど、これからどうしますか? 新しいリリースに着手しなければならない。 DevOps はもう終わったと思ったよ。

Mara: 私たちにできることは他にもたくさんあります。 最初の一歩を踏み出してアジャイル計画を立ててはどうでしょうか。 Azure Boards を利用すると役に立つと思います。

Andy: アジャイルとは?

Mara: アジャイルは、ソフトウェア開発のアプローチのことです。 "アジャイル" という言葉は、2001 年、「Agile Manifesto」(アジャイル マニフェスト) で作られました。 このマニフェストでは、ソフトウェア開発のアプローチを向上するためのいくつかの指針が定められました。 マニフェストの内容は次のとおりです。

私たちは次のことを大切にします。

  • 個人および対話 (プロセスやツールよりも)。
  • 包括的なドキュメントよりも動作するソフトウェア。
  • 契約交渉よりも顧客とのコラボレーション。
  • 変化への対応 (計画に従うことよりも)。

Andy: 何か人生が楽になる魔法を知ってるなら、大賛成です。 私が家に着く頃にはいつも子供達は眠ってる。 でも、具体的な解決策がないなら、ちょっと微妙に聞こえるかな。

Mara:それは魔法ではありませんが、少しずつならそれを行うことができます。 Azure DevOps には、アジャイル プラクティスを実装するために必要なツールが含まれています。 今のところ、計画を立てたいときは、Azure Boards を使用できます。 まず、ビルド プロセスを説明して、大きな問題を特定できるように手伝ってください。

何杯もコーヒーを飲んだ後、Mara と Andy はビルド プロセスの最大の問題を特定しました。 すべての問題は、前回のリリースで発生しました。 Andy が席を立った後、Mara は走り書きしたメモを見て、自分でちょっとしたアジャイル計画を実行することにしました。 彼女は自力で、Azure Boards で基本プロセスを使用してすべての問題を 1 か所にまとめます。

次の手順は、ボードをチームに見せて参加してもらうことです。

アジャイルの採用に関する推奨事項

チームは、アジャイル採用のための最初のステップを実行する準備をしています。 ここでは、チームが組織にアジャイルを組み込む際に使用できる一般的な推奨事項をいくつか紹介します。

アジャイル手法をサポートする組織構造を作成する

ほとんどの組織では、アジャイルの採用が困難です。 それには、組織内に存在する多くのポリシーとプロセスに疑問を投げかける、意識と慣習の変化が必要です。 従来、ほとんどの企業では、水平的なチーム構造を使用してきました。 実際には、これはチームがソフトウェア アーキテクチャに対応していることを意味します。 たとえば、アプリケーションのユーザー インターフェイスを担当するチームがあれば、データを担当するチームもあり、サービス指向アーキテクチャを担当するチームもあるでしょう。

しかし、アジャイル プロジェクトでは、縦断的なチームの方がより良い結果を得られます。 縦断的なチームはアーキテクチャにまたがり、製品の成果に沿っています。 たとえば、アプリのメール部分を担当するチームがあり、チーム メンバーが前述の 3 つの規範のいずれかに属している場合です。 縦断的なチーム構造のもう 1 つの利点は、チームを追加することによってスケーリングできることです。

アジャイルの技術と手法についてチーム メンバーを指導する

アジャイルの技術と手法を初めて採用する場合、チームによっては外部コーチを雇うことを決定します。 コーチは、複数のチームと連携して組織の問題点とサイロを取り除くこともできます。そのため、多くの場合、指導と経営の両方のスキルを持っています。 また、スタンドアップおよびレビュー ミーティングの実行方法など、アジャイル手法でチーム メンバーをトレーニングすることもできます。 しかし、徐々に、チーム メンバーがお互いを指導する能力を身に付けることが重要です。 したがって、ほとんどの作業は、仕事の多くを一人で行う個人ではなく、コラボレーションによって行う必要があります。

チーム内およびチーム間のコラボレーションを有効にする

コラボレーションがアジャイルで成功するための鍵となる場合は、どのような方法をお勧めしますか? ここでは、いくつかのアイデアを紹介します。

文化の変化

文化の変化にあたっては、いくつかの点に留意してください。 チーム メンバーに、静かで、快適な仕事場を提供することが重要です。 気が散るものや騒音がない、集中できる空間が必要です。

会議は避けがたいものですが、メンバーはこれが業務の邪魔になると感じる場合があります。 チーム メンバーがより細かく管理できるように、会議には議題と厳密な概算時間が必要です。

メールやメッセージなどの非同期的コミュニケーションは、メンバーにすぐに返信しなければならないという心理的負担を与えるおそれがあります。 すべてのコミュニケーションに迅速な対応が必要なわけではないことを明確に示してください。

多くの企業で、リモート チーム メンバーが標準になっています。 チーム メンバーがオフィスにいてもオフサイトで作業している場合でも、全員に快適に感じるようにし、平等に扱う必要があります。 コミュニケーションによるコラボレーションは、組織の DNA の一部になります。

意見の相違がある場合でも、優れたコミュニケーションの重要性を無視することはできません。 摩擦の解決は、アジャイル チームにとって必要なスキルです。

部門連係的なチーム

チーム メンバーのコラボレーションが重要であるのと同じくらい、チーム同士のコラボレーションも重要です。 部門連係的なチームでは、新しいスキルや視点が加わるため、課題をクリエイティブに解決するための全員の能力が高まります。 また、部門連係的なチームによって、組織全体がより密接に統合されます。 縄張り争いが減り、全員が共通の目標に向けて働いているという気持ちが強まります。

コラボレーションのためのツール

優れたツールを使用すると、アジャイル チームのメンバーがチーム内でも他のチームとでも効率的にコラボレーションできるようになります。 開始するにあたっては、以下が役に立ちます。

  • Microsoft Teams:Teams は、チャット、会議、メモ、ファイル ストレージのためのワークプレースを提供するアプリケーションです。
  • Skype:Skype は使いやすく、優れた汎用ツールです。 多くの人が既にインストールしています。
  • Slack:Slack では、1 つのインターフェイスで、多数の個別の通信チャネルが提供されます。 これらのチャネルは、プロジェクト、チーム、トピックなど、さまざまな方法で整理できます。 会話は保持され、検索が可能です。 内部と外部の両方のチーム メンバーを簡単に追加できます。 Slack は、ソース コード用の GitHub など、多くのサードパーティー ツールと直接統合されています。

その他の一般的なツールとしては、Google ハングアウト、Asana、Trello、GoToMeeting、monday.com などがあります。 どれがチームと会社のニーズに適合するかは、それぞれのオプションをご確認ください。