狩野モデル - Wikipedia という製品品質モデルがあります.顧客がサービスやプロダクトに対して求める品質を5つにカテゴライズしたもので,その中でも特に「当たり前品質」という,あって当然だと顧客が認知していて,欠けていれば不満に思う品質と,欠けていても特に何とも思われないが,充たされていると顧客が喜ぶ品質という対象的な2つの品質があります.
もちろん,「FOLIO」というお客様向けのプロダクトと,それを支える業務システムである「PORT」という分類の背景には, System of Engagement (SoE) と System of Record (SoR) によるバイモーダル戦略 があったわけです.
しかし,今年の1月~3月ごろにかけて, FOLIO と PORT で開発チームを分けたり,開発サイクルを分けてみるという試みをしたのですが,結論から言うとうまくいきませんでした.ホットで巨大なプロジェクトが立ち上がり「PORT というプロダクトの開発」にリソースが割けなくなったという不可抗力の事情もありましたが,お客様の個人情報を取り扱う API や, FOLIO でお客様にご提示するテーマ一覧を CRUD する API などを始めとする多くのコンポーネントを FOLIO と PORT の両方が参照しており,既存のシステムを簡単には二分できないという,より本質的な課題にも直面しました.
バックエンドエンジニアのサブグループ化
ここまでで,「プロジェクトベースの組織が主になれば組織の顔ぶれは安定しない」という問題と,「SoE と SoR によるバイモーダル戦略を用いてシステム全体を二分しようとしても綺麗な境界を引くことはできない」という問題に直面したわけですが,特にこの影響を受けていたのばバックエンドシステムエンジニアたちでした.今年の10月の時点でバックエンドエンジニアは16人いたのですが,この人数は "Stable Team" として運営するのには多すぎるし,バックエンドシステムの守備範囲の広さを考えても,「全員で全部のシステムを理解する」ことは難しいと言わざるを得ませんでした.
そこで着目したのは,別段新しいことではなく,「ドメイン境界に向き合う」ということでした.Scala 関西 Summit 2018 でのセッションでもご紹介した以下の図から,そんなドメイン境界を垣間見ることができます.*5FOLIO と PORT という二分はこの図には現れていませんが,各サブドメインが必要に応じて社内向けに特有の機能を提供しましょう,という意識は今でも健在です.
本稿は,10月のあるタイミングで社内に向けた啓蒙活動の際に書き出した『組織づくりを考える上で知っておく必要のある概念たち』という wiki の内容を素にしています.私が今の仕事のコンテキストで特に意識しているトピックやセオリーを,エンジニアリング組織構築に馴染みの無い人へ動機なども含めて説明することを主眼に記述しています.*1 この記事の内容は所属する企業の公式見解ではなく,個人的に仕事をする上で大事にしていることにとどまっていることにだけご留意ください.
例えば上述の図の場合,赤い ☆ の部分に属しているプロダクト A のエンジニアは,プロダクトAのマネージャーとエンジニア組織のマネージャーの両方から評価や指示を受けたりしますが,マネージャー同士の評価や指示が矛盾したときにはどうすればよいかはどう判断すればよいでしょうか?また,メンバーの配置はどちらのマネージャーが主導権を握ればよいでしょうか?決まりが明確になければ社内政治や縄張り争いのようなものに発展してしまうのも想像に難くありません.
System of Record (SoR) とは,出来事が正しく起きることを保証し,起きた出来事を正確に記録し管理するためのシステムを言います.
金銭管理や,法令や規制に基づいた報告義務のあるようなドメインなどがこれに当たります.
SoE と比べれば,情報の取りこぼしやシステムダウンはより致命的であり,リスクを抑えて安定稼働することが求められます.
事前に要件を明確化してコーナーケースなどを慎重に考慮することが求められるので,いくら「アジャイルなソフトウェア開発」を標榜しても,大きな設計を洗い出し*5,正しくシステムが稼働するかの検証にも力を入れる必要があるでしょう.
バイモーダル戦略
SoE / SoR の特性を理解し,開発するプロダクトや,システムを構成する全体の中でも特定のエリアの性格に対応したチーム構成やプロセス設計などのアプローチを取る戦略を「バイモーダル戦略」といいます.比較的大規模なシステムを開発するとき,そのシステムの中にも SoE の特性を持つ部分と SoR の特性を持つ部分があるので,そのことを自覚しましょう,という話です.
中でも、社員と社長の関係という観点では、去年は CEO の甲斐ががオフィスをフラッと歩いて社員と気軽に話して事業のビジョンなどを共有することができたものが、メンバー社歴やオフィスの中のよく活動する場所、仕事の内容によっても甲斐と慢性的に距離のある立ち位置にいる社員が出てきたのも事実です。もちろん、甲斐もそのことは理解しており、各メンバーとコミュニケーションが取れるように考えたり動いたりしてくれますし、実際お昼時にオフィスの真ん中でメンバーの皆とカレーを食べている姿もよく見かけるのですが、「気をつける」のではどうしようも出来なくなるのが、「100人の壁」の特徴のひとつなのかもしれません。
理想を述べれば、社員の一人ひとりが社長のビジョンを理解し、共感できることが大事であることは疑いようがないでしょう。特に、今年の FOLIO は LINE との資本業務提携を発表したり、新しいサービス「おまかせ投資」の提供を開始したりと、会社としてのこれまでにない動きも多かったので、今、社長がどのようなことを考えていて、自分の仕事にはどのような意味があるのか?をメンバーがより深く知る機会を設けることは非常に重要でした。
その理解を助けるための試みとして今年の7月から始めたのが、CEO Radio です。
CEO Radio のきっかけ
CEO Radio の社内向け配信サイト (2018年12月現在)
CEO Radio は1回10分~20分程度、CEO の甲斐と、聞き手の私、そして時には FOLIO の様々なメンバーが何らかのトピックについて話したものを、社内でメンバーが好きなときに聴ける音声コンテンツです。
この CEO Radio の始まりは、6月のとある社内の食事会にて、社長とバックエンドエンジニア数名で、「最近の会社の課題」に関する話題になり、上述のような課題をメンバーが挙げた際に、私が言及したのがきっかけでした。
FOLIO のメンバーは原則として、ジョインする際の選考プロセスの中で必ず CEO の甲斐と話すようになっており、メンバーの多くが甲斐の「世の金融の常識を変える!」というビジョンに共感して参画しているのではないかと思います。それでも、甲斐の考えを、入社時や偶発的なコミュニケーションだけではなく社内の興味あるメンバーには継続的に伝えられるようにし、しかも形に残すことで将来ジョインするメンバーにも FOLIO の文化や価値観を知ってもらえるようにすることは有意義なのではないか、と考えたのが CEO Radio の始まりでした。
収録ソフトは、以前は QuickTime Player で収録して、特に編集もせずそのままアップロードという形にしていました。回を重ねるにつれて、収録後に一部カットが必要になったり、複数の音声ファイルを接合しなければならない需要も出てきたため、GarageBand で最低限の編集をするようにしています。やってみて改めて思うのですが、編集は凝ろうと思えばどこまでも手を入れられてしまうのですが、私の本業は別にあるので、時間を使いすぎないよう気をつけています。
FOLIO での、会社規模が大きくなってもビジョンや文化を組織の隅々まで浸透させるための取り組みについてご紹介しました。もちろん CEO Radio を聴くかどうかは社員にとっては任意ですし、このような取り組みで全てを解決しようとは考えていないからこそ、他の手段も使いながら組織のスケールアップに合わせた文化形成は引き続き頑張っていきたいと思っています。