開発の「つらい経験」を減らす品質保証が、開発工程から分断されている
ITシステムは日常に欠かせない存在となっているが、その背後にはソフトウェア品質を担保する品質保証(QA)の力がある。QAが欠けると、便利なはずのITシステムも不具合を生じ、不便に感じるし、セキュリティの脅威もある。AGESTは、この品質保証の専門集団だ。
同社のCTOである城倉氏は独立系SIerに入社し、多岐にわたる企業システムの開発に従事した。その後、ワークフローシステム「X-point」の開発者として、2007年に株式会社エイトレッドを設立し、同社のCTOとしての道を歩んだ。2011年からは株式会社DMM.comラボ(現・合同会社DMM.com)のCTOとして、エンジニア組織の拡大に尽力。2020年10月、AGESTの親会社である株式会社デジタルハーツに入社し、2022年4月からは現職にて活動している。
城倉氏はソフトウェア開発はエンジニアにとって「楽しい体験」だが、品質への取り組みが不足することで「つらい体験」にもなると振り返る。「テストが不足して不具合が生じたり、開発時にもっと配慮しておくべきだった点が見落とされたりすることで、大きなトラブルが発生することがある。そのようなトラブルの根本原因を考えると、品質への取り組みが足りていないことが明らかで、自分もそうした経験がいくつもあった」と述べる。
一方の高木氏は新卒でSIerとして6年間通信系の基幹システムを開発。その中で国際チームとの共同プロジェクトにも携わった。その後、ITコンサルタントとしてフィリピンの企業立ち上げやプロセス改善に従事。そこでソフトウェアテストの重要性を認識し、ソフトウェア品質サービスを展開する企業に移る。その後デジタルハーツからのオファーを受け、エンタープライズ部門のリーダーとして活動。2022年4月からはAGESTでQA事業本部の本部長としてテスト業務を続けている。
ソフトウェア品質に興味を持った背景について高木氏は、「保守を除外すると、ソフトウェア開発全体のコストの約46%がテスト関連に使われているとされています。それにもかかわらず、その部分が大雑把にまとめられていることに疑問を持ちました。従って、この部分を適切に管理する、または技術を向上させることで、成功するプロジェクトの数が増えるのではないかと考えたのです」と語った。
テストはエンジニアリングの一部であるはずだ。しかし、日本の開発では長らくウォーターフォールが主流であった。このため、工程が分断され、テストという独立した工程が存在してしまっている。そうした中で昨今、上流工程から品質を確保する「シフトレフト」という考え方が注目されている。城倉氏は「テスト工程が独立するのではなく、エンジニアリングの過程でさまざまな方法を用いて品質を作り込むことが重要です。そうすると、人の手だけでは難しく、自ずとテクノロジーを活用することとなります。弊社は先端テクノロジーを駆使した次世代のQAを作るというビジョンを持っているのです」と話す。また高木氏も「QA領域においてエンジニアリングを真摯に追求しています。エンジニアが学習する時間もお金もかけていて、他社とは本気度が違います」と強調した。
教育を重視する背景には、現代のソフトウェア品質の3つの課題が
AGESTが教育を重視する背景には何があるのだろうか。高木氏は、現代のソフトウェア品質管理には次の3つの課題があると説明した。1つ目の課題は、技術の大規模化、複雑化、短納期化に伴って、品質保証の難易度が上がっていることだ。過去には、一人のプロジェクトマネージャーやリードエンジニアがシステムの全体像を把握し、品質を管理していたが、現在では複数の企業や多くの関係者が存在しているため、全体のコントロールや品質の統一が難しくなっている。
2つ目は、社会的責任だ。特に「説明責任」という言葉が注目され、開発者自身がテストを行い品質が良好であると判断するだけでは不十分との認識が広がっている。今や、第三者の視点での客観的な評価や検証が不可欠となっている。
3つ目は、ソフトウェアテストに関する技法や技術の成熟だ。ソフトウェアテストの規格や基準が設定され、専門家としてのテスト技法の確立が進んでいる。この結果として、品質専門家の役割や専門性がますます重要になっており、第三者検証の重要性がこれまで以上に強調さているのだ。
城倉氏は「次世代の開発ではエンジニアリングの中にQAが生じます。あらゆる職種・能力を持つメンバーで構成されるチームによって開発していく時代になっていくでしょう」とコメントした。
生成AI時代だからこそ重視したい、知識を活用するまでの三段階
最近のソフトウェア開発で注目を集めているのは生成AIの活用だ。ソフトウェア品質保証の面での活用について城倉氏に意見を求めると「生成AIは、新たに登場したツールの一つ」と語った。例えば、コードを手動で書くのが面倒であるため、生成AIで自動化を試みる。またテスト工程においても、技術を駆使して作業を効率化したいと考えるだろう。生成AIがエンジニアの仕事を奪ってしまうというわけでなく、エンジニアは、変化する仕事の枠組みの中で、どのようにAIを適応させるかが重要だというのだ。
生成AIによる自動化は、中間の処理を明示しないため、インプットとアウトプットの関係性が中心となる。高木氏は「入力と出力をどのように制御するかが重要です」と説く。インプットに関しては、プロンプトエンジニアリングの手法を利用して、AIへの指示や供給する情報、チューニングのための設定値などを調整する力が必要。一方、アウトプットに関しては、その結果が正確であるかを判断する能力が求められる。いずれにしても、エンジニアは知識・経験を身につける必要がある。
高木氏は、エンジニアはインプットを増やしていくことが重要であるとし、知識を習得して活用するまでの三段階を説明した。第1段階は、情報の「インプット」だ。一冊の本だけで全てを理解するのは難しい。多様な情報源からの大量のインプットが必要となる。これが知識を技能に昇華させるための基盤となる。AGESTには「AGEST Academy」という教育機関があり、レックス・ブラック氏など、アメリカ、アジア、ヨーロッパのトップエキスパートと業務提携を結び、質の高いコンテンツを社員に提供している。また、業界の最高峰の専門家たちと共同研究する「AGEST Testing Lab.」もある。
第2段階は、知識の「アウトプット」だ。単にインプットしただけでは、それが身につかない。AGESTでは、輪読会でのディスカッションや、ライトニングトークなどでの発表を用意している。
第3段階は「コラボレーション」だ。これは、互いに知識や技能を高め合うための場の提供である。輪読やライトニングトーク、そして当社のオフィス環境自体も、コラボレーションを促進するように設計されている。AGESTのオフィスには床に座って円を描きながら話せる場所やホワイトボードが随所に設置されるなど、コラボレーションを誘発する仕掛けが設けられている。
さらに、個々のエンジニアの成長につながるような案件に意図的に割り当てできるよう、1on1ミーティングにも力を入れているという。高木氏は「エンジニア一人ひとりの成長を真剣に考え、外部からの働きかけ、そして環境の整備に注力しています。エンジニアが幸せになれるような取り組みを続けているのです」と説明した。
エンジニアの成長と組織の発展、両方に有効な「ある試み」とは
しかし、環境を用意するだけで成長できるものだろうか? この疑問に対し、城倉氏は「やはりカルチャーが重要」と説く。
「よく言われるように非連続な変化が求められる時代なので、新しいことにアンテナを張り、活用することが、成長するうえでも大切です。そのためには各個人の好奇心が必要ですし、それを醸成するためのエンジニアカルチャーが重要になります。上記のような環境を用意しているのもそのためです」(城倉氏)
そうしたエンジニアカルチャーを作るために一役買ったのが、自社の品質メディア「Sqripts」だ。AGESTの事業であるソフトウェア品質だけでなく、開発、資格、アジャイル、セキュリティ、プロセス改善など多岐にわたる領域をカバーしており、エンジニアリングを向上させるために以下のような発信を行っている。
- なんでも知ってる「ChatGPT」先生と、それにより変わっていく常識
- PythonのORMライブラリ「SQLAlchemy」を「FastAPI」で使う
- 単体テストの品質を見える化して改善する「ミューテーションテスト」 ~ JaSST’23Tokyo参加レポート
城倉氏は、自社メディアの運営は、メンバー個人にとっても会社にとっても多くの利点があるとし「発信して反応がもらえると楽しさが増し、自主性が高まります。たとえば、ChatGPTが2022年の11月30日にリリースされたときも『すぐに記事を書くべき』と提案するエンジニアがいました。また、会社としては、適切な人材を発掘するのにも役立ちます。記事がきっかけで、関連した業務に抜擢されるようなケースもあります」と述べた。また高木氏もブログによって興味の範囲を広げてインプットを増やしていけることや、記事を書き上げることによる成功体験の積み重ねができる効果を挙げた。
現在ではこうした利点も実感できるようになったが、最初は苦労も多かったという。そもそも何を書けば良いのか分からないうえ、企業として発信するうえでの責任もある。加えて書き手であるエンジニアは案件を抱えているため、継続的な運営が難しい。
AGESTではこうした課題に一つ一つ向き合い、継続的に改善していった。例えば企画会議を開いてある程度企画が固まったものをエンジニアに書いて貰えるようにしたり、記事のレビュー体制も構築したりした。また運営に関しては事務局を設置し、記事のプロジェクトマネジメントを行うようにした。
ここまで継続的に改善できたのは経営層の理解も大きいと高木氏は語る。経営層がコミットしているなら、メンバーは安心して活動を展開できる。ちなみに、高木氏も上記のレビュー体制に加わっている一人だ。
最後に二人は、これからのエンジニアのスキル習得について、以下のように述べた。
「今後は『質』の時代となると感じています。例えば、AIのアウトプットを正確に評価することなども、質の良さを見極める視点が必要です。しかし、人は簡単に高い質を持つことはできません。初めは量をこなし、その経験を通じて、質の追求につなげていただきたいです。私たちの会社、AGESTは、インプットの機会とアウトプットの場を多く提供しています。ぜひ一緒に取り組んでいただきたいです」(高木氏)
「エンジニアにとって、学びは非常に重要です。これからはAIの時代が進行していくでしょう。しかし、AIが台頭するからといって、私たちの取り組みが根本的に変わるわけではありません。技術をしっかり学び、その学びが正しいのかをアウトプットし、他の人と共有する。このプロセスを繰り返すことで、技術スキルの向上を目指します。少しでもAGESTに興味を持っていただけたなら、ぜひ足を運んでみてください」(城倉氏)
Sqripts | エンジニアリングを進化させる品質メディア
各領域のエキスパートの方や現場のエンジニアたちの”知”を集め、開発とQA(Quality Assurance)を分離することなく幅広いテーマを扱った、全てのエンジニアリングに有用な情報を発信するメディア。無料会員登録で特集記事も閲覧できます! 記事の閲覧はこちらから!