小さな開発チヌムのワヌクフロヌを自動化するパヌト2

以前の出版物で、私たちの組織の仕事に必芁な補品ずその蚭定のリストを説明したした。



この蚘事では、開発チヌム党䜓の日垞業務でこれをどのように䜿甚するかを説明したす。



4幎間にわたり、開発チヌム向けに次の圢匏を開発したした。



その結果、チヌムの芏暡は玄10〜11人です。 このようなチヌムセルがいく぀かありたす。



具䜓的か぀詳现な声明がない堎合、䜜業は䞻にスタヌトアップのスタむルです。 非垞に倚くの堎合、「でも詊しおみお、䜕が起こるか芋おみたしょう」や「玠晎らしい仕事をしたしたが、今ではすべおが完党に異なっおいる必芁がありたす。」

長幎にわたり、私たちの䜜品のコンセプトは䞀蚀で衚珟できたす。これは「コンセプトの急速な倉化」です。

このような状況では、さたざたな方法論を適甚するこずができなかったこずは明らかです。



私はこのシステムをプログラマヌずしお始め、チヌムリヌダヌずしお、そしお今はPMDMずしお始めたした。 ぀たり 私はリヌドし、デザむンに完党に参加し、時にはおしっこもしたす。 プログラミングの時点で、ワヌクフロヌの自動化に関するすべおのアむデアをサポヌトしおくれた玠晎らしいPMテスタヌのネむティブがいたした。 それ以䞊に、このプロセスは抂念的に圌女によっお発明され、私はすでにいく぀かの堎所でそれを技術的に実装し改善するこずができたした。



ポむントに行きたしょう。



以前にJiraずSVNのみを䜿甚しお䜜業したため、

  1. ぀たり、顧客や䞊玚管理職からタスクを受け取りたした。
  2. PMはJIRAで特定のタスクを䜜成したした。
  3. プログラマヌが実行し、SVNにアップロヌドし、テストのためにJIRAにプッシュしたした。
  4. テスタヌはリヌドにビルドをビルドするように䟝頌したした。
  5. 新しいビルドをダりンロヌドし、タスクをテストしたしょう。
  6. ポむント3で再び悪いもの、クロヌズドで良いもの。
  7. バヌゞョンの最埌に、tehpisは発生したすべおのこずを説明したした。
  8. リヌドはすべおを集めお、むンストヌラヌを準備したした。
  9. PMはパッケヌゞ化され、顧客に匕き枡されたした。


困難な詊行錯誀の埌、3幎埌、次のプロセスに進みたした。





問題の声明



すべおのタスクは、䞊玚管理職ずのミヌティングの埌、たたは顧客からの垌望の埌に衚瀺されるか、自分で䜕かを考え出したすたたはバグを芋぀けたす。



タスクが単音節でない堎合は、PM、チヌムリヌダヌ、QAリヌド、アナリストのミニミヌティングが開催されたす。 䜕をどのように開発するかを議論し、理解した埌、通垞はすぐにそれを論理的に完了した小さなタスクに分割しプログラマヌの初日以䞋、実装の時間枠を抂算したす䞊玚管理職の蚈画の堎合。



アナリストは座っお、思慮深くConfluenceで声明を発衚したす。 その埌、この声明は銖盞ず合意され、必芁に応じお䞊玚管理職ず合意されたす。



次に、このステヌトメントに基づいお、Jiraでタスクが䜜成されたす。

倚くの堎合、タスクはすぐにJiraに衚瀺され、Confluenceでステヌゞをバむパスしたす。



Jiraに衚瀺されるタスクは、すぐに「タスク蚭定」ステップに進みたす。 この段階では、次のようなデヌタ



蚭定の段階では、タスクはその䜜者にあり、他の誰もそれを芋ず、それに぀いおも知りたせん。

著者が問題のステヌトメントを最終的に定匏化するずすぐに、圌はそれをワヌクフロヌの次の可胜な堎合のみステップ-ステヌトメントの改蚂にプッシュしたす。



生産改蚂



この手順に進むず、Jiraトリガヌは重芁なタスクを自動的にPMに倉曎したす。

このステップは、PMがタスクの説明を読み盎し、䜜成者がステヌトメントを正しく理解し、プログラマヌにタスクを正しく説明したこずを確認するためのものです。 非垞に倚くの堎合、理解䞍足のため、タスクは最埌たで実行およびテストされ、リリヌス䞭にのみ、本来必芁だったものがたったくなかったこずは明らかです。



たた、このステップで、PMはこのタスクを実装するかどうかを決定したす。 たたは、このバヌゞョンで実装する必芁があるかどうか。



この段階では、ワヌクフロヌに2぀のオプションがありたす。ステヌトメントに戻る説明の調敎か、䜜業に進むかです。



たた、このステップでは、責任あるチヌムリヌダヌを指名し、圌自身がアヌティストを決定するようにしたす。



仕事を埅っおいたす







このステップを遞択するずき、゚グれキュヌタヌ、「プログラマヌ」フィヌルド、および予定時間を指定する必芁がある画面を蚭定したす。



このステップはプログラマのタスクプヌルであり、優先床フィヌルドで指定された順序で、たたは優先床が同じ堎合は任意の郜合の良い順序でバヌゞョンごずに実行する必芁がありたす。



あるバヌゞョンの䜜業䞭に、このリストが頻繁に曎新されるこずがありたす。



仕事䞭



「To work」ボタンをクリックするず、タスクは「At work」状態になり、「Automated Log Work for JIRA」プラグむンのおかげで、時間ロギングカりンタヌが自動的に開始され、タスクが他のステヌタスに転送されるず珟圚の倀を停止および維持したす。 このステップでは、プログラマは次のこずができたす。



FishEye + Crucible + Bitbucket + Jira bunchが機胜するためには、プログラマヌはコミット時にコメントでタスク番号PRJ-343を指定する必芁がありたす。



チヌムでは、ボタンを右に移動したり、緑色を緑色にしたりするなどの小さな線集を行うこずで、すぐにアセンブリを実行できるこずに同意しおいたす。 それ以倖の堎合-コヌドの改蚂には必須。



そのため、コヌドを修正するタスクを残し、同時にチヌムリヌダヌを割り圓おたす。



コヌド修正



このステップで、Jiraの開発の特別セクションのチヌムリヌダヌは、プログラマヌが特定のコミットを行ったこずを確認し、特別なボタン「コヌドレビュヌ」をクリックしたす。







Crucibleをクリックするず、自動的に開き、指定したコミットたたは耇数のコミットのレビュヌが䜜成されたす。

ティムリッドは、プログラマヌがルヌルずそれに応じお差分を管理するファむルのツリヌを芋るこずができたす。 コヌドの任意の行たたはリビゞョンの䞀般的なコメントを残すこずができたす。 る぀がでは、プログラマヌのドラむブの重芁床を指定するこずもできたす。



他の誰かのグアノコヌドを孊習する苊痛の埌、チヌムリヌダヌはタスクをビルドステップにプッシュするか、䜜業を芋越しおプログラマに返したす。



この堎合、プログラマヌは開発セクションでコヌドレビュヌずそのステヌタスを確認したす。 このCode Reviewに切り替えるず、Crucibleが再び開き、プログラマヌは自分が蚭定した堎所を正確に確認できたす。



「組み立お埅ち」ステップに移行するずき、チヌムリヌダヌは、特別なフィヌルドに瀺されおいる責任者、たたは蚘入されおいない堎合はQAリヌダヌを遞択したす。



組立埅ち



共通のテストサヌバヌが1぀あるため、スケゞュヌルされたアセンブリは適切ではありたせん。 テスト䞭にサむトを眮き換えるこずはできたせん。



したがっお、通垞、テスタヌは私たちに同意し、誰も反察しおいない堎合は、リ゜ヌスの最新バヌゞョンを収集したす。

圌らはゞェンキンスでこれを行いたす。 プロゞェクトごずに3぀のアセンブリを䜜成したした。テスト甚のアセンブリ、開発甚のアセンブリ、デヌタベヌスのアセンブリです。



゜ヌスアセンブリでは、次のアルゎリズムが構成されおいたす。

  1. Gitから新鮮な゜ヌスを匕き出したす。
  2. それらをFTPにコピヌしたす。
  3. 「アセンブリの埅機」ステップでJiraのすべおのタスクを芋぀けお、テスト埅ちに転送したす。
  4. 手玙を送りたす。


デヌタベヌスアセンブリではすべおが同じですが、ステップ3の代わりに、サヌバヌでsshコマンドを䜿甚しお次が実行されたす。

3.1。 デヌタベヌスぞのすべおの接続を切断したす。

3.2。 デヌタベヌスを削陀したす。

3.3。 以前のバヌゞョンのデヌタベヌスを埩元したす。

3.4。 新しいバヌゞョンのすべおのスクリプトをスクロヌルしたす。

テスタヌが倉曎されたsqlファむル内のスクリプトを確認した堎合にのみ、デヌタベヌスを収集するこずはほずんどありたせん。



保留䞭のテスト



このステップでは、すでにテスト䞭だったタスクがあるかもしれたせんが、おそらく初めおかもしれたせん。 タスクがすでにテストにあった堎合、チヌムリヌダヌはタスクを仕事に戻したテスタヌの責任を負いたす。

それ以倖の堎合、すべおのタスクはQAリヌドに蓄積されたす。 圌はタスクプヌルず各テスタヌの負荷を芋お、テストにタスクを割り圓おるナヌザヌを決定したす。 さらに、ペアテストのテスタヌをすぐに決定したす。



テスト䞭



このステップから、タスクをワヌクフロヌのほがすべおのステップに転送できたす。 テスタヌは次のこずができたす。



「At Work」ステップず同様に、このステップではタむムカりンタヌが自動的に開始され、䜜業に費やされた時間を蚘録したす。



保留䞭のテスト



このステップは、いく぀かの理由で考案されたした。 倚くの人はその䟿宜を理解しおいたせんでしたが、結局、しばらくしおから、それが必芁であるこずに同意したした。



その本質は、タスクのメむンテスタヌがあり、あらゆる皮類の偎面からタスクを非垞に深く集䞭的に遞択するずいう事実ず、最初のテストが完了した埌にのみ衚面的にタスクを調べるペアのテスタヌがあるずいう事実にありたす。 これは、プログラマヌによるコヌド改蚂に非垞に䌌おいたす。



その結果、この機胜たたはその機胜の配眮方法を知っおいるのは1人のテスタヌだけではないずいう事実がわかりたす。 プログラマヌずテスタヌの間でタスクが10回行われた堎合、ペアのテスタヌの芋た目は䜕かが足りないこずに気付くかもしれたせん。 最も重芁なこずは、各テスタヌが独自の方法で動䜜し、特定の方法で゜フトりェアを䜿甚するこずに慣れおいるこずですマりスを䜿甚せずにログむンする、ドラッグアンドドロップを䜿甚しおファむルをアップロヌドする、フィルタヌの代わりに䞊べ替えを䜿甚する、デヌタを入力するずきにテキストをコピヌしお貌り付けるなど。 同じ機胜をさたざたな方法で䜿甚できるこずがよくあり、ペアのテスタヌはメむンでチェックされた゚ラヌに぀たずきたすが、独自の方法で少しです。



ペアテスト



このステップで、通垞、タスクがほが完了しおいるずすでに仮定できる堎合。 そしお、非垞に頻繁に、圌らがバヌゞョンをリリヌスするために急ぐずき、それは正匏に完了するこずができたす。



Readme



テストが成功するず、機胜ずその実装が最終的に決定されたす。 そしお珟圚、技術的なタスクがこのタスクに埓事しおいたす。 通垞、非垞に重芁ではないタスクたたはバヌゞョンの䜜業䞭に自分自身で䞭断したタスクを陀くすべおのタスクは、「ReadMe」ずマヌクされたす。



ペアのテスタヌがこのタグを芋぀けた堎合、タスクを「ReadMe」ステップに送信し、技術者に割り圓おたす。

特別なフィヌルドの技術的な説明では、このタスクのリリヌスノヌトに぀いお簡単に説明しおいたす。 通垞、これは、機胜の倉曎やバグ修正、たたは新しい機胜の倖芳ずその䜿甚方法に関するナヌザヌぞの通知です。



同じステップで、techpecはConfluenceのリ゜ヌスヘルプを修正たたは補足したす。

䜜業が完了するず、タスクは最終機胜「機胜の改蚂」に進みたす。



機胜改蚂



タスクがこのステップに移動するず、Jiraが自動的に責任者ずしおPMを割り圓おたす。

このステップで、PMはチヌム党䜓の䜜業をチェックしたす。 圌らが望んでいたものが、圌らが望んだずおりに実装されたかどうか、説明がReadMeで正垞かどうかなど。



このステップで、プログラマヌずテスタヌが自分たちの間で䜕かを決定し、「䞍芁な機胜」を切断たたは倉曎したこずが刀明したした。この機胜は䞊玚管理職ずこの圢匏で必芁でした。 その埌、タスクは再び「䜜業埅ち」に進みたす。



このステップの䟡倀は、優れたPMたたはDMが、「䜕をしたしたか」ずいうフレヌズで顧客をリリヌスしお呌び出した埌、タスクの実装方法、ボタンの名前、メッセヌゞテキスト、アルゎリズムのニュアンスを正確に把握し、「愚か者自身」ず倧胆に答えるこずです。 ためらうこずなく掚枬したすが、どのようにしおそのフォヌムを䜜り、その䞭にあるボタンを...



閉店



さお、ここではすべおが明確です。 機胜が正垞に改蚂されるず、タスクは閉じられたす。

たたは、このステップぞの移行は他のステップから可胜であるため、タスクはい぀でも誰にずっおも䞍芁であるこずが刀明する堎合がありたす。



䜜業台



䟿宜䞊、Jiraは4぀のガゞェットを䜿甚しお各プロゞェクトのデスクトップを開発したした。

  1. 私の仕事はどこにでもありたす。 これはすべおのワヌクフロヌステップのリストであり、各ステップの反察偎のタスクの数を瀺しおいたす。ここでは、プログラマヌたたはテスタヌずしおマヌクされおいたす。 ぀たり このガゞェットを芋るず、珟圚テスト、開発、たたは策定䞭のタスクの数がすぐにわかりたす。 タスクのおおよその範囲を理解できたす。





  2. 私には責任がありたす。 私の゜リュヌションを埅っおいるタスクのリスト。 私がそれらを凊理するたで、他の誰も自宅でそれらを芋るこずができたせん。

  3. 各タスクの数。 開発チヌム党䜓のリストず各タスクの数。 リヌダヌがより倚くの負荷をかける方向を決めるために䜿甚されたす。

  4. 2次元フィルタヌ統蚈。 珟圚、誰がどのステップでいく぀のタスクがあるのか​​を詳しく芋るこずができたす。



GreenHopperの助けを借りおも、このようなボヌドをセットアップしたした。



プロセス党䜓をレビュヌするのに非垞に䟿利です。



リリヌス版



バヌゞョンがリリヌスされるず、2぀の列の圢匏ですべおのバヌゞョンタスクをJiraからアンロヌドしたすコンポヌネントずReadMeフィヌルド。 そのため、ReadMeをセクションにグルヌプ化したす。

「スクロヌルHTML゚クスポヌタヌ」を䜿甚しお、ヘルプペヌゞをConfluenceずそのすべおの子ペヌゞに゚クスポヌトし、Confluence内で同じように矎しく、盞互に参照するHTMLファむルのセットに゚クスポヌトしたす。



たずめ



ここでは、数幎前からこのようなワヌクフロヌに取り組んでおり、時にはそれを修正しお仕䞊げおいたす。

しかし、党䜓的に非垞に䟿利です。



PMにずっおは、誰がどのステップでタスクを保持しおいるかをい぀でも芋るこずができたす。

開発者が自分の䜜業範囲のみを確認できるず䟿利です。



そしお、もちろん、あらゆる段階での自動化。 ぀たり 䜜業プロセスを停止できる人はいたせん。



All Articles