3つの課題を解決し、アジャイル・DevOpsを推進!
現状における課題に対して、アシストでは次のような仮説を立てて考えている。「開発工程の早い段階から品質を上げるには、ソースコード解析が有効ではないか」「アプリケーション構造を可視化できれば、アプリケーション改修時の影響調査分析が楽になるのでは」、「開発プロセスの各タスクを自動化できれば、開発者は開発に注力できるのでは」、「課題を整理する手段があれば、問題の所在が明確化できるのでは」など。
そうしてソリューションを組み立てた。開発プロセスのボトルネックとなる課題を可視化するためとしてアシストではValue Stream Mapping(VSM)ワークショップを実施している。ここでは価値を提供する流れを可視化することで、潜在的な課題を明確にして、理想的な姿を模索するためのワークショップとなる。目的は自社の開発プロセスにおけるリードタイムを短縮するためのヒントを見いだすこと。一般論を座学で学ぶのとは異なり、自社の問題をワークショップ形式で行うため実践的なものとなる。おおよそ5~10名が集まって実施する。
課題が明確になると、それぞれのプロセスで何をすべきかが見えてくる。プログラムの変更時点では、効率的な影響を分析する。コーディング段階では、脆弱性の点検を行う(SAST:静的解析)。テスト段階では、回帰テストや負荷テストの高度化を行う。同時にテスト段階以降には、DAST(動的解析)やインフラの脆弱性管理を行う。また開発プロセス全体をカバーする自動化も必要だ。
それぞれの段階や目的別に具体的なツールをあてはめると、次のようになる。プログラムの変更分析には「ChangeMiner」、SASTには「Fortify SCA」、テストには「UFT One・PAIC」や「LoadRunner」や「JENNIFER」、DASTには「Tenable.io」、開発プロセスの自動化にはCI/CDの「Jenkins」や「GitLab」となる。テスト環境の構築から展開フェーズでは「Ansible」を使う。
さらに全ての段階において、実現に近づくための情報収集からはじまり、試行、展開、定着のための支援も組み込む。「他社事例を知りたい」というようなニーズに対してはDevOpsユーザー会を開催している。互いに情報交換することで、それぞれが課題解決できるようにしている。