従来のウォーターフォールのライフサイクルには、設計と計画のための特定のフェーズが含まれています。スクラムには、大きな事前設計はありません。スプリント計画会議中およびスプリント中に機能をストーリーに分解するときに実行する少量の設計。
スプリントの計画は数時間でボックス化されているため、チームがテクノロジの選択を決定する十分な時間はありません。どの責任が異なるコンポーネントのデプロイメントやリリースの考慮事項に属しているかなどです。
設計作業はどこに属していますか?スプリント計画の前に、ストーリーまたはタスクに詳細を追加して実施する必要がありますか?それとも、スプリント計画後に追加の設計会議が必要ですか?
デザインは、ストーリーごとに十分な追加のストーリーポイントとして、または個別のストーリーとして計画する必要があります。また、チームには設計を所有および監視する設計者が必要です。
問題は、デザインが「ビジネス価値なし」を表し、純粋なユーザーストーリーが通常、「チーム」にダンプされることです。これは、保守可能なソフトウェアではなく、実行可能なソフトウェアに焦点を当てた開発者の塊です。したがって、スクラムの導入により、意識的なデザインはしばしば存在しなくなります。より大きく、長時間実行される製品の場合、これはもちろん発生するのを待っています。しかし、それは静かなものになるでしょう。開発時間と戻ってくるバグの数は徐々に増えるだけです。そして、誰もがこれを心配しているとは見なさず、私たちはより多くのテストを行い、それについて気分が良いだけです。近年、ソフトウェアプロジェクトでテストが大きなものになっているのは偶然ではありません。
幸いなことに、今日、私たちはこれに「技術的負債」という奇抜な名前を付けています。これは、開発チーム以外の誰にとっても問題のように聞こえないため、すばらしい名前です。それは彼らの責任でもあることを意味し、技術者はビジネスではなくそれを支払うべきです。それが彼らの問題です。
そしてすべての公平に、それは本当にです。開発チームは、設計を確実に行う必要があります。彼らは自己組織的であり、必要なことを行うためのリソースを確保するのに十分強力でなければなりません。彼らは自分たちで作った計画にコミットします。機能の開発を進めるというプレッシャーはありますが、物事をじっくり考え、その責任と責任を持つ人々を持つことは彼らの責任です。スクラムはこれらの基本を維持することを難しくします。
設計作業はどこに属していますか?
最初のスプリントの前、または最初のスプリントのいずれかで、その後のすべてのスプリントでも可能です。一部のチームは、最初のスプリントの前に、これらの決定のいくつかが行われる期間があります。最初のスプリントの前に決定が下されない場合、最初のスプリントで少なくとも設計とアーキテクチャの作業の一部を行う必要があります。プロジェクトがスプリントを進むにつれて、追加の設計およびアーキテクチャタスクの機会が出てきます。範囲は、構築する製品の範囲と複雑さによって異なります。
スプリント計画セッション中に、「これをどのように構築するかについて十分な情報がないので、最初のストーリー(またはタスク)はアーキテクチャを考案する必要がある」のようなことを言うことは完全に有効だと思います。
スクラムの要点は、製品の構築方法を決定する権限を与えられたチームを持つことです。製品を構築するプロセスの一部にアーキテクチャの決定が含まれる場合、それはどのスプリントにとっても完全に素晴らしいアクティビティです。
ロバート・C・マーティンはあなたがyoutubeで見つけることができるという話をしました:
そこで彼はこの一般的な問題に対処し、スクラムのアーキテクチャとデザインについては言及されていないため、プロジェクト内でどのようなアーキテクチャと設計が意味するかを特定するのはチームの責任です。
私の個人的な意見では、アーキテクチャと設計を担当するチームには1つのインスタンスが必要です。契約は次のとおりです。建築家は、これらの対象に対処する方法を決定します。反対側では、彼は自分の決定から出てきた結果として生じる質問から逃れることができないはずです。
私の現在のプロジェクトでは、現在いくつかの問題に直面しています。これらの問題は主に、アーキテクチャを有用な方法で拡張するのではなく、完全に無視する実装のほかに、概念の多様化とコードベースに分解できます。
重要なのは、チーム内の所定の要件に最適なアーキテクチャについての理解が得られない場合、チームが良い仕事をすることを期待することはできません。これは、コード品質の問題にも当てはまります。この問題を民主的に解決する方法は、理解が少しだけ異なる場合の方法かもしれません。しかし、解決策につながらない本質的な議論がある場合は、誰かを決定する立場に置くことをお勧めします。
チームがテクノロジの選択を決定するのに十分な時間がありません。どの責任がさまざまなコンポーネントのデプロイメントやリリースの考慮事項に属しているかなどです。
これのほとんどは「スプリント0」で扱われるか、チームに固有のものです。プロジェクトの開始前に、ビルドサーバーと環境が整っていることを期待しています。
C#Web開発者のチームであるかのように、MSSQLに支えられたasp.net Webサイトを作成することを知っています。
スクラムは、結果を迅速に得ることに重点を置いています。したがって、どのJavaScriptフレームワークまたはデータベースが最適であるかは重要ではありません。それらについて考える時間を無駄にしないでください。
すべてを実装するのが最も早いものを選択してください。シングル。時間。
If製品が成功した場合、数年後にはたぶん技術の1つを安価なバージョン。
チームが実際にスプリントに進む前に実行する必要があるアクティビティがあります。チームが編成され、ツールが調達され、予算が確保され、見積もりが行われ、ビジョン案が作成され、アーキテクチャが決定されます。
アイデアは、十分に準備し、実際に仮説をテストする前に数週間から1か月間は移動しないことです。
したがって、時間をかけて設定し、最初の質問をしてから、スプリントで不明な点を包括的に解決します。
準備期間をSprint ZeroやHardening Sprintなどと呼ばないようにすることをお勧めします。
会議を計画する前の設計作業はnotが望ましいです。ストーリーが分解されていないため、チームは十分な情報を得られないからです。計画会議は、機能のbreakingおよびestimationに使用できます。後でチームは、分析とストーリーの再推定のための時間を与えられ、その後、設計作業のためにミーティングがスケジュールされるべきです。