2人の開発者が同じプロジェクトに取り組んでいます。 1つはフロントエンドを行い、もう1つはバックエンドを行います。
すべてが順調に機能していますが、開発者がバックエンドのものを実行していて、フロントエンド開発者が取り組んでいるものよりも速くそれを乗り越えています。したがって、バックエンドの開発者は、彼が取り組む必要のある他のストーリーにスキップします。
私はこれで大丈夫だと思いますが、フロントエンドの開発者が入り、すべてのストーリーを通過できなくなったときに何が起こるかわかりません。優先順位外でタスクを実行するエンド開発者。
バックエンド開発者は、フロントエンド開発者が追いつくのを待つべきですか、それとも続行しなければなりませんか?
彼が続行している場合、スプリントを完了せずに予算についてどうしますか?
1人の労働者を遅くすることは非常に悪い選択です。
私が検討すること:
ワークロードを再調整できるかどうかを確認します。明らかにフロントエンドタスクまたはバックエンドタスクではないものもあります。そのため、前に進んでいるプログラマーに、より多くの負担をシフトさせることができます。
これと同じ観点から、フロントエンドとバックエンドの作業に魔法はありません。特に、それらは共通の目的(アプリケーション)、APIなどを共有しているためです。あまり忙しくないプログラマーがいくつかのUIタスクを取得することを検討できます。私は少なくとも彼らとそれを議論します、彼らが開いているかどうか見てください。これは非常に個人的なものであり、一部の人々は望んでいないだけで、他の人はそのチャンスを愛するでしょう
別のUIリソースを利用して支援します(たとえパートタイムであっても)。
別のタスクでバックエンドプログラマーを開始し、2つのプロジェクト間で時間を分割してもらいます。
要するに-実用的かつ効率的です。覚えておいてください、アジャイル(とそのツール/プロセス)が役立つためだけにあります。ドグマへの厳格な遵守は、実用主義と柔軟性よりも優れた結果を生み出しません。
高速開発者に「フロントエンド」タスクの実行方法を学習させます。
言語またはフレームワークの経験によって開発者を分割することは、従業員に宣伝しやすくするために人事が行うことの1つにすぎません。
実際の開発者は、新しい言語、フレームワーク、ソフトウェアツールなどを絶えず学習しています。
一部の開発者にタスクのサブセットの作業をさせないことは、プロジェクトの速度を低下させ、開発者のキャリアを妨げます
アジャイルを実践している場合、フロントエンド開発者とバックエンド開発者がいないはずです。2人の開発者がいます。彼らは自分の強みに基づいて作業を分割でき、バックエンド開発者はより複雑なバックエンドパーツを実行できます(逆も同様)。ただし、どちらもお互いにバックアップできるはずです。バックエンド開発者は、フロントエンドパーツの開発ほど効率的ではないかもしれませんが、プロジェクトから価値を得るには両方が必要です。
フォントエンドまたはバックエンドの開発者の概念はほとんど時代遅れであり、開発者は熟練するために関連するテクノロジーを学ぶことができるはずです。これは、開発者からより多くの利益を得るので、マネージャー/製品所有者としてあなたにとって有益であり、開発者が彼らをより市場性のあるものにし、キャリアの成長のためのより良い可能性を作るために有益です。
したがって、バックエンドの開発者は、彼が取り組む必要のある他のストーリーにスキップします。これは大丈夫だと思います
アジャイルの観点から(具体的には、スクラム)、それは間違いなく問題です。バックエンド開発者は、フロントエンド開発者がストーリーを仕上げるのを支援する必要があります。たとえば、テストの作成や実行、ドキュメントの作成、デモの準備などに役立ちます。
バックエンドの開発者は、フロントエンドの開発者が追いつくのを待つべきですか、それとも続けるべきですか?
待機はオプションですが、最適な解決策は、バックエンド開発者がフロントエンド開発者を可能な限り支援することです。
アジャイルの目標は、個人ではなくチームのために最適化することです。スプリントで重要なことは、必ずしも全員を忙しくすることではなく、完成した出荷可能なコードを提供することです。
これは非常に身近な状況のように聞こえます。
私のキャリアの早い段階で、小さなスタートアップのために働きました。三人組でした。バックエンド開発者(ベテランPHP開発者)、フロントエンド開発者(私、大学を卒業したばかり)、グラフィックデザイナー。
私は遅いフロントエンド開発者でした。
私たちはアジャイルを練習していませんでしたが、リソースを最大限に活用する方法を見つけました。それが質問の真の根源です。バックエンド開発者は必然的に私の前に押し寄せます。彼は、情報を画面上に正しく表示するのに十分な「フロントエンド情報」を知っている必要がありました。彼は基本的なHTMLを知っていて、出力を確認するにはそれで十分でした。後で私は入り、UIレイヤーを完全に書き換えます。 AJAX-yのものが必要な場合は、事前に設計して合意しました。 AJAX呼び出しは、サーバーとクライアント間の他のAPI呼び出しと同じように扱いました。事前に検討する必要があります。
だから、それぞれが自分のペースで動作するようにしてください。事前に設計して、バックエンドとフロントエンドの開発者が作業を始める前にデータ構造を把握してから、それぞれをゆるくします。あなたの課題は、フロントエンド開発者をスピードアップするのではなく、バックエンド開発者に追いつくことです。スピードには練習が伴います。
したがって、ストーリーはより長い期間で完成します。進行中の作業を制限したり、スプリントを長くしたり、それと一緒に暮らしたりするために、ストーリーをより小さなもの(waaaaaaaayより小さく)に分割します。人々が常に仕事をしていて、機能するソフトウェアが提供されている限り、どちらを選択するかは関係ありません。それがアジャイル開発の真の精神です。