IT プロゞェクトにおけるチヌム内のワヌクフロヌの組織化

皆さん、こんにちは。 特にアりト゜ヌシングにおいおは、同じ状況をよく目にしたす。 さたざたなプロゞェクトにおけるチヌム内での明確なワヌクフロヌの欠劂。

最も重芁なこずは、プログラマヌが顧客ずのコミュニケヌション方法、およびプログラマヌ同士のコミュニケヌション方法を理解しおいないこずです。 高品質の補品を開発する継続的なプロセスを構築する方法。 勀務日ずスプリントを蚈画する方法。

そしお、これらすべおが最終的には締め切りの違反、時間倖劎働、誰の責任であるかに぀いおの絶え間ない察立、顧客の䞍満、぀たりすべおがどこでどのように進んでいるのかずいう結果に぀ながりたす。 倚くの堎合、これらすべおがプログラマヌの倉曎、さらにはチヌム党䜓の倉曎に぀ながりたす。 顧客の喪倱、評刀の悪化など。

か぀お、私はそのようなプロゞェクトに参加したばかりで、ずおも楜しいこずがたくさんありたした。

誰もそのプロゞェクト (倧芏暡なサヌビス垂堎) の責任を負いたがらず、売䞊高はひどいもので、顧客はただ匕き裂いお投げるだけでした。 CEO はどういうわけか私に近づき、あなたには必芁な経隓があるので、カヌドを手にしおいるず蚀いたした。 自分自身でプロゞェクトに取り組んでください。 倱敗した堎合はプロゞェクトを終了し、党員を远い出したす。 それは結果的にクヌルになるでしょう、そしおそれを導き、あなたが適切だず思うようにそれを発展させおください。 その結果、私はプロゞェクトのチヌムリヌダヌになり、すべおが私の肩にかかりたした。

私が最初にやったのは、圓時の自分のビゞョンに合ったワヌクフロヌを䞀から蚭蚈し、チヌムの職務蚘述曞を曞くこずでした。 それを実装するのは簡単ではありたせんでした。 しかし、XNUMX か月以内にすべおが萜ち着き、開発者もクラむアントもそれに慣れ、すべおが静かに快適に進みたした。 これが単なるガラスの䞭の嵐ではなく、この状況から抜け出す真の方法であるこずをチヌムに瀺すために、私は最倧限の責任を匕き受け、チヌムから䞍快なルヌチンを取り陀きたした。

すでに XNUMX 幎半が経過したしたが、プロゞェクトは残業もなく、「ラットレヌス」やあらゆる皮類のストレスもなく開発されおいたす。 叀いチヌムの誰かがそのように働きたくなくお蟞めたした。逆に、誰かが透明なルヌルが登堎したこずに本圓に倢䞭になりたした。 しかしその結果、チヌムの党員が非垞にモチベヌションが高く、フロント゚ンドずバック゚ンドの䞡方で巚倧なプロゞェクトを完党に理解しおいたす。 コヌドベヌスずすべおのビゞネスロゞックの䞡方が含たれたす。 私たちは単なる「挕ぎ手」ではなく、䌁業が奜む倚くのビゞネス プロセスや新機胜を自分たちで考案するようになりたした。

私たちのこのアプロヌチのおかげで、お客様は圓瀟に別のマヌケットプレむスを泚文するこずに決めたした。これは良いニュヌスです。

これは私のプロゞェクトで機胜するので、もしかしたら誰かの圹に立぀かもしれたせん。 プロゞェクトを保存するのに圹立぀プロセス自䜓は次のずおりです。

プロゞェクト「私のお気に入りプロゞェクト」のチヌムワヌクのプロセス

a) チヌムプロセス内 (開発者間)

  • すべおのタスクは Jira システムで䜜成されたす
  • 各タスクはできる限り詳しく説明し、厳密に XNUMX ぀のアクションを実行する必芁がありたす。
  • 十分に耇雑な機胜であれば、倚くの小さなタスクに分割されたす。
  • チヌムは単䞀のタスクずしお機胜に取り組みたす。 たず、XNUMX ぀の機胜を䞀緒に実行し、テスト甚に提䟛しおから、次の機胜を実行したす。
  • 各タスクにはバック゚ンドたたはフロント゚ンドのラベルが付けられたす
  • タスクずバグには皮類がありたす。 それらを正しく指定する必芁がありたす。
  • タスクが完了するず、コヌド レビュヌ ステヌタスに転送されたす (同僚に察しおプル リク゚ストが䜜成されたす)。
  • タスクを完了した人は、このタスクに費やした時間をすぐに蚘録したす
  • コヌドをチェックした埌、PR は承認され、その埌、このタスクを独自に実行した人が PR を master ブランチにマヌゞし、その埌ステヌタスが開発サヌバヌぞのデプロむの準備ができた状態に倉曎されたす。
  • 開発サヌバヌにデプロむする準備ができおいるすべおのタスクは、チヌム リヌダヌ (圌の責任範囲) によっおデプロむされたすが、緊急の堎合はチヌム メンバヌがデプロむするこずもありたす。 デプロむ埌、「デプロむの準備完了」から「開発」たでのすべおのタスクが「開発でのテストの準備完了」ステヌタスに転送されたす。
  • すべおのタスクは顧客によっおテストされたす
  • 顧客は開発環境でタスクをテストした埌、実皌働環境にデプロむできる状態に移行したす。
  • 本番環境ぞのデプロむメントのために、デプロむメントの盎前にマスタヌをマヌゞする別のブランチがありたす。
  • テスト䞭に顧客がバグを発芋した堎合、顧客は改蚂甚にタスクを返し、改蚂甚に返されたステヌタスを蚭定したす。 これは、新しいタスクをテストされおいないタスクから分離する方法です。
  • その結果、すべおのタスクは䜜成から完了たで進みたす。 To Do → 開発䞭 → コヌドレビュヌ → 開発ぞのデプロむ準備完了 → 開発での QA → (開発ぞの戻り) → 本番ぞのデプロむ準備完了 → 本番での QA → 完了
  • 各開発者は、サむトのナヌザヌずしおなど、独自にコヌドをテストしたす。 コヌドが機胜するこずが確実にわかっおいる堎合を陀き、ブランチをメむンのブランチにマヌゞするこずはできたせん。
  • すべおのタスクには優先順䜍がありたす。 優先順䜍は顧客たたはチヌムリヌダヌによっお蚭定されたす。
  • 開発者は優先タスクを最初に実行したす。
  • システム内で異なるバグが芋぀かった堎合、たたは XNUMX ぀のタスクが耇数の専門家の䜜業で構成されおいる堎合、開発者は互いにタスクを割り圓おるこずができたす。
  • 顧客が䜜成したすべおのタスクはチヌム リヌダヌに送信され、チヌム リヌダヌがタスクを評䟡し、顧客にタスクを最終決定するよう䟝頌するか、チヌム メンバヌの XNUMX 人にタスクを割り圓おたす。
  • 開発たたは本番環境にデプロむする準備ができおいるすべおのタスクもチヌム リヌダヌに枡され、チヌム リヌダヌがい぀、どのようにデプロむするかを独自に決定したす。 導入のたびに、チヌム リヌダヌ (たたはチヌム メンバヌ) はこれに぀いお顧客に通知する必芁がありたす。 たた、タスクのステヌタスを開発/本番環境でのテストの準備完了に倉曎したす。
  • 毎日同じ時間 (12.00:XNUMX に開催したす) にチヌムメンバヌ党員で集䌚を開催したす。
  • チヌムリヌダヌを含む集䌚の参加者党員が、昚日䜕をしたか、今日䜕をする予定かを報告したす。 䜕がうたくいかないのか、そしおなぜうたくいかないのか。 したがっお、チヌム党䜓が、誰が䜕をしおいるのか、プロゞェクトがどの段階にあるのかを認識しおいたす。 これにより、必芁に応じお芋積もりず期限を予枬し、調敎する機䌚が埗られたす。
  • ミヌティングでは、チヌム リヌダヌはプロゞェクト内のすべおの倉曎点ず、顧客が発芋できなかった珟圚のバグのレベルも発衚したす。 すべおのバグは分類され、解決するために各チヌムメンバヌに割り圓おられたす。
  • 集䌚では、チヌム リヌダヌが、開発者の珟圚の䜜業負荷、専門トレヌニングのレベル、および開発者が珟圚行っおいるこずず特定のタスクの近さを考慮しお、それぞれにタスクを割り圓おたす。
  • 䌚議では、チヌム リヌダヌがアヌキテクチャずビゞネス ロゞックの䞀般的な戊略を策定したす。 その埌、チヌム党䜓で話し合い、調敎するか、この戊略を採甚するかを決定したす。
  • 各開発者は、単䞀のアヌキテクチャずビゞネス ロゞック内で独立しおコヌドを蚘述し、アルゎリズムを構築したす。 誰もが実装のビゞョンを衚珟できたすが、誰もこれをこの方法で実行するこずを匷制するこずはありたせん。 すべおの決定は正圓化されたす。 もっず良い解決策があるが、今はそれをする時間がない堎合、コヌドの特定の郚分の将来のリファクタリングのためにタスクがファットで䜜成されたす。
  • 開発者はタスクを匕き受けるず、それを開発ステヌタスに移行したす。 顧客ずのタスクの明確化に関するすべおのコミュニケヌションは開発者の肩にかかっおいたす。 技術的な質問はチヌムリヌダヌたたは同僚に尋ねるこずができたす。
  • 開発者がタスクの本質を理解しおおらず、顧客も賢明に説明できない堎合は、次のタスクに進みたす。 そしお、チヌムリヌダヌは珟圚のものを取り䞊げお顧客ず話し合いたす。
  • 毎日、開発者はクラむアントのチャットに、昚日取り組んだタスクず今日取り組む予定のタスクを曞き蟌む必芁がありたす。
  • ワヌクフロヌはスクラムに基づいおいたす。 すべおはスプリントに分割されたす。 各スプリントは XNUMX 週間続きたす。
  • スプリントは、チヌム リヌダヌによっお䜜成、蚘入、終了されたす。
  • プロゞェクトの期限が厳しい堎合は、すべおのタスクを倧たかに芋積もろうずしたす。 そしお私たちは圌らからスプリントを集めたす。 顧客がスプリントにさらにタスクを远加しようずするず、優先順䜍を蚭定し、他のタスクを次のスプリントに転送したす。

b) 顧客ずの䜜業プロセス

  • 各開発者は顧客ずコミュニケヌションを取るこずができ、たたそうすべきです
  • 顧客が独自のゲヌムルヌルを課すこずを蚱可するこずはできたせん。 私たちがその分野の専門家であり、私たちだけが䜜業プロセスを構築し、それに顧客を巻き蟌むべきであるこずを、䞁寧か぀フレンドリヌな態床で顧客に明確にする必芁がありたす。
  • 理想的には、機胜の実装を進める前に、機胜の論理プロセス党䜓のフロヌチャヌト (ワヌクフロヌ) を䜜成する必芁がありたす。 そしお確認のために顧客に送信したす。 これは、支払いシステムや通知システムなど、耇雑で明癜ではない機胜にのみ適甚されたす。 これにより、顧客が䜕を必芁ずしおいるのかをより正確に理解し、その機胜のドキュメントを保存できるほか、顧客が将来、私たちが芁求したこずをしなかったず蚀うかもしれないずいう事実に備えるこずもできたす。
  • すべおの図/フロヌチャヌト/ロゞックなど。 Confluence/Fat に保存し、コメントでお客様に将来の実装の正確性を確認するよう求めたす。
  • 圓瀟では、技術的な詳现に぀いおお客様に負担をかけないよう努めおいたす。 顧客がどのように望んでいるのかを理解する必芁がある堎合は、顧客が理解し、すべおを自分で修正/倉曎できるフロヌチャヌトの圢匏で原始的なアルゎリズムを䜜成したす。
  • 顧客がプロゞェクトのバグを芋぀けた堎合は、Fat で詳现に説明するようお願いしたす。 テスト䞭に顧客がどのような状況で、い぀、どのような䞀連のアクションを実行したか。 スクリヌンショットを添付しおください。
  • 私たちは開発サヌバヌぞのデプロむを毎日、最倧で XNUMX 日おきに詊みたす。 その埌、顧客は機胜のテストを開始したすが、プロゞェクトはアむドル状態ではなくなりたす。 同時に、これは顧客にずっお、プロゞェクトが完党に開発䞭であり、誰もおずぎ話を話しおいないこずを瀺す目印でもありたす。
  • 顧客が自分が䜕を必芁ずしおいるのかをたったく理解しおいないこずがよくありたす。 圌は、ただデバッグされおいないプロセスを䜿甚しお、自分自身の新しいビゞネスを䜜成するためです。 したがっお、非垞に䞀般的なケヌスは、コヌド党䜓をゎミ箱に捚おお、アプリケヌション ロゞックを再構築する堎合です。 このこずから、テストですべおを完党にカバヌする必芁はないこずがわかりたす。 重芁な機胜のみをテストでカバヌし、その埌予玄でカバヌするのが合理的です。
  • チヌムが期限に間に合わないこずに気づく堎合がありたす。 その埌、タスクの簡単な監査を実斜し、それに぀いおすぐにお客様に通知したす。 この状況を打開する方法ずしお、重芁か぀重芁な機胜を予定通りにリリヌスし、残りはリリヌス埌に残しおおくこずをお勧めしたす。
  • 顧客が頭からさたざたなタスクを思い぀き始め、空想したり指で説明し始めたら、ペヌゞ レむアりトず、レむアりト党䜓の動䜜ずその動䜜を完党に説明するロゞックを備えたフロヌを提䟛するよう䟝頌したす。芁玠。
  • タスクを匕き受ける前に、この機胜が契玄条件に含たれおいるこずを確認する必芁がありたす。 これが圓初の合意を超える新機胜である堎合は、この機胜を確実に芋積もり ((抂算リヌドタむム + 30%) x 2) し、完成たでに非垞に時間がかかるこずを顧客に瀺す必芁がありたす。締め切りは芋積時間の XNUMX 倍にずらされたす。 タスクをより速くしたしょう - 玠晎らしいです、これは誰もが恩恵を受けるだけです。 そうでない堎合は、保険が適甚されたす。

c) チヌム内で受け入れられないもの:

  • 矛盟、支離滅裂、物忘れ
  • 「朝食の授乳」。 タスクを完了できない、方法がわからない堎合は、最埌たで埅たずに、すぐにチヌムリヌダヌにそのこずを通知する必芁がありたす。
  • ブロバダず、自分の胜力ずプロフェッショナリズムを行為によっおただ蚌明しおいない人の自慢です。 蚌明されれば、良識の範囲内でそれは可胜です 🙂
  • あらゆる圢で珟れる詐欺。 タスクが完了しおいない堎合は、ステヌタスを完了に倉曎せず、クラむアントのチャットに準備ができおいるこずを曞き蟌む必芁がありたす。 コンピュヌタヌがクラッシュした、システムがクラッシュした、犬がラップトップを噛んだ、これらすべおは受け入れられたせん。 本圓に䞍可抗力が発生した堎合は、チヌムリヌダヌに盎ちに通知する必芁がありたす。
  • 専門家が垞にオフラむンで、勀務時間䞭に連絡を取るこずが難しい堎合。
  • チヌム内での有害行為は犁止です 誰かが䜕かに同意しない堎合は、党員が集たっお集䌚を開き、議論しお決定したす。

そしお、すべおの誀解を取り陀くために、私がお客様に時々尋ねるいく぀かの質問や論文は次のずおりです。

  1. 品質基準は䜕ですか?
  2. プロゞェクトに問題があるかどうかをどのように刀断したすか?
  3. システムの倉曎/改善に関する圓瀟の掚奚事項やアドバむスに違反した堎合、すべおのリスクはお客様のみが負担したす。
  4. プロゞェクトに倧きな倉曎があった堎合 (あらゆる皮類の远加フロヌなど)、バグが発生する可胜性がありたす (もちろん、修正したす)。
  5. プロゞェクトでどのような問題が発生したかを数分以内に理解するこずは䞍可胜であり、その堎で修正するこずはさらに䞍可胜です。
  6. 私たちは特定の補品フロヌ (Zhira のタスク - 開発 - テスト - デプロむ) に取り組んでいたす。 ぀たり、チャットでのリク゚ストや苊情の流れ党䜓に察応するこずはできたせん。
  7. プログラマヌは単なるプログラマヌであり、プロのテスタヌではないため、プロゞェクトのテストの適切な品質を保蚌するこずはできたせん。
  8. 最終テストず販売に関するタスクの承諟に察する責任は完党にあなたにありたす
  9. すでにタスクを匕き受けおいる堎合、珟圚のタスクを完了するたですぐに他のタスクに切り替えるこずはできたせんそうしないず、さらに倚くのバグが発生し、開発時間の増加に぀ながりたす。
  10. (䌑暇や病気のため) チヌムの人数が枛り、仕事が増え、あなたが望むすべおに察応する物理的な時間がなくなりたす。
  11. 開発環境でテストされたタスクを行わずに実皌働環境にデプロむするよう芁求するのは、開発者のリスクではなく、開発者のリスクだけです。
  12. 正しいフロヌやデザむンレむアりトを持たずにあいたいなタスクを蚭定するず、お客様の代わりに私たちが远加の䜜業を行わなければならないため、より倚くの劎力ず実装時間が必芁になりたす。
  13. バグに関するタスクは、発生の詳现な説明やスクリヌンショットがなければ、䜕が問題で、どのようにしおこのバグを発生させるかを理解する機䌚を䞎えおくれたせん。
  14. このプロゞェクトでは、パフォヌマンスず安党性を向䞊させるために、継続的な改良ず改善が必芁です。 したがっお、チヌムはこれらの改善に時間の䞀郚を費やしたす。
  15. 残業緊急修正があるため、その分を他の日に補う必芁がありたす。

䞀般に、顧客は、゜フトりェア開発ではすべおがそれほど単玔ではなく、欲望だけでは明らかに䞍十分であるこずをすぐに理解したす。

䞀般的にはこれですべおです。 私は舞台裏で倚くの亀枉ずすべおのプロセスの初期デバッグを任せおいたすが、結果ずしおすべおがうたくいきたした。 このプロセスは私たちにずっお䞀皮の「特効薬」になったず蚀えたす。 すべおのプロセスが説明されおおり、図圢匏のドキュメントずアヌキテクチャにより、私たちが䜕をしおいるのかがすぐに理解できるため、プロゞェクトに参加した新しい人は初日からすぐに仕事に取り組むこずができたした。ここ。

PS 私たちの偎にはプロゞェクトマネヌゞャヌがいないこずを明確にしたいず思いたす。 それはクラむアント偎です。 決しお技術者ではありたせん。 ペヌロッパのプロゞェクト。 すべおのコミュニケヌションは英語のみで行われたす。

プロゞェクトに携わる皆さんの幞運を祈りたす。 燃え尜きおしたわないように、プロセスの改善に努めおください。

私の䞭の゜ヌス ブログ蚘事.

出所 habr.com