クラウド時代のアプリケーション開発者が抱える課題
石川氏はまず、ソフトウェア開発や運用の文脈でよく使用される「You build it, you run it」というフレーズを引用した上で、開発者が開発以外の作業、例えばビルド、テスト、デプロイ、運用などの責任も負っていくことが求められる現状に対し、「現在のソフトウェア開発はそんなに簡単ではない」と課題感をあらわにする。
例えばアプリのデプロイひとつ取っても、サービスの裏側にはさまざまな技術が組み合わされているため、開発者の認知負荷は非常に高くなり、これらをすべてやり切れる人材は限られているというのだ。
ここで石川氏は、アプリ開発者が実際どのような時に課題や認知負荷を感じているかを具体的に示すため、架空の人物「ボブ・スミス」の体験をストーリー仕立てで語り始めた。
ストーリーはこうだ。アプリケーションデベロッパーのボブは、入社して数カ月が経過し、会社の主要なプロダクトに新機能を開発するためのプロジェクトにアサインされた。この会社では、異なる機能やコンポーネントに応じて、Go言語やPython、Node.jsなど複数の言語が使い分けられている。
ボブはこれまでの経験を活かし、より大きな責任を持つプロジェクトに取り組むことを期待していたが、実際にプロジェクトが始まると、自分の力だけではどうにもできないようなさまざまな課題に直面する。環境構築で何から手を付けていいか分からなかったり、必要なドキュメントがなかなか見つからなかったり、チームメンバーとスムーズにコミュニケーションが取れなかったり……そのどれもがボブのエネルギーを削り取っていく。
このような経験を通してボブは、スケジュールの圧迫感やフラストレーション、「うまくいかないのは自分のスキルに問題があるからでは」という自己疑念を抱き始め、アプリ開発への自信を失ってしまった。
なんとも心の痛むストーリーを受けて、石川氏は「ここには3つの課題がある」と指摘する。「環境構築の難しさ」「不十分なドキュメントとアクセスの問題」「チーム間のコミュニケーション」だ。
まず、「環境構築の難しさ」は、十分な手順書が提供されておらず、どこから手を付ければいいかが分からない、あるいは設定をどうやって行えば良いか分からないという課題だ。エラーなどの解決方法が共有されず、作業に多くの時間を要してしまう事態は、スケジュール管理に深刻な影響を与える。
「不十分なドキュメントとアクセスの問題」には、そもそもドキュメントを見つけるのが難しかったり、ドキュメント内にあるプロジェクト特有の専門用語を正しく理解できなかったり、ドキュメントの更新がされていなかったりすることのほか、ドキュメントへのアクセス権がなく欲しい情報へリーチできない、権限申請に時間がかかるといった課題が含まれる。
「チーム間のコミュニケーション」には、チーム間でのコミュニケーション方法が確立されておらず、それぞれのコミュニケーション手段を変えなければならないこと、また情報の共有が適切に行われず、互いの認識に齟齬が生まれ開発に支障をきたしてしまうことなどが挙げられる。
「これらの課題を解決する手立てこそ、Platform Engineeringだ」と石川氏は語る。解説のバトンを受け取ったのは、吉川氏だ。