2019夏の基調講演として「DX時代に目指すべき品質向上とテスト」という話をしました。資料は以下にて公開されています。本記事では講演内容のサマリをお伝えします。リードタイムを早くする近年のシステム開発では、実装スピードではなく、企画してからリリースするまでのリードタイムが非常に重要になっています。エンタープライズでありがちなシステム開発プロセスにおいてリードタイムが長くなるのは、多くの場合、調整や待ちといったものです。アジャイルソフトウェア開発アジャイルソフトウェア開発は先にリソースを確保しておく定期的に計画し、リリースする動くソフトウェアを重視するといった特徴を持ちます。これは実装の開始と終了タイミングを先に定めてしまい、そのタイミングに企画側が合わせる事によって調整や待ちを無くしていきます。複数部門から要件が出るような状況において、先に実装タイミングを定めることによって、以下のようなメリットが生まれます。そのタイミングで部門を跨がる優先順位をつけることができる要件が曖昧な場合に、次のリリースに回す交渉がしやすくなるこれは「電車」のようなアプローチです。アジャイルと聞くと、融通が効く「タクシー」をイメージしがちですが、タクシーは調達に時間がかかったり、思った台数が集まらないことがあるため、実際には非効率なのです。電車のように、発車時間までにホームにいる人を対象に、優先順位をつけて満員になるため乗車してもらうことで、安定したリリースを実現することができるのです。DevOps次に実装が完了してから、リリースするまでの流れを自動化するのがDevOpsの取組みです。DevOpsとは運用作業の自動化を通じて、開発者がセルフサービスでシステムを運用できるようにすることです。重要なことは、自動化すべき対象にテストが含まれることです。リリースを自動化するためにはリリース判定そのものを自動化する必要があるのです。CI/CDといった言葉は、開発者がコードをマージしたことをトリガーに、以下のような工程のテストを自動化する取組みです。Deployment:本番確認テストを自動化する適用に向けた壁アジャイルソフトウェア開発やDevOpsを導入できればリードタイムの圧縮が可能です。そのためには部門を超えて協力し合うことが必要です。いったようなものです。自部門の仕事を無くす仕事ができないもちろん、既存に対する敬意は必要です。これらに固執するあまり変革をしなければ、リードタイムを短くすることはできません。地道だっても、これを解決するのに大事なことは部門間の話し合いであり、部門を超えた協力です。全社最適になることを目指さなくてはなりません。弊社では、話し合いの第一歩として、バリューストリームマッピングのワークショップ開催を推奨しています。企画開始からリリースまでの全てのフローを書き出すことによって、まずはお互いの仕事を理解し、そして、課題に対して部門をこえた協力を行うのです。さいごに新しいシステム開発プロセスをリードするのは現場であるべきです。全社を通じて実現すべきことは一緒です。部門を超えた協業によって、これを達成していきましょう。