銀の弾丸はない - 偶有的複雑性と向き合うためのログラスのEnabling & Platform戦略

こんにちは。ログラスでVP of Engineeringとしてエンジニアリング組織全体のマネジメントをしております、いとひろ@itohiro73と申します。

前回、「銀の弾丸はない - 経営の本質的課題に向き合い続けるログラスのプロダクト開発」と題して、ログラスのプロダクト開発がいかに本質的課題と向き合ってきたか、そしてこれからどのようなチャレンジが待ち受けているのかを書きました。

今回は、「本質的な課題」を解くために本質的な複雑性に付随して存在する、「偶有的複雑性」について、開発組織としてどのように向かっていこうと考えているのかを記します。

前回の記事で引用した、『人月の神話』(Frederick P. Brooks,Jr. ,丸善出版,2014)という書籍にも収録されている論文(Brooks, Fred P. , "No Silver Bullet -Essence and Accident in Software Engineering", 1986)で語られている、「銀の弾丸はない」という内容について、今度は「偶有的複雑性」という観点からお話ししたいと思います。

銀の弾丸はない」の論文のサマリーでは、ソフトウェア開発における本質的な作業というものは「抽象的なソフトウェア実体を構成する複雑な概念構造体を作り上げること」にあるという点と、偶有的な作業として「抽象的実在をプログラミング言語で表現し、それをメモリスペースとスピードの制約内で機械言語に写像すること」が含まれている、と記されています。

ここで書かれている抽象的な表現を図示化しつつ、これら本質的作業/偶有的作業に含まれる複雑性を解消していくための活動をそれぞれマッピングしてみると、下図のように整理できます。



ログラスという開発組織は、これまで「本質的な複雑性の解消」と「偶有的な複雑性の解消」の両方を自律的なアプローチで解決してきた組織だと考えています。

本質的な複雑性と向き合うアプローチ

例えば本質的な複雑性と向き合うため、創業期からドメインエキスパートでもあるPO(現CEO)を巻き込んでドメインモデリングを行い設計・実装へと落とし込むような開発をスクラムのプロセスを通じて行なってきました。そして、リソースの少ない中でお客様の価値になるものをつくり届けるために、開発アイテムを「魂・骨・肉・皮」というメタファーでグループ分けし、最初はとにかくケズりまくりながらも「魂」となるものを作ってきました。

www.youtube.com

また、プロダクトが一定程度受け入れられたフェーズにおいても、顧客に価値を届ける・アウトカムを創出するというところにフォーカスをするために、機能リリースを目標とせずに「お客様から感謝の言葉が届く」という目標を掲げ、そのためにどんなことができるかを泥臭く仮説検証を回しながら開発したり、要望をそのまま取り入れるのではなく、その裏に潜む本質的なイシューは何なのかを分析し、そのイシューに対してのソリューションを提供するといった動きをしてきました。これにより、いわゆるビルドトラップにハマることなく、ユーザーにとって価値ある機能を届けるための本質的な複雑性に向かうことができてきたと言えると思います。

www.youtube.com

偶有的な複雑性と向き合うアプローチ

そしてログラスは、上記に述べてきたような本質的な取り組みを最大限推し進めていくためにも、偶有的な複雑性の解消にしっかり向き合ってきた開発組織でもあります。約3年前、スタートアップのアーリーステージという非常にリソースが限られたフェーズであっても、Angular => Reactのリアーキテクチャを数ヶ月間、新規開発を止めずにやり切るという離れ業も実現しました。

note.com

日々の活動に組み込まれた取り組みとしては、例えばライブラリを毎週アップデートする仕組みを作ったり、リファクタリングを日々行なっていたり、技術的負債を解消したり、ビルドやデプロイプロセス、リリースフローを改善したり、監視やロギングの整備、セキュリティ向上、データ分析の基盤整備、非同期基盤の整理など、さまざまな取り組みを自律的かつ高いレベルでこなしてきました。

www.youtube.com

 

そんなログラスであっても「偶有的複雑性」への対応は一筋縄ではいきません。

実際ここまで述べてきたように、技術的品質の改善や開発生産性の改善など、「偶有的複雑性への対応」を当たり前のようにこなす。それがログラスの開発組織の創業期から積み重ねてきた開発文化の強みだと言えます。

このような芯となるカルチャーはログラスのTech Valueである「Update Normal」の副文に、大切にしている活動原則の一つとして「技術的卓越性の追究と還元」という文言で記されています。

ログラス開発組織のTech Value: Update Normal

そんな中、ログラスのプロダクトは提供開始から約3年半が経ち、事業としても急成長をとげ、より多種多様な業種・業界のお客様に導入いただき、ご活用いただいています。

 

サービスの急成長 出典: https://www.loglass.co.jp/3rd-anniversary

このようなプロダクトの急成長に際しては、「成長痛としての偶有的複雑性の増加」が顕著に見られます。わかりやすい一例としては、テナント数の増加と扱う会計明細データ量の増加、ユースケースの複雑化に伴って特定のユースケースにおけるパフォーマンス劣化が起きるといったことが挙げられます。また、今後起きうる可能性のある事象としては、マルチプロダクト化を推し進めていくにあたって、アーキテクチャ上の制約により本質的価値の提供スピードが鈍化してしまうような懸念もあり得ます。

このような偶有的複雑性への対応が後手にまわらないためにも、ログラスでは「本質的な複雑性」に向き合い続ける「プロダクト開発」の領域と、「偶有的複雑性」の解消に軸足を置く「Enabling & Platform」の領域を明示的にわける組織体制を置く戦略を取ろうとしています。

実は、このような形で「偶有的複雑性」に対処する組織を明確に分けるのには、デメリットも存在しています。それは、境界を設けてしまうことによる、「私たち」「あなたたち」という分断が起きてしまうことです。そのような分断が起きないように、我々が向かう先は業務分掌としての組織図とは違う、仕事を進める有機的な組織としてのあり方が存在することも示していく必要があると思っており、以下のような図も開発組織全体で向かっていく先の構造として折に触れて示すようにしています。

この図では、「PdM」「デザイナー」「プロダクト開発」「Enabling & Platform」といった職務分掌を表す組織図ではツリー状の組織構造になっている各専門領域の人員たちが、どのように有機的にチームを構成して日々のプロダクト開発へと向かっていくのかを示しています。

有機的な組織構造(通称: 飴玉図)

この図に示しているように、Enabling & Platformの領域に軸足を持つ人員は、将来的には開発チームの一員として同じ目標を共有しながらイネーブリングや基盤作りも行なっていくことを想定しています。

しかしながら、現時点でいうと、上記の飴玉図の中でいうCREやEnabling & Platformの領域は、まだまだ人数規模が十分でないため、図で示しているような各チームに入り込んでいくような体制はとれていません。しかし、いずれはこのような状態につながっていくためにも、まずは「偶有的複雑性」に組織としてしっかりと向き合える体制を作る、そんな意思込めが必要であるという想いから「Enabling & Platform部」という組織を明確に組成しています。

さて、このような整理した図や概念を説明すると「ログラスはすでにもう十分整っている」という印象を持たれてしまうかもしれませんが、そうではありません! ここに記した概念図は、「このようになっていきたい」という意志を込めた状態目標と捉えていただけるとありがたいです。今現在は、まだまだこのような状態になりきれていないというのが実情です。

このEnabling & Platform領域では、これから取り組んでいかなければいけないチャレンジがさまざま存在しています。そして組織としてもこの領域は「まだ立ち上がったばかり」なので、ここの領域でのチャレンジに取り組んでみたいという強い意志を持ったエンジニアを絶賛大募集中なのです!

この記事を読んでちょっと興味を持ってくださったあなたにこそ、そのようなチャレンジに取り組んでいただきたいと思っています!!

今後Enabling & Platform領域で解決していきたい偶有的複雑性への対応

Enabling & Platformの領域では、偶有的複雑性に対応していくための、プロダクト開発チームのイネーブリング・基盤開発、それぞれの文脈で解決していきたい課題がてんこ盛りです。

  • マルチプロダクト化に向かっていくためのアーキテクチャ設計と実装推進
  • 開発生産性の高さを維持し続けていくためのケイパビリティの向上
  • 関数型パラダイムや代数的データ型を活用した安全で堅牢なコーディングの推進
  • プロダクト開発チームがオーナーシップをもってサービスの信頼性向上に取り組めるようなイネーブリング活動や、オブザーバビリティ向上のための基盤整備
  • 取り扱うデータの種類も量も増えていく中での、大量データに対するより最適なデータ構造や集計方法の設計、高性能計算の実装
  • セキュリティや品質を向上し続けるためのライブラリやミドルウェアの継続的アップデート
  • Enterprise Readyな非機能要件の実現
  • 事業モデル・プライシングモデルに最適化したクラウド基盤・アーキテクチャ設計

We are hiring!!

現在ログラスのEnabling & Platform領域では、具体的に以下のようなポジションで積極採用中です!

本記事でログラスのEnabling & Platform領域に興味を持っていただけた方は、ぜひお気軽にいとひろ@itohiro73 にメンションでもDMでもいいので話しかけてみてください。

 

hrmos.co

hrmos.co

hrmos.co

hrmos.co

hrmos.co

hrmos.co