「大規模な開発プロジェクトで、モダンなIT技術に初チャレンジ!〜自分たちだけで成し得ないことをやってみた感想〜」

特別講演

【講演者】
大成建設株式会社
建築本部 企画戦略部 企画室ICT業務改革推進担当チームリーダー
田辺 要平 氏

<プロローグ・初の第4世代的チャレンジ>

まず、当社が最新のIT技術を駆使し、独自にシステムを開発した経験をお伝えしたい。

企業にとっての近年の30年のIT技術進化は4つに区分できる。第1世代はユーザーがコードを書きシステムを動かしていた。第2世代ではユーザーの間にプログラムエンジニアが入り、システムとデータが明確に分離された。第3世代では企業内ITが立ち上がり、OA化・IT化が始まり、システム構築が多くの業種で行われた。現在の第4世代のデータ量は第2世代とは比較にならないほど増大している。関わるプログラムエンジニアも分業化が進み、複雑化するシステムを支えるためのモダンなIT技術の構築は、「システムを動かすために決めること」や「設計思想」が我々のこれまでの経験したITの知見とは全く異なっていた。今回の体験は高度化した現代に追いつくために、多くの企業が意識すべきことだ。本プロジェクト以前の大成建設のIT知見は第3世代止まりだった。今回初めて第4世代のシステム構築を経験して、複雑化・高度化した現状を思い知らされた。この経験で伝えたい言葉は「信用と信頼」。同じ「信じる」という意味の言葉でも、「信用」は過去に、「信頼」は未来にベクトルが向いている。信用は、ある意味相手を鵜呑みした状態で、信頼は時間や労力をかけて相手を理解しようとする意志だ。本プロジェクトには企画・技術監修役として「ギックス」のChief Technologist兼Chief Architectである岡大勝氏、具体的な実装ベースのアーキテクチャ設計をグロース・アーキテクチャ&チームス株式会社代表取締役社長・鈴木雄介氏に協力いただいた。

<1 .本プロジェクトの概要と特性>

「X-grab」は大成建設の7000社、ユーザー数7万人と利用してきたSaaSサービスを、自前で再構築するプロジェクトだ。フロントエンドでは今後様々なサービスを新規開発、追加する予定のため、それを支えるバックエンドを明確に分けて開発を行った。バックエンドの制御系、基盤系、フロントエンド、それぞれ必要とされるスキルが違い、全部同一のエンジニアが開発するのは現実的ではなかった。そこで役割を分けたプロジェクト構成にして、Microsoft Azureのリソースの合計数は270。

2019年8月、岡氏の元で拡張性の高いデータ管理のフレームワークと各サービスの関係性についてコンセプトを作成した。同年末に鈴木氏が加入し、基本設計を行っていた矢先、2022年世界的なパンデミックが発生。そのため全体のプロジェクトを完全リモートで行うことになった。

<2.X-grab開発プロジェクト独自の「ノリ」>

完全リモートのため名刺交換もなく実際の設計と開発に着手していく。バックエンド2チーム、認証系1チーム、フロントエンド4チームの体制で2022年5月にリリースした。約80名が関わっていたが、ほぼ全員と1度も会わないまま仕事を終えた。今回のプロジェクトの中では「独自のノリ」があった。規模の大きさやマイクロサービス化、AzureのPaaSの部品で構築するなど、未経験のことばかりだった。初めてづくしで、今までのノリのままだと、確実にうまくいかないことが予想された。従来の会議室で全てを決めていくスタイルは許されない。世界的パンデミック下だったからこそ、プロジェクト独自のスタイルを生み出せた。それぞれが「餅は餅屋」で開発を進めていく中、重要事項の決定時には「どう? みんな違和感ない?」というセリフで最終確認をすることになる。

実際のメンバー間のコミュニケーションは以下のツールで行った。

googleカレンダーで、スケジュールを全て共有。2022年2月からは誰と誰が打ち合わせしているのかが「見える化」されるAroundのおかげでリリース直前の慌ただしい時期を乗り越えられた。プロジェクトを通して打ち合わせの招待は一切しなかった。googleカレンダーで、ミーティングのURLとタイトルだけを共有し、参加不参加は各チームリーダーが決めた。誰に打ち合わせに参加してもらいたいかの選択も各チームに任せた。中央で考えるとどうしても漏れが出てしまうからだ。プロジェクト中、週1回は各チームリーダーによる全体会議を続けていた。2021年の秋からは、週1回岡氏や鈴木氏らのコアメンバーによる技術や拡張に関するミーティングは従来の感覚に引きずられないために「Meta Workrooms」のVR内で行っている。使用したツールの中で特に紹介したいのが、株式会社nulabが提供するツールCACOOで、ホワイトボードやプロジェクトルームの役割を果たしてくれた。思いついたアイデアを形にして相手に伝え、ネット内で編集し仕上げることができる。CACOOがなければプロジェクトは成り立っていなかった。

<3.2人のトップITアーキテクト語録>

ここからは岡・鈴木両氏の語録を引用しながら、プロジェクトの本質を解説していきたい。「外部の知見に頼ることは自力でやるより何倍も大きな成果が出せる。しかし、それだけでは最初の成果が上限になる。継続的成長を前提とするシステムは、あくまでも大成建設が主体となり進化することが求められる」と岡氏が語った通り、5月のリリース後も制御系と呼んでいる部分をマイクロサービス化して、作り変えをおこなっている。チームはマイクロサービスのルールを今回のプロジェクトで学び、主体的に成長できるようになった。また岡氏は「シンプルな概念図は巨大なチームを適切に動かすための“法律”。システムはサービス間の役割や関係性を曖昧にした瞬間から崩壊が始まる」と語る。我々の概念図には、矢印の線とその方向で省略できるものは何一つない。それでいてシンプルさを維持しなければならない。実際のシステム開発の現場でも常に概念図に立ち返っているため、システムを破綻させずに成長させることができる。

鈴木氏は「今日の巨大化する業務システムは正確に事前に設計することは不可能である」と語った。抽象的なバックエンドの設計では仕様書を作り込み過ぎると、これからどんな使われ方をするのか分からない中で、発展させられなくなる。システムの仕様が業務に対して具体的であればあるほど行き詰まる。またマイクロサービスはある程度規模が巨大でないと、真価を発揮できない。鈴木氏の語るように、おおまかな全体像だけを掴み、あとは様々な変化に対応することが重要になる。Azureの場合、Application Insightsという監視システムがあり、エラーをすぐすぐ見つけだせる。

そしてシステム開発について鈴木氏は「機能が動けば実現するための技術はなんでもいいと言われますが、考え方が何でもいいわけではありません。筋の通ったポリシーやルールが共有され、その上にシステムを構築していくことで一貫性が生まれます」とも語っている。マイクロサービス化はプロジェクト規模が大きい場合に有効なので自ずと分業が基本になる。分業では一貫したポリシーやルールが共有されないと、チームは迷走する。発注側は分かりやすくするために仕様自体を可視化する必要がある。

<4 .信用から信頼へ>

X-grabのシステムは概念や考え方の適用、全体の機能など様々な面で話し合った上で設計したからこそ構築できたと確信している。今回第4世代の開発を体験して感じたのは、我々が岡氏や鈴木氏に全て任せきりであれば、ここまでの成果にならなかったということだ。日本のトップITアーキテクト二人と真剣に向き合ったことで、我々が成長し、信頼関係が結ばれ、技量がかけ算になって、当初予定していた以上のポテンシャルを持つシステムになった。

自分の知識量が足りなく、ちょっとやそっとの努力では理解不能になったとき、残念ながら信頼関係は構築できず一方的な信用で終わるしかない。特定のプロジェクト内の人間関係において、信用は信用する相手の技量が成果の上限となり、信頼は相手の技量とのかけ算で結果を出せる。

「異種格闘技と似て、組む相手とはジャンルが違えども同じレベルでないと試合はできない」と岡氏は語る。未経験の領域で専門家と共に取り組むときには、私がX-grabプロジェクトで実感したように、専門家の知見に学び、主体的に成長することで信用から信頼関係へ変えていく姿勢が必要だ。