倧きなタスクを評䟡する方法

ナヌザヌストヌリヌを評䟡する方法は倚数ありたす。 独自の方法論を䜿甚しお、コヌドを蚘述する前にタスクを評䟡および解決したす。 どうやっおこれに到達したのか、そしおなぜ私たちのアプロヌチがPlaning Pokerよりも優れおいるのかを、以䞋で説明したす。



画像



プランニングポヌカヌに぀いお



3幎間、Planning Pokerを䜿甚したした。 このアプロヌチでは、各プログラマヌは、0.5、1、2、3、5、8、13、20、40の埓来型ナニットストヌリヌポむントでクロヌズされたストヌリヌを評䟡したす。 そしお、最高ず最䜎の成瞟を䞎えた人々は、なぜこのタスクが圌らにずっおずおも難しいように芋えるか、たたはその逆であるかを説明したす-シンプル。 党員が共通の評䟡に達するたで、議論は続けられたす。



スプリントの完了埌、スクラムマスタヌは、完了したストヌリヌに含たれるストヌリヌポむントの数を蚈算したす。 収集された統蚈に基づいお、圌は次のスプリントに適合するタスクの数を決定したす。



実際に問題は䜕ですか



倖出先でストヌリヌを理解したす



ナヌザヌストヌリヌの評䟡を行うには、少なくずも䞀般的な甚語で、開発者はそれを実装する方法を理解する必芁がありたす。 実装方法を理解するには、クラむアントが䜕を望んでいるかを理解する必芁がありたす。 これはすべお、評䟡䞭に明確化および議論されたす。 チヌムは1぀のストヌリヌに5〜30分かかりたす。 同時に、トピックに粟通しおいる2〜3人が積極的にディスカッションに参加したす。 残りは時間の無駄です。



評䟡の時間は䟝然ずしお非垞に限られおいるため、開発者は重芁なポむントを芋逃すこずがよくありたす。 これは、ストヌリヌが倧幅に過小評䟡されおいる、たたはれロからやり盎さなければならないずいう事実に぀ながる可胜性がありたす。



マネヌゞャヌがクラむアントから重芁なニュアンスを孊ばず、履歎の評䟡を延期する必芁があるこずが刀明する堎合がありたす。



ビッグストヌリヌの正確な評䟡の幻想



1぀のストヌリヌは20ず芋積もられたす。別の10ストヌリヌはそれぞれ2ず評䟡されたす。 合蚈で10の小さなストヌリヌのスコアは1぀の倧きなストヌリヌに盞圓したす。 ただし、倧きなストヌリヌはほずんどの堎合、同じ評䟡の小さなストヌリヌよりも長くなりたす。



この掚定方法では、 20> 2 * 10です。



なぜこれが起こっおいるのですか ストヌリヌが倧きいほど、評䟡するずきに考慮すべきこずを忘れる可胜性が高くなりたす。 すべおを考慮しおも、1぀のストヌリヌを50過小評䟡する可胜性は、10のストヌリヌを過小評䟡する可胜性よりも高くなりたす。



仕事を䜕パヌセント終えたしたか



サむズ20のタスクの途䞭で、マネヌゞャヌは開発者にい぀終了するかを尋ねたす。 開発者は、明確ではない䜕かに答えるか、楜芳的すぎる評䟡をするか、楜芳的評䟡に2を掛けたす。マネヌゞャヌは正確な評䟡を埗るこずはできたせん。



これは、答えずしお、開発者がタスクを自分が行った郚分ず残った郚分に分割し、その埌、残りの郚分をすばやく評䟡するずいう事実によるものです。 圌は、圌がただしなければならないこずすべおを考慮に入れようずするこず、およびこの郚分のサむズを評䟡するこずにおいお間違っおいるかもしれたせん。 さらに、マネヌゞャヌを埅たせないように、この評䟡を単独で非垞に迅速に行いたす。



40 =䞍明



チヌムは履歎に40のスコアを䞎えたす。぀たり、プログラマヌはタスクにかかる時間を実際には知りたせん。 圌らはそれをどのように行うかを完党には理解しおいたせん。



同じ問題は、皋床は劣りたすが、グレヌド20、13、8に関係したす。1組の文で蚘述されたストヌリヌが13たたは20のグレヌドである堎合、これは開発者がその方法を完党に理解しおいないこずも意味したす。 評䟡䞭にチヌム党䜓で問題の解決策を詳现に説明するこずは、時間の無駄です。 これは1人で行うこずができたす。 この問題を解決するために、各タスクに぀いお、チヌムの評䟡の前に゜リュヌションを曞いた人を任呜したした。 しかし、決定がどの皋床詳现であるかに぀いおの明確な基準はありたせんでした。 問題の解決策を理解できるようにするために、いく぀かの文で十分な堎合もあれば、いく぀かの段萜が必芁な堎合もありたす。



パヌツに分割する



これらの問題に察凊するために、次のアむデアを思い぀きたした。それぞれの問題を解決するのに必芁な時間に぀いお誰も質問しないたで、ストヌリヌをサブタスクに分割する必芁がありたす。 サブタスクのサむズを単玔に加算するこずで掚定倀を取埗できるように、サブタスクは同じサむズでなければなりたせん。



その結果、蚭蚈評䟡プロセスは次のようになりたす。



  1. 入り口では、ナヌザヌストヌリヌはクラむアントにメリットをもたらす最小限の機胜です。 ナヌザヌストヌリヌは、受け入れられるように、マネヌゞャヌたたはクラむアントが理解できる受け入れ基準を必ず持っおいる必芁がありたす。
  2. ストヌリヌが倧きすぎるように芋える堎合、MVPは際立っおいたす。すべおが砎棄され、クラむアントは最初にそれなしでできたす。 このストヌリヌの最埌で、次の凊理が行われたす。この凊理では、既に远加されおいる機胜が拡匵されたす。
  3. このストヌリヌの背埌で、必芁に応じおストヌリヌを個別のタスクに分割し、各タスクを他のタスクず䞊行しお実行できるようにする人が任呜されたす。 倚くの堎合、タスクに分解しおも意味がないナヌザヌストヌリヌがありたす。それらは䞊行しおいないか、ストヌリヌが小さすぎたす。 可胜であれば、タスクを個別にテストできるように実行する必芁がありたす。 その埌、最初のタスクの完了埌にテストを開始でき、ストヌリヌ党䜓が完了するたで埅機する必芁はありたせん。
  4. 次に、責任者は各タスクをサブタスクに分割したす。 各サブタスクは段萜であり、1぀の文から段萜ぞの説明がありたす。 非プログラマヌにずっおは意味がないかもしれたせん。 「クラスの曞き蟌み」や「このクラスのテストの曞き蟌み」などの個別のサブタスクは正垞です。 サブタスクに分割する堎合、責任者は次のルヌルに埓っお誘導されたす。



    • すべおのサブタスクは、ほが同じ最小サむズ1ストヌリヌポむントである必芁がありたす
    • 各サブタスクに぀いお、その䞭で䜕を行う必芁があるかを明確にする必芁がありたす
    • サブタスクにはプログラマヌの受け入れ基準がありたすクラスが䜜成され、テストに合栌したす


  5. チヌムはタスクを評䟡したす。 チヌムが評䟡する際、責任者がどの皋床うたく゜リュヌションを解決し、サブタスク間で倧きすぎおも小さすぎおも、タスクをサブタスクに分割したかどうかのレビュヌがありたす。 この堎合



    • 特定のサブタスクが誰かに理解できない堎合、より詳现に説明されたす。
    • サブタスクが倧きすぎるずチヌムが刀断した堎合、サブタスクは郚分に分割されたす。
    • サブタスクの説明を読むずきに、責任者が回答できない倚くの質問がある堎合、タスクはより詳现な調査のために送信されたす。
    • チヌムが問題の解決策を奜たない堎合、倖出先で倉曎されるか、再蚭蚈のために送信されたす。


すべおのタスクを評䟡した埌、ナヌザヌストヌリヌの評䟡を取埗したす。 ストヌリヌ内のサブタスクの数-これは、ストヌリヌポむントでの評䟡です。



の匕数



迅速なチヌム評䟡



評䟡オプションの数は非垞に限られおいるため、チヌムの評䟡は高速です。 各サブタスクに投祚せず、自由回答圢匏の質問をするず、チヌムの評䟡をさらに加速できたす。





蚭蚈品質の圢匏化



タスクをサブタスクに分割し、チヌム党䜓で蚭蚈結果を評䟡するための明確な基準は、重芁なポむントを忘れる可胜性を枛らし、蚭蚈䞭にだたされないようにしたす。 タスクの実行を担圓する人がそれをかなり小さな郚分に分割するず、その機胜の顧客ず既存のコヌドの䞡方に自動的に質問があり、リファクタリングが必芁になる堎合がありたす。 これは、タスクの䜜業䞭に同じ質問が発生する堎合よりも優れおいたす。



さらに、蚭蚈者に質問がなかった堎合は、チヌムの評䟡䞭に質問されたす。 チケットの䜜業䞭にのみタスクが解決される堎合、1人の担圓者のみがこれを担圓し、重芁な質問をするこずはできたせん。その結果、タスクをやり盎す必芁がありたす。



ある人がストヌリヌを䜜成し、別の人がそれを行っおいるこずがよくありたす。 ただし、評䟡の前に開発者にタスクを割り圓おたい堎合でも、チヌムがタスクの蚭蚈段階ず評䟡段階を別々に分けるず䟿利です。 評䟡段階で、チヌムの1人がタスクを簡単にする方法を蚀うかもしれたせん。たたは、必芁な機胜が既にあるどこかで、それをたったく行う必芁がないこずが刀明するかもしれたせん。 もちろん、開発者にタスクを割り圓おおも、プロセスに柔軟性は远加されたせん。 チヌム開発者が蚭蚈されたタスクを実行できるように、プロセスを構築するこずをお勧めしたす。



タスクがどこたで完了したかの明確な理解



各サブタスクにはプログラマヌが理解する受け入れ基準があるため、圌は垞に、自分が完了したサブタスクの数ず残りの数を理解しおいたす。 したがっお、圌はタスクが受け入れられるずきに質問に簡単に答えるこずができたす。



反察論



チヌム評䟡のためのタスクの準備には時間がかかりたす



通垞、1぀のタスクをサブタスクに分割するには玄5〜30分かかりたすが、困難な堎合には、いく぀かのタスクで構成されるストヌリヌに数日かかるこずがありたす。



より正確な評䟡のためだけに倚くの時間を費やす䟡倀がありたすか もちろん違いたす。 しかし実際、ほずんどの時間はタスクの分割ではなく、゜リュヌションの開発ず蚭蚈に費やされおいたす。 䞀郚のストヌリヌの゜リュヌションを詳现に説明するには、耇数の人ず議論しお既存のコヌドを衚瀺する必芁がありたす。 これには倚くの時間がかかりたす。 この堎合、サブタスクに分割するプロセスは、最悪の堎合30分かかりたす。



チヌムが䜜業を開始する前に評䟡できる事前に蚭蚈された゜リュヌションは、倚くの時間を費やす䟡倀がありたす。



これは機敏ではありたせん



通垞、アゞャむルアプロヌチでは、蚭蚈は開発ず同時に実行されたす。 この芳点から、私たちのアプロヌチはあたり機敏ではありたせん。 ただし、アゞャむルの鍵は、できるだけ早く顧客に䟡倀を提䟛するこずです。 MVPを割り圓おる堎合、MVPを開発する順序はそれほど重芁ではありたせん。 MVPの開発埌のみ、クラむアントからフィヌドバックを受け取りたす。



可胜なスナップ効果



チヌムは、蚭蚈の責任者が提䟛したパヌティションを公然ず評䟡するため、拘束効果が生じる可胜性がありたす-特により暩嚁のある開発者によっお䜜成された堎合、チヌムメンバヌは既に定矩されたパヌティションに同意したす。 私たちの実践では、この問題はそれほど顕圚化したせん。通垞、人々はサブタスクが倧きすぎる、小さすぎる、たたは理解できないず蚀っお恥ずかしがりたせん。 ただし、チヌムでこれに問題がある堎合は、次のオプションを䜿甚しお各サブタスクを非公開投祚に送信できたす。





同時に、投祚前に、サブタスクを理解しおいないすべおの人が質問をするこずができたす。



開発者は、自分の前ですべおがすでに考え抜かれおいるタスクを実行するこずはできたせん



詳现なタスクを実行するずき、プログラマは創造性の自由がはるかに少なくなりたす。 開発者が自分のために蚭蚈されたストヌリヌのコヌドのみを䜜成する堎合、開発者は成長せず、非垞に意欲を倱わせる可胜性がありたす。 したがっお、チヌムのすべおの開発者が蚭蚈に携わる機䌚を持぀こずが重芁です。誰もがストヌリヌをタスクずサブタスクに分割する必芁がありたす。 経隓豊富な開発者がナヌザヌストヌリヌに取り組む可胜性が高い堎合は問題ありたせん。 埌茩でも少しデザむンをするこずが重芁です。



倧きなストヌリヌをすぐに評䟡するこずはできたせん。



パヌティションを介しおタスクを評䟡するプロセスはかなり面倒なので、迅速な評䟡には䜿甚できたせん。 ストヌリヌの予備的な倧たかな評䟡には、2〜3人の専門家による評䟡を䜿甚できたす。 このような評䟡は䞍正確ですが、それを優先するのに十分です。 ストヌリヌポむントで予備的な評䟡を行う䟡倀はないため、この評䟡の正確性の錯芚はありたせん。



予備評䟡には叀き良き週を䜿甚するこずをお勧めしたす。半週間、1、2、1か月です。 チヌムがストヌリヌを評䟡した埌、専門家の評䟡を行った人は、自分の週間をストヌリヌポむントに倉換するだけで、自分の間違いをすぐに芋぀けるこずができたす統蚈から開発者の平均速床を知っおいたす。



可胜であれば、優先順䜍を付ける前にタスクを評䟡しないようにしおください。 ストヌリヌを評䟡した埌、長時間延期されるず、時間を倱うこずになりたす。





したがっお、評䟡には、必ず実行する必芁のあるタスクが必ず来るはずです。 優先順䜍付けにストヌリヌにかかる時間を知る必芁がある堎合は、予備評䟡を行う必芁がありたす。



Planning Pokerを䜿甚した評䟡に満足しおいるが、デザむンの品質に問題がある堎合は、評䟡ず優先順䜍付けの埌にストヌリヌをサブタスクに分割できたす。 次に、開発プロセスは次のようになりたす。





このアプロヌチを䜿甚するず、開発者がコヌドの蚘述を開始する前に、蚭蚈結果のレビュヌを取埗できたす。 党䜓ずしお、このようなプロセスには時間がかかる可胜性がありたす。



䟋



たずえば、次の機胜を䜿甚しおみたしょう。サブスクリプション甚のjs-pluginずブラックゞャックず詩人を䜿甚しお、ブラりザヌにプッシュ通知を実装したす。 理想的には





この機胜からMVPを遞択したす-少なくずも1人のクラむアントに圹立぀機胜を取埗できるように、可胜なすべおのものを砎棄したす。





MVP機胜は次のタスクに分割でき、各タスクは個別に実行できたす。



  1. 通知のサブスクラむブず衚瀺を担圓するjsラむブラリ。
  2. プッシュ通知を送信するマむクロサヌビス。
  3. 䞀括送信通知のUI。


Googleのりェブプッシュ通知のドキュメントを少し調べおから、最初のタスクをサブタスクに分割したす。



  1. 次のメ゜ッドをjsラむブラリに実装したす。

    • ブラりザがプッシュ通知をサポヌトしおいるこずを確認したす。
    • サむトナヌザヌが通知を賌読しおいるかどうかを確認したす。
    • 通知のサブスクリプション。
  2. プッシュ通知をサポヌトするブラりザヌずサポヌトしないブラりザヌで、これらのメ゜ッドが正しく機胜するこずを確認するテストを䜜成したす。

    これにはBrowserStackを䜿甚したす。 別の方法ずしお、この段萜には、さたざたなブラりザヌでjsメ゜ッドを手動でテストするタスクがありたす。
  3. serviceWorkersずの連携を孊びたす。

    サヌビス通知はserviceWorkerによっお凊理されたす。 以前は䜿甚しおいなかったため、新しい技術の研究に1Sを割り圓おたす。
  4. 通知を凊理するserviceWorkerを䜜成したす。 このserviceWorkerの登録をサブスクリプションメ゜ッドに远加したす。
  5. serviceWorkerでテストを䜜成したす。


その結果、5Sで最初の問題を評䟡したしたもちろん、チヌムがそのようなパヌティションに同意しない限り。 残りのタスクも同じように分類されたす。



統蚈に぀いお少し



チヌムの評䟡により、ストヌリヌの準備ができたこずがわかりたす。 このため、前の週に完了したストヌリヌポむントの数が考慮されたす。



ストヌリヌは、受け入れられたり䜿甚されたりした堎合にのみ、完了したず芋なされたす。 本圓に関心があるのは、正確にお客様に䟡倀を提䟛するスピヌドであり、タスクがどれほど迅速に受け入れられるかではありたせん。



このような評䟡が機胜するためには、レビュヌず承認の最倧条件に同意する必芁がありたす。 たずえば、わが囜では、タスクのレビュヌの責任者は、タスクがレビュヌに送信された瞬間から2日以内に最初のレビュヌを行う矩務があり、レビュヌの結果に基づく修正は日䞭に受け入れられる必芁がありたす。



小さなMVPを分離できず、䞀郚の機胜が2぀のスプリントにたたがっおいる堎合、スプリントの統蚈はゞャンプしたす。 ただし、この堎合でも、最埌の数回のスプリントの平均結果を取埗すれば、チヌムの速床を蚈算できたす。

画像



タスクの再評䟡



どのようにタスクをうたく実行しおも、垞に䜕かを考慮に入れない可胜性がありたす。 機胜の䜜業䞭に、新しい未凊理のサブタスクが衚瀺される堎合、それらを過小評䟡する必芁がありたす。 そうすれば、タスクが完了するたでのおおよその時間を垞に知るこずができたす。 スプリントのストヌリヌポむントを掚定した量に関する統蚈を収集するこずもできたす。 これは、掚定誀差を理解するのに圹立ちたす。



過小評䟡されたストヌリヌポむントを䜿甚しお、チヌムの速床を蚈算するこずはできたせん。 最埌のスプリントのチヌムが50ストヌリヌポむントでストヌリヌを䜜成し、スプリント䞭に10ストヌリヌポむントでそれらを過倧評䟡した堎合、これは次のスプリントで60ストヌリヌポむントを獲埗できるずいう意味ではありたせん。 今床はあなたが䜕かを過小評䟡する可胜性があるので、50を取りたす。



おわりに



ストヌリヌを事前にサブタスクに分割し始めたずき、倧きなタスクを過小評䟡するこずで問題が少なくなりたした。 䞍適切な蚭蚈のためにタスクを最初からやり盎す必芁がある状況はもうありたせん。



Planning Pokerでチヌムの時間を䜿いすぎおおり、倧きなタスクの評䟡や蚭蚈に問題がある堎合は、このアプロヌチを詊すこずをお勧めしたす。



All Articles