「この段階でリファクタリングしたい」 開発者の意見が尊重された現場
大谷:結果として、プロジェクトがうまく行ったのはなぜでしょうか?
高:この現場では開発者の目線が重視されます。お客様の要望が第一という昔のSIや請負プロジェクトは多いと思うのですが、このプロジェクトは開発者の意見が尊重され、認められていました。
大谷:現場での具体例はありますか?
高:はい。2019年からスプリント開発を始め、約1年間で基本機能を作り終え、ある少額貸出機能への対応に入ることになりました。さっそく計画を作ってみたのですが、大きな新機能ではないのに影響範囲がすごく広く、改修範囲は当初の僕の見積もりの5倍くらいありました。そのとき僕らは、自分たちが作ってきたものがいつの間にかいわゆる「重厚長大なシステム」になっていたことに気がついたのです。
大谷:柔軟さを実現するためにクラウドネイティブなマイクロサービスを活用して作っていたのに、実際はそうでなかったんですね。
高:銀行の基幹システムをイチから作るということで、最初はわからないことだらけ。作り方を模索しながらの開発だったので、一部の機能はベストプラクティスから外れた形で作られてしまっていたんです。しかも、スプリントが厳しく詰められていたので、作り直す時間も余力もなかったんです。
でも、このままだと、なぜゼロから作ったのかわからなくなります。そこで、お客様に全面的なリファクタリング(内部構造の再整理)を提案しました。「作りたかったのは、柔軟な変化に対応しやすいシステム」「リリースした後になってからでは難しくなるので、今の段階でやらせてください」とお願いしました。まずはアクセンチュア社内で上層部も巻き込んで何度も打ち合わせを重ね、お客様にどのように話を持っていくかを決めました。
大谷:ある程度完成したシステムを作り直させろというわけですから、けっこうすごい話ですよね。
高:普通に考えれば、「なにわがまま言っているんだ」と言われるはずなんですが、結局お客様側からも了承をいただきました。なにより大きかったのは、当初に描いていたシステムの価値を理解してくれた方々がお客様側にいたことです。結果としてテストの自動化も進め、2ヶ月かけてリファクタリングし、理想の形に戻すことができました。
大谷:エンジニアが単なる作業員ではなく、プロジェクトを主導しているのですね。
高:はい。リリース後は、新規サービスの開発体制は全体で数十人程度に縮小したのですが、そのチームを率いるデリバリーリーダーもアクセンチュアのトップエンジニアです。トップエンジニアが体制のトップに立ち、「これから生産性を30%向上させる」と宣言するんです。最初は「無理でしょ」と思ってしまうのですが、エンジニアリングファーストを徹底し、役に立つモノを自らどんどん開発してしまうんです。
たとえば、テストの自動化です。自動化といっても、結局テスト用のスクリプトを作らなければならないので、やはり手間はかかります。でも、トップエンジニアともなると、そのテストスクリプトまで自動生成するプログラムを作ってしまうんです。これによってテスト工数が削減され、早い段階でテストドリブンの開発が実現し、品質を担保することができました。
しかも、彼はプロジェクトを管理しながら、メンバーがバックログに追加した修正依頼をすごいスピードで修正してしまいます。スプリント開発をしながら、テスト自動化もどんどん進化する。もはや謎としか言いようのないすごい環境(笑)。ものづくりを価値として認め、重心を置いている。開発者として、本当に働きやすい環境です。
大谷:UXという観点での苦労話、佐藤さんはいかがですか?
佐藤:今回のプロジェクトって、システム開発が進んでいる途中から、デザインを当てさせてもらったという特殊な環境ですが、デザインはどんどん変えています。正直、開発サイドやお客様から見ると「どんだけ画面変更すんねん」というご意見や懸念もあったと思います。
これに対して、折れるのは簡単。でも折れちゃうと、どこまでも妥協していくことになるんです。だから、うちのメンバーからは折れるなと言われる。これが冒頭に話した「ケンカ」ですね(笑)。
大谷:ある意味、共通の目的に向けた健全な議論だと思いますけどね。
佐藤:最終的にはどこかしかるべき場所に着地するんですよ。でも、僕たちが最初からハードルを下げたら、いいものはできない。これが僕の中ではとても大きな気づきでした。だから、「システムの人からはすごく嫌がられると思うけど、とりあえず持っていくか」みたいなこともけっこうありました(笑)。
大谷:UXとしての満足度はどうですか?
佐藤:チームと話した限りでは80%くらいは実現できた。みんな覚えているはずですが、ローンチ直前の数ヶ月で使い込んで、磨き上げて、相当精度を上げられたと思います。
残りの20%もUXやインタラクションというよりは、どちらかというと機能面での課題だし、デジタルネイティブの方に使いやすいものに成長させるための伸びしろですかね。