XPlannerでアジャイルチームを管理する

範囲、設計、構築、テスト、提供、謝罪。これらは、ソフトウェアプロジェクトの水銀の世界に適用される場合、従来のエンジニアリング方法論のよく踏まれたステップです。ソフトウェア開発者として、あなたはおそらく、プライズファイターのようにアヒルと織りのように見えるその「最終的な」システム要件に精通しているでしょう。おそらく、開発プロジェクトに苦労して数か月(または数年)後に出現し、実際のニーズが満たされていないことに非常に失望しているように見える顧客に直面したのかもしれません。おそらくあなたの仲間は、彼らの前に置かれた綿密な長期開発計画が差し迫った破滅の感覚を植え付ける時点にあります。結論-あなたのチームはアジャイル開発に取り掛かる準備ができていますが、従来のチーム管理ツールは従来のチーム管理用に配線されていますか?

アジャイル手法は軽量かもしれませんが、高度に統制されています。顧客との緊密なコラボレーションにより、迅速な配達の計画と追跡をサポートするツールは、武器に貴重な追加を加えることができます。幸いなことに、このようなツールのいくつかがアジャイルチームで利用できるようになりました。この記事では、この新しい種類のツールの1つであるオープンソースのXPlannerを使用してアジャイル開発チームを管理する実際の経験について詳しく説明します。

XPlannerは、エクストリームプログラミング手法(XP)に従ってチーム管理をサポートするように設計されたJavaWebアプリケーションです。ただし、このツールは、プロジェクトの実施が進んでいる他の主流のアジャイルアプローチ(スクラムなど)に貴重なサポートを提供するのに十分な柔軟性があることがわかりました。洗練されていませんが、XPlannerは、アジャイルソフトウェア開発のやりがいのある世界を経験している場合でも、始めたばかりの場合でも、チームをサポートするための便利なツールを提供します。

従来のチーム管理ツールとアジャイルチーム管理ツール

従来のチーム管理ツール(Microsoftのプロジェクトなど)は、プロジェクトの将来を見据えた作業分解図に基づいています。リソースの計画された割り当てとベースラインへの差異の注意深い監視は、最終的な配信への「クリティカルパス」を管理するために使用されます。このようなツールの適用は、実質的な事前計画の取り組み、厳格なタスクの依存関係、および要件の安定した基盤を意味します。スコープまたは要件を大幅に変更すると、モデルの大幅な改訂が必要になる可能性があります。したがって、これらの従来のツールは、コースの変動がほとんどないと仮定して、AからBへの旅を計画するときに最も適切です。対照的に、アジャイルプロジェクトは変化を期待するように調整されており、Bが最終目的地であるとさえ想定していません。

アジャイルプロジェクトの文化を理解する上で、アジャイルマニフェストの作成者によって支持されているアジャイル開発の信条を検討することは有用です。

  • 「プロセスとツールを介した個人と相互作用
  • 包括的なドキュメントを介した作業ソフトウェア
  • 契約交渉をめぐる顧客のコラボレーション
  • 計画に従った切り替えへの対応」

    (Kent Beck et al。、2001)

したがって、アジャイルプロジェクトは、長期計画を明示的に放棄して、親密な利害関係者の関与を支持し、価値の高い機能に明確に焦点を合わせ、使用可能なソフトウェアを早期かつ頻繁にリリースします。根本的な目標は、絶え間ない変化に直面して、シンプルかつ効果的に価値を提供することです。計画および追跡ツールがこのコンテキストで価値があるためには、これらの値と一致している必要があります。

XPlannerによるプロジェクトの計画と追跡

XPlannerは、GNU劣等一般公衆利用許諾契約書の下で利用可能なアジャイルプロジェクト管理ソフトウェアツールです(オープンソース用語では「ビールのように無料」になります)。このパッケージはWebアプリケーションとして展開され、チームメンバーとプロジェクトの利害関係者がお気に入りのWebブラウザーを使用して参加できるようにします。構成が完了すると、シンプルなWebインターフェイスを介して、アジャイルプロジェクトの配信のさまざまな側面を計画および追跡できるようになります。

重要なのは、アジャイルの観点から、プロジェクト参加者は、共通のプロジェクトリポジトリに情報を提供することにより、直接コラボレーションできることです。このコラボレーションには、ユーザーストーリーの形式でプロジェクト要件を説明する顧客が関与する可能性があり、開発者はこれを使用して、これらのストーリーを実現するために必要なタスクを詳細に追跡します。

XPlannerは、このレベルの顧客コラボレーションをサポートすることに加えて、アジャイルアプローチをサポートする他の便利な機能を提供します。これらには、プロジェクトの反復を定義するための単純なメカニズムなどの機能が含まれます。努力を見積もり、追跡する個人のための直感的なインターフェース。チームの指標を公開するためのグラフ。XPlannerは、複数の利害関係者グループと7人の開発者のチームで構成される電子商取引およびワークフローシステムの提供をサポートするために展開されたため、ここで説明します。

ダウンロードとインストール

XPlannerは、ApacheAntと適切なサーブレットエンジンを備えたJ2SE1.4開発環境内にデプロイできる純粋なJavaアプリケーションです。サーブレットエンジンとしてApacheTomcatを選択しました。ただし、サーブレット2.3(またはより新しいバージョン)と互換性のあるエンジンであれば問題ありません。 XPlannerはファイルアーカイブ(zipまたはtar.gz)として出荷され、ツールを展開して使用する前に解凍してビルドする必要があります。

プロジェクト情報のリポジトリとして使用するお気に入りのデータベースを設定する必要があるため、必須の構成手順が含まれます。 XPlannerはデータベースの相互作用にHibernateオブジェクト/リレーショナル永続性レイヤーを使用するため、プロジェクトリポジトリにHibernateがサポートするデータベースを使用するオプションがあります。バンドルされているオプションは、軽量のJavaデータベースHypersonic(現在はHSQLDBと呼ばれています)です。ただし、リポジトリデータベースとしてOracle9iを使用しました。このデータベースを構成するにはxplanner.properties、すでに定義されているOracleプロパティのコメントを解除してファイルを編集する必要がありました。またbuild.xml、Oracleシンデータベースドライバを組み込むためにファイルを変更する必要がありました。構成が完了すると、XPlannerデプロイメントを構築できます。これには、次のようにAntを実行してデプロイ可能なWebアーカイブ(WAR)を作成することが含まれます。

ant install.db.schema ant build.war 

結果のWebアーカイブファイル(xplanner.war)を選択したサーブレットエンジンにデプロイしてから、URL // your-server:your-port / xplanner /(デフォルトのユーザー "sysadmin"とパスワード "admin"を使用)を参照して結果を確認します。

エコシステムとの統合

ほとんどの開発環境には、バグ追跡システム、コラボレーションフォーラム、セキュリティシステム、標準リポジトリなどがすでに含まれています。スタンドアロンツールとしては便利ですが、XPlannerの価値は、シンプルで強力な統合機能によって強化できます。XPlannerには、たとえば、// mybugzilla / show_bug.cgi?uid = 1001へのリンクとしてbug:1001などの説明フィールドでの開発者の発言のレンダリングをサポートする機能が含まれています。これはtwiki.scheme.bug=//mybugzilla/show_bug.cgi?id=xplanner.propertiesファイルに追加するだけで実行できます。これと同じ手法を、viewcvsなどの他のWebベースのツールにも使用できます(xplanner.properties他のいくつかの例を示します)。XPlannerは、Wikiエントリへの自動リンクを可能にする高度なWikiフォーマッタ(プロジェクトでは使用されていません)も備えています。XPlanner拡張機能の詳細については、「リソース」を参照してください。

ほとんどの組織では、常に、何らかの形式のLDAP(ライトウェイトディレクトリアクセスプロトコル)互換のディレクトリサーバーが、ユーザーセキュリティアカウントの集中リポジトリを提供します。たとえば、私たちのプロジェクトを後援している組織内では、昔ながらの機能的なLDAPサーバーがこの目的を果たしました(MicrosoftのActive Directoryも主にLDAPプロトコルをサポートしています)。XPlannerのXPlannerLoginModuleLDAPとの統合が簡単であることがわかったのは新鮮でした。これにはxplanner.properties、次のように更新することが含まれます。

-> Comment out default security #xplanner.security.login.module=com.technoetic.xplanner.security.XPlannerLoginModule

-> Uncomment and edit the LDAP entries from... xplanner.security.login.module=com.technoetic.xplanner.security.jndi.JNDILoginModule

-> ...to: xplanner.security.login.option.roleSearch=(uniqueMember={0})

-> Add user search entries xplanner.security.login.option.userBase=ou=people,o=person

-> And blank out values for xplanner.security.login.option.userPattern= xplanner.security.login.option.userPassword=

迅速な再構築と展開により、XPlanner認証セキュリティは完全に統合されました。唯一の欠点は、ユーザー名をXPlannerに明示的に追加する必要があることでしたが、少なくともパスワードとグループメンバーシップの煩わしさが企業ヘルプデスクの問題になりました。

チーム、XPlannerに会う

XPlannerは、反復、ユーザーストーリー、およびタスクに従ってプロジェクトを表示します。アジャイルパラダイムで規定されているように、XPlannerが管理するプロジェクトは、連続する一連の反復に従って計画および追跡されます。各反復は、開始日、終了日、およびその時間枠内でストーリーから現実へと設計されるユーザーストーリーのコレクションで構成されます。

ユーザーストーリーは、顧客のニーズをソフトウェア開発者に伝えるためにアジャイル開発で使用される主要な概念ツールです。ユーザーストーリーが現在のイテレーションに割り当てられると(XPlannerを介したリリース計画の一部として)、開発者はユーザーと協力して(できれば対面で)各ストーリーの詳細を探します。このステップの結果は、詳細な一連の開発タスクであり、各開発者は、関連するユーザーストーリーに対してXPlannerに登録します。

eコマースワークフロープロジェクトを選択して、毎月の反復で実行します。各反復は約10のストーリーで構成され、各ストーリーに10〜15のタスクが割り当てられています。

ユーザーストーリーの収集

プロジェクトの反復の各ユーザーストーリーは、一人称で語られたユーザーエクスペリエンスの短く、結果に焦点を当てた説明である必要があります(たとえば、「色に基づいて検索します...」)。このエクスペリエンスは、実際の理想的な将来の製品を想定しているユーザーによって作成されているため、ユーザーストーリーは、ソフトウェアのポジティブな視覚化と考えることができます。各視覚化の目標は、ソフトウェア開発者がそのストーリーを実現するために必要な労力を見積もるのに十分な情報を提供することです。

XPlannerは、プロジェクトのユーザーストーリーのコレクションをカタログ化し、顧客、トラッカー、優先度、およびそれぞれに対する作業量の見積もりを記録します。私たちがよく目にする主な問題は、システムユーザーの心から高品質のユーザーストーリーを収集することです。これは確かに私たちのプロジェクトに当てはまりました。これは、ユーザーが慣れている厳格なセクション/サブセクションの要件からの大幅なパラダイムシフトであったためです。ただし、XPlannerを使用して、関係者が簡単に表示および更新できるようにストーリーを管理し、特定のイテレーションにすばやくトレードインおよびトレードアウトできる機能は確かに役立ちました。XPlannerの優れた機能の1つは、図1に示すように、ユーザーストーリーを提供し、画面上に3行5列のインデックスカードのように表示するという本物の感触です。

労力を見積もり、記録する

アジャイル開発では、開発者が独自の目標設定を行うことを規定しています。これには、ユーザーストーリーの分析と、そのストーリーを実現するために必要な技術タスクの定義が含まれます。開発者は、ストーリーの詳細が利用可能になったときに、タスクを追加したり、既存のタスクを自由に変更したりできる必要があります。 XPlannerは、開発者にタスクを定義および編集するためのフルアクセスを提供することにより、この柔軟性をサポートします。各タスクには、借金、機能、欠陥などのタイプを割り当てて、実行されている作業の種類を特徴付けることができます(たとえば、借金は、前の反復でシステムに残った技術的な「残骸」をクリーンアップするためのタスクです)。タスクは、処理(計画済みまたは計画外)、受け入れ開発者、作業の説明、およびそのタスクを征服するために必要な理想的な時間数の見積もりでも指定されます。

XPlannerを使用すると、開発者は特定のタスクに費やされた作業量を簡単に記録したり、元の作業量の見積もりを更新したりできます(元の作業は引き続き保存されます)。前述のように、作業量の見積もりは理想的な時間で指定する必要があることに注意してください。理想的な時間は、開発者がまったく中断を経験しない時間です。

開発者は、特定のタスクに対して投資する理想的な時間数も記録する必要があります。開発者に理想的な時間を正直に記録するように勧めると(時間がどこに行くのかを知る必要がないため)、XPlannerからいくつかの有用なメトリックを抽出できます(以下で説明します)。たとえば、私たちのプロジェクトでは、理想的な時間は達成するのに約1.4時間経過したことがわかりました。次に、この情報を使用して、後続の反復の詳細な見積もりを提供できます。これは、チームの約束と顧客の期待を同じ球場で維持するのに役立ちます。

次の反復のメトリクスと計画

あなたはイテレーションの途中で、上司は「私たちがどのように見えているか」を知りたがっています。この質問に対するよく使われている回答は、「私たちはそこまでの道のりの約80パーセントです」です。もちろん、その最後の20%は、常に必要以上に時間がかかるようです。最後の20%は、最後まで残していた夕食時の鈍い野菜に相当するソフトウェアです。