リーン/カンバンで頻繁にリリースするにはどうすればよいですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/1245312

質問

私はリーン/カンバンについてはまったくの初心者ですが、ここ数週間オンライン リソースを注ぎ込み、適切な答えが見つからない質問を思いつきました。それ以外の点では、リーン/カンバンはすでにスクラムを使用している当社に非常に適しているように見えますが、その方法論内ではいくつかの制限に達しています。ここの誰かが私に良いアイデアを与えてくれることを願っています。

私が考えるに、ウォーターフォールに対するスクラムの最大の利点の 1 つは、スプリントの使用です。14 日ごとにすべてを準備しておくことで、フィードバック サイクルが短くなり、頻繁にリリースできるようになります。ただし、リーンについて読んで理解したように、これにはある程度のコストがかかります (たとえば、スプリント計画会議、チームのコミットメント会議に費やされる時間、およびスプリントの終わりに全員にとって役立つものを見つける際の問題など)。

リーン/カンバンはこれらの無駄を削除しますが、その代償として 14 日ごとにリリースすることができなくなります。それとも重要な点を見逃してしまったのでしょうか?カンバンでは、どのようにして新しい開発タスクとリリースに同時に取り組むことができるのでしょうか?中途半端にしか完成していないものを出荷しないようにするにはどうすればよいでしょうか?そして、それを適切にテストするにはどうすればよいでしょうか?

これまでの私の最高の「解決策/アイデア」は次のとおりです。

  • リリースを頻繁に行わず、新しい開発タスクの実行に伴う無駄を許容してください。ただし、質問に対する実際の解決策ではありません。
  • 枝に発展してから主幹にマージします。少なくとも 2 つのブランチを内部で継続的にサポートする必要があります。
  • スマートな自動ラベル付けシステムを使用して、特定の完了したタスクのみを自動的に構築し、他のタスクは構築しません。

要約すると、 私の質問は:リーン/カンバンを使用すると、無駄を生じさせずに頻繁にリリースできますか?それとも 頻繁にリリースする リーン/カンバンの一部ではありませんか?

私の会社に特有の追加情報:私たちは Team Foundation システムとソース管理を使用していますが、以前に分岐とマージに関していくつかの悪い経験がありました。この問題は、この分野の専門知識を導入するだけで解決できるでしょうか?

役に立ちましたか?

解決

かんばん程度以下、進行中の機能から行う機能を分離する方法 -

あなたが記述問題は、複数のソース制御プログラムと思われます。複数のブランチの考え方に基づいていないソース管理システムのためのケースです - あなたは多くの枝を実行している上に重いペナルティを入れているようです。このようGITとマーキュリー、のすべてのものとして、分散型のソース管理システム、オンの支店で、それらを持つ彼らとの作業は軽量です。

私はあなたがSCRUM対カンバンについてこのブログを読むと想定します、および関連する実用的なガイド

そして、あなたの質問への答えに、はい、あなたはカンバンで頻繁にリリースすることができます。

他のヒント

あなたは、かんばんが管理するように設計されたものであるプルシステムを、理解する必要があります。

実行しているシステムにおける機能の顧客(または製品の所有者または類似の)要求プロセスをトリガーするものです。

要求は展開になる信号です。要求に一致するプロパティを持つテスト項目の展開表情。何も存在しない場合は、テストを記述し、テストを満たして何かを実装するために使用することができ、開発のスロットがある場合は、開発を見てください。開発はその開発を行っている場合には(多分最初というように、適切な分析を探して)、テストは、そのテストを行い、そして展開が展開します。

システムを逆方向に行くの要求が作業を開始する権限があります。すぐにリクエストが到着したように、これは各活動は、可能な限り迅速に完了しなければならない多くのアクティビティを、開始します。そこには、あなたのターボ展開を持っています。

車のための要求は、取引先への信号自動車工場への信号の船に見えディーラーに行くと同じように。

かんばんシステムを通じて要求をプッシュに関するものではありません。これは、最後のステップを経て入る要求と引き換えに、システムから機能を引っ張っについてです。

私が管理チームは、かんばんを使用し、我々は隔週の周りにリリースします。あなたはメインラインコードブランチに統合する内容について厳格であれば(合格テストは、顧客が承認された、など)、カンバンはあなたがいつでも解除することができます。私たちの仕事の大部分は、いくつかの無関係なバグ修正で構成されてメンテナンスを必要とする - あなたは、あなたのシステムを介して移動する物語は、これを行うために、共同依存しませんが、私のチームには、通常は問題ではないということを確認する必要があります/リリースごとに備えています。

私たちは、かんばんが分岐戦略を実行するために使用した持続的なエンジニアリング・プロジェクトで毎週リリースを取り扱う方法。開発者は、サンドボックスの支店で働いていた、と作業項目ごとにチェックインをしました。私たちのテスターはサンドボックス内で作業項目をテストします。それが回帰テストに合格した場合、チェックインは、私たちのリリースブランチに移行されます。リリースが出て行ってまで、私たちは、月曜日正午からリリースブランチをロックし、(通常は水曜日で木曜日によって時折、ドロップ死んだ日は金曜日だった)、および製品のすべての移行のチェックインのためのリグレッションテストだけでなく、統合テストを再実行しました一度通過したテストをすべて解除を落とします。

この戦略は、開発者が継続的にリリースプロセスの間にその枝の外に凍結されずに問題に取り組んでみましょう。それはまた、彼らは解決するのに一週間以上かかった問題に取り組んでみましょう。それがチェックインし、試験しなかった場合は/それは移行されませんでした承認しました。

私はプロジェクトの新しいバージョンのためのかんばんを実行していた場合、私は「機能」と、関連するすべてのチェックイン同様の戦略が、グループを使用したい、機能を移行するの大挙のリリースブランチへ機能が行われた後、その機能を使ってリリースを削除する前に、リリースブランチの追加ユニット/統合/受諾/回帰テストを行った後。 (これはおそらく、いくつかの作業項目/ユーザー・ストーリーになります)かんばんのキーコンセプトは進行中の作業が制限されることに注意してくださいので、私は一度に一つの特徴で動作するように私のチームが制限される場合があります。

があり、単にソースコントロールよりも、これに多くのですが、TFSのあなたの選択はあなたを制限しようとしています。バートンプロジェクトは2004年に戻って考えたときに、Microsoftは、アジャイルにはるかに少ないリーン注意を払っていませんでした。いくつかの時間のためにあなたの最も弱い機械的なリンクになるだろう。あなたのハックルは、TFSの実装の申し子として、マイクロソフトのコミュニティに提供された後はMercurialのCodePlexの独自の採用により提起されている必要があります。

ここでは、より顕著な問題は、仕事のデザインです。それは同様に優先順位付けや遅延のコスト、および作業項目の形状や大きさなど、あなたがフィーチャー(作業スケジュール)を実装することを選択した順序を包含しています。

スクラムは、一般的に非技術的な「製品の所有者は、」自らの懸念のみに基づいて、作業スケジュールを決定することができますと言って解釈されます。あなたはこのパスに従うならば、あなたは一緒に属する一緒に仕事をする機会を取っていないことで、多くの廃棄物が発生するつもりです。一緒に属している仕事は、単にプロダクトオーナーの意向で決定することはできません。技術と労働力(スキル)の機会も考慮する必要があります。

最も生産的な方法で行うべき作業について、作業自体はそのように設計しなければなりません。これは、LAN製品開発チームでは、意思決定がない非技術労働者によって、しかしトヨタは、製品に近い顧客に近く、そしてチームに近い「そびえ立つ技術的能力」の誰かを呼ぶものによって作られていることを意味します。

この役割はスクラムの命題とは対照的です。リーンチームのチーフエンジニアは、自分自身(または自身)顧客の声で、プロダクトオーナーの役割は不要です。

スクラムの「プロダクトオーナーは、」ソフトウェア開発組織におけるアンダー開発役割の認識であるが、それは一貫して、廃棄物を回避し、持続可能な解決にはほど遠いです。一部の開発者のサブカルチャーでは、建築家は、あまりにも仕事から削除さとなっているとして、「ソフトウェアアーキテクト」の役割は、同様に不十分であることが多います。

連続展開のあなたの問題は部分的にしか技術やツールで対処されています。組織的な問題にも見て、おそらく移行滝からのアプローチではなく、無限にあなたの組織にサービスを提供できるものとして、スクラムの目的にいくつかの考えを与えます。

ソース管理のために私は非常に PERFORCEのにお勧めします。これは、比較的簡単他のブランチからの変更を分岐し、統合するなり、私がこれまで見てきたソース管理のための最高のインターフェイスを提供します。

継続的インテグレーションにも役立ちます - 小型の、すなわち多く、毎日より多くのではなく、巨大な潜在的に挑戦的なマージの、コミットします。ソースが取得するときに CruiseControlののようなツールは、ハイライトを助けることができます悪いことで壊れてコミットします。誰もが多くの小さな変更を行う場合も、その後、競合する変更はまれになります。

私はまた、リーン、スクラム、かんばん&コのようなものを追跡しようとしないアドバイスと思います。あまりにも密接に。ただ、指導ではなく、命令のためにこれらのアイデアを見て、問題を自分で解決します。あなたの問題の詳細は以上の可能性が高い最良の管理のためにある程度の柔軟性が必要になります。

どうすればいいですか:

次のステージからなるパイプラインがあります

  1. やり残し
  2. TODO
  3. 進行中 (開発とクイックテスト)
  4. コードレビュー
  5. テスト(厳格なテスト)
  6. 結合テストと一般受け入れテスト
  7. 展開する

各ストーリーは、最新バージョンに基づいてブランチとして開発され、展開ステージを終了します。その後、それらは統合テストの準備の一環として統合されます。

QA はコード レビュー段階から引き継ぎ、必要なペースでリリースを準備できます。だいたい毎週1本くらいのペースでリリースしていると思います。

git から「master」ブランチを削除し、コードレビュー段階の前にマージを行わないことで、コードがリリースに「こっそり」入る可能性がないことを確認しました。これは興味深い副産物として、これまで隠されていた多くの作業を視覚化することを余儀なくされました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top