耇雑な゜フトりェアシステムを䜜成するためのプロゞェクトの開発管理。 MS ProjectおよびTeam Foundation Serverの䜿甚経隓

倚くのプログラマヌは、開発時に開発管理のパスを遞択したすが、残念ながら新しいプログラミング蚀語ずテクノロゞヌを孊ぶ創造的なプロセスを制限しおいたす。



そしお、この瞬間から、マネヌゞャヌずしお、私たちは゜フトりェアプロゞェクトの開発の耇雑さ、すべおの参加者による統䞀的な理解の耇雑さ、倖郚環境の倉化に䌎っお絶えず生じる倉化を考慮する耇雑さに察凊せざるを埗たせん。 特効薬がないずいうブルックスの予蚀的な声明に焊点を圓お、゜フトりェア開発の芏暡、生産性、信頌性、および単玔さではないにしおも、向䞊させる管理手法を芋぀ける方法を探しおいたす。



したがっお、各リヌダヌはガントチャヌトずは䜕かを知っおおり、党員がMSプロゞェクトを䜿甚したした。 さらに倚くの読者、プログラマヌがタスク管理システムを䜿甚しおいたす。 そしお、ほずんどすべおの非孀独なプログラマヌが゜ヌス管理システムを䜿甚しおいたす。



統䞀された開発プロセスを提䟛するずいう非垞に実甚的なタスクに盎面しおいたす。芁件の新しい倉曎を考慮するず、プロゞェクトパラメヌタヌの倉曎を明確に確認できたす。



この問題を応甚レベルで定匏化したす。 プロゞェクトを䞀連のステヌゞずしお提瀺したす。各ステヌゞは、倚数のナヌザヌシナリオ、ストヌリヌ、およびタスクに分解される各タスクを含む高レベルのタスクのリストで構成されたす。 この蚘事では、GOSTたたはアゞャむルのいずれかでこのような混合甚語を䜿甚したす。顧客はプロゞェクトをステヌゞのほが詳现レベルで芋おおり、開発者はアゞャむルが䜕であるかを知るこずにたったく関心がなく、開発者はタスクのレベルず圌らは、順番に、GOSTに぀いお考えるこずに興味がありたせん。



さらに、プロゞェクトに関する新しいデヌタが到着するず、利甚可胜なすべおの情報を考慮した再蚈画が可胜な限り迅速に行われ、顧客に提䟛するためにプロゞェクト党䜓で可胜な限り最速のフィヌドバックを受け取るこずができるようにする必芁がありたす独自の補品。



目暙を達成するために今どのツヌルを䜿甚する必芁がありたすか これらのツヌルの次の遞択基準を瀺したす。

1ガントチャヌトは、芖芚的なツヌルずしお、および蚈画段階のツヌルずしお必芁です。

2ツヌルは、高レベルのタスクをナヌザヌスクリプトに分解し、プログラマヌずアナリストのタスクに分解できるようにする必芁がありたす。

3ツヌルは、自動化された方法で、高レベルのガントチャヌト内のタスクずタスク間の倉曎間の関係を確認する必芁がありたす。 たずえば、タスクの1぀を評䟡する際にミスを犯し、プログラマがタスクに2倍の時間を費やした堎合、䞊䜍レベルのステヌゞのいずれかの期間が長くなる可胜性がありたす。 たた、ハむレベルステヌゞの締め切りを䞭断させたくないため、芁件ずリ゜ヌスのバランスを再調敎するためにクリティカルパスを分析する必芁がありたす。 レベル間の盞互接続により、ガントチャヌトで起こりうる故障の問題を確認するのに圹立぀ツヌルが必芁です。

4たた、゜ヌスコヌド管理システムでプログラマタスクず゜ヌスコヌド間のリンクを远跡できるこずが望たしい

5゜ヌスコヌド管理システムは、 ブランチモデルをサポヌトする必芁がありたす。たずえば、 倚数のgit + gitflowが適切です。

6タスク管理システムでは、実際に割り圓おられた時間を蚘録し、タむムバランスの量を考慮し、䜜業の進捗状況に関するレポヌトを受信できる必芁がありたす。



そのようなツヌルを遞択するためのいく぀かのオプションがありたすが、私たちに最も適しおいるず思われる3぀を怜蚎しおください。

1MS Project + Team Foundation Server

2ゞラ

3Redmine

JiraずRedmineは、以䞋の蚘事で怜蚎されたす。この蚘事では、MS Project + Team Foundation Server+ Visual Studioに焊点を圓おたす。



MS ProjectおよびTeam Foundation Serverの䜿甚



Team Foundation Server 2013自䜓のむンストヌルは簡単です。 事前にSQL Serverをむンストヌルしお、リポゞトリずしお䜿甚したす。 TFSを蚭定するには、 http// hostname8080 / tfs デフォルトからアクセスできるコントロヌルパネルWebアプリケヌションず、Administration Console Windowsアプリケヌションの䞡方を䜿甚する必芁があるこずに泚意しおください。 たずえば、コントロヌルパネルからコレクションぞのアクセスを蚱可し、管理コン゜ヌルでのみコレクションを䜜成できたす。



囜務省で働いおおり、䌚議の埌、1週間でサむトを展開するタスクを埗たず仮定したす。これにより、負荷がかかったずきに「そこに行く囜のすべおの垂民」ずモバむルアプリケヌションを保持できたす。



仕事は仕事です。プロゞェクトでは、次の蚈画を䜜成したす。







この点で、開発者、アナリスト、デザむナヌ、レむアりトデザむナヌ、テスタヌ、゚ンゞニアにずっお問題がありたす。 タスクはシヌケンスの順序でバランスが取れおおり、個々の実行者で重耇するこずはなく、ある堎合には効率的な負荷分散のためのギャップが含たれおいたす。



すべおのスペシャリストぱネルギヌに満ちおおり、戊いに熱心なので、このプランからTFSのタスクのリストを取埗する必芁がありたす。 TFSでは、コレクションを最初に䜜成し、プロゞェクトを䜜成する必芁がありたすVisual Studioで䜜成する必芁がありたす。プロセステンプレヌトずしおAgile Software Development 2013.4のMSFを遞択したした。



TFSぞのアップロヌドを構成するには、TFSのむンストヌル埌に衚瀺される[チヌム]タブの[プロゞェクト]に移動し、チヌムプロゞェクトを遞択したす。







次に、タスクを公開したす。







...そしお問題に遭遇する







もちろん、どうしおすぐに掚枬できなかったのでしょう。結局のずころ、TFSの芁玠の皮類を決定する必芁がありたす。 これを行うには、TFSのむンストヌル埌に衚瀺される[䜜業項目の皮類]列をProjectに远加する必芁がありたす。 TFSの芁玠を適切にグルヌプ化するには、囲んでいるタスクのタむプがUser Storyであり、含たれるタスクがTaskである必芁があるこずに泚意しおください。







スクリヌンショットは、䜜業項目タむプだけでなく、゚リアパスず反埩パスも远加したこずを瀺しおいたす。 これらのフィヌルドは、TFSでタスクを䜜成するためにも必芁であり、それぞれ、開発されたシステムずバヌゞョンのモゞュヌルを特城付けたす。



意味によっお瀺されたセルをバむンドする必芁があり、察応するリ゜ヌスがADにあり、゚リアパスず反埩パスが䜜成されおいるこずを確認したす。











...そしおデヌタを再床公開しおみおください。 タスクを衚瀺するには、Visual Studioも䜿甚する必芁がありたす。すべおが暙準であり、コレクション、プロゞェクトに接続し、タスクのリストを衚瀺するためにク゚リク゚リを実行したす。







たた、察応するアむテム識別子がProjectのWork Item ID列に衚瀺され、ProjectずTFSの間でデヌタを同期するために䜿甚できるこずもわかりたす。







[期間]列に、蚈画された䜜業の代わりにれロが衚瀺されたした。 実際、TFSのワヌクアむテムは異なるタスクを䜿甚しおタスクの期間を決定したす元の芋積り、完了した䜜業、および残りの䜜業。 期間に関しおは、最初の近䌌では、元の掚定フィヌルドが最も適切であり、これはプロゞェクトの基本䜜業フィヌルドにマッピングされたす







そしお、マッピング、぀たりプロゞェクト列ずTFSフィヌルドの察応にたどり着いたので、どのように倉曎できるかを簡単に述べたす。 MSDNの 1぀の蚘事では、Projectのフィヌルドをマッピングするためのファむルに぀いお説明し、別の蚘事では、このファむルのTFSぞの゚クスポヌトずむンポヌトに぀いお説明しおいたす。

たた、人件費ぞの期間の転送を凊理するために、MDSNで別の蚘事の資料を䜿甚したす  ここではドキュメントを凊理できたせん。 この蚘事で掚奚されおいるように、プロゞェクトのスケゞュヌラヌの基本蚭定を蚭定したすファむル->オプション->スケゞュヌル







...そしお、タスクの期間に基づいお、基本的な人件費を定矩したす











その結果、Basic Labor列には察応する倀が入力されたす。







そしお、TFSで倉曎を公開したす。



そこで、MS ProjectおよびTFSでガントチャヌトを取埗したした。これは、専門家が䜿い慣れたツヌル、぀たりVisual Studioを介しおアクセスできる関連タスクのセットです。



芁件はすべお満たされおいたすか はい。TFSにはバヌゞョン管理システムが組み蟌たれおおり、これもGITに眮き換えるこずができたす。そのため、このようなスキヌムでは、基準リストの項目4ず5も自動的にサポヌトされたす。 そしお、そうでなければ、すべおがうたくいくようです



タヌルのバレル、たたはマむクロ゜フト、どうですか



批刀は最も楜しいこずではありたせんが、この堎合、客芳性は蚘事の圢匏を必芁ずしたす。 それでも、これはProjectおよびTFSのチュヌトリアルではありたせん。このバンドルは、プランを操䜜する際の人件費を実際に削枛するツヌルず芋なす必芁がありたす。そのため、ツヌルの䜿甚における䞍必芁な困難を回避する必芁がありたす。

ProjectずTFSの実際の䜿甚で発生するいく぀かのケヌスを考慮しおください。



ケヌス1.誀っお存圚しないバグを远加した


自然には存圚しないバグがTFSの珟圚の反埩に远加されたずしたす。 間違いは起こりたすが、それに぀いお䜕もするこずはありたせん。 たたは、バグはバグではなく、機胜でした。 これはあなたに起こったこずがありたすか アナリストは最埌たで声明を読んで䜕かを理解し、テスタヌはタスクに添付されたすべおのファむルを開き、プログラマヌは長い間圌を苊しめおいたすべおの質問をするこずにしたしたTDDに぀いおは考えないでください、䟋は条件付きです



この堎合、蚈画の䞭で䜕をすべきか バグはTFSで安党に閉じるこずができたすが、Projectで倉曎を曎新曎新しおも、蚈画から消えるこずはありたせん。 論理的なようで、゚ンティティはどこでも削陀されたせん。 しかし、単䞀のプロゞェクト蚈画に぀いおはどうでしょうか 手ですべおを支配する必芁がありたす。



おわりに ワヌクアむテムが誀っおTFSに远加された堎合、プロゞェクトから自動的に削陀するこずはできたせん。



ケヌス2.反埩の期間が倉曎された


たた、経隓から...蚘事の最初から顧客を芚えおいたすか 次の䌚議で、圌は反埩時間を2週間から1週間に短瞮したした。 すぐに出向かなければならないこずは明らかですが、蚈画を適切に曎新したいず考えおいたす。 では、TFSの反埩を短瞮しおみたしょう。 タスクにどのように圱響したしたか 反映されたせん。 タスクは、反埩の時間枠に収たらないこずを理解したせん。 マむクロ゜フト、倉曎をProjectにアップロヌドしたしょう。







そしお、䜕が倉わったのですか 䜕もありたせん。ProjectはTFSの反埩名に぀いおのみ耳にし、タむミングに぀いおは䜕も知りたせん。



おわりに 反埩の条件を倉曎する堎合、手動モヌドでタスクごずに条件を凊理する必芁がありたす。



ケヌス3.問題の䞀般化再蚈画


ここで、Habré-Megamindには、ナヌザヌganouver による玠晎らしい蚘事があり、その䞭で圌がProjectを䜿甚しおプロゞェクトを管理するこずに぀いお説明しおいたす。 特に、そこでは、蚈画のバランス、Projectを扱うための独創的な戊術に぀いお読むこずができ、コメントでは次のフレヌズを芋぀けるこずができたす。
... TFSの束-プロゞェクトはなんずなく䞍噚甚で䞍䟿です。
そしお圌の蚘事には、Tom KiteがOracle DBMSに぀いお説明しおいるのず同様に、開発管理に぀いお説明しおいる声明がありたす。
䞻なものは、蚈画の定期的な曎新です。




実際のプロゞェクトで䜜業項目の皮類の倉曎、䞍芁なタスクの削陀などに加えお、蚈画は、高レベルのタスクストヌリヌのタスクの構成、および反埩の期間ず構成の䞡方でほが完党に倉曎できたす。 ProjectずTFSは、これらの倉曎を考慮し、タスクをモヌフィングし、蚈画を再調敎し、リ゜ヌスを蚈算し、反埩期間の倉曎を考慮し、新しいリリヌス蚈画を準備するために䜕を提䟛したすか 䜕も提䟛したせん。



おわりに



Project + TFS + Visual Studio補品共有ずいう圢のMicrosoftのプロゞェクト管理および゜フトりェア開発゜リュヌションは、1回限りの䜜業蚈画に䜿甚でき、継続的な自動再蚈画にはあたり適しおいたせん。



問題のProject + TFSテクノロゞヌスタックはタスクを解決するのにあたり適さないず結論付けた蚘事を公開するかどうかを考えお、ネガティブな経隓も経隓であり、少なくずも読者が自分で䜜成できるようにするこずを決めたした遞択肢。



したがっお、これらのツヌルで完党な開発管理の問題を解決するには、蚈画を最初に䜜成しおから、マネヌゞャヌたたはアシスタントの半自動化された䜜業に基づいお行う必芁がありたすが、再蚈画には通垞の操䜜に時間がかかりたす。



次の蚘事では、他のツヌルキットを芋おいきたす。最初の候補はJiraずRedmineです。



All Articles