CARTA の「技術力」はあなたのイメージする「技術力」ではないかも

CARTA における「技術力」というのは、一般的にイメージされているものよりも非常に広い意味を持っています。本エントリでは、こうした独特な「技術力」を少しでも感じていただけるようご案内いたします。 ナビゲーターは CARTA HOLDINGS CTO 室(兼 Lighthouse Studio CTO)の海老原 @co3k でお送りいたします。

まず入口としてCARTAのエンジニアが目指すVisionに触れていただきます。「フルサイクル開発」における日々の営みを想像していただきます。そして「CARTAにおける技術力」の、その特殊性について目の当たりにいたします。


TL;DR

CARTA における「技術力」は、専門的な技量にとどまらず問題の本質を見極め、価値を届けるために必要な技量を包含しています。

  • 技術力
    • CARTA における技術力は、単なるコーディング能力や技術知識の蓄積を超えたもの
    • 問題の本質を見極め、持続可能な価値を提供するための広範な能力を指す
  • CARTA Tech Vision

    • CARTA のエンジニア組織としての価値観や将来像の指針
    • 技術を使用して創造的な仕事に人々が取り組める世界を作ることを目指す
  • フルサイクル開発

    • 開発から運用までをエンジニア自身が担うプラクティス
  • 技術力評価会

    • エンジニアが相互に技術力を評価し合う制度
    • 「実現力」と「改善力」の2つの観点から評価
  • まとめ

    • CARTA における「技術力」は、個々のエンジニアのスキルセットを超えた組織全体としての強みと成長の源泉である

CARTA Tech Vision

まず大前提として…… CARTA のエンジニア組織としての価値観や将来像の指針となる「CARTA Tech Vision」というものがあります。作成時の想いなどは、 CARTAのエンジニア組織、ひいてはテクノロジーに対する将来への指針として、CARTA Tech Visionを作成しました - CARTA TECH BLOG をご覧ください。

現時点の CARTA Tech Vision は以下の画像のとおりです。

個々の未来像、価値観、習慣についての詳細な解説も公開されている(CARTA Tech Vision)のですが、ここでは極力平易な文章で、かいつまんで説明していきますね!

未来像: 「人にもっと、創造的な仕事を」

人々が考えて物事を実現したり解決したりする能力は素晴らしいものです。そうした、ある意味では 人にしかできない仕事に人々が取り組めるようにする世界を、技術の力でもって作り上げていこう、というわけですね。

価値観

がんばって一行解説していきます。

  • 本質志向

    • 表面的な問題ではなく根本的な問題を特定し、徹底的に調査、議論、実行、そして振り返りをおこなうことで、表面的な解決策ではなく根本的な解決策を講じられていたかを自ら追求します
  • 共に信頼し、共に創る

    • ほとんどオリジナルの文の抜粋になりますが、 「セールスも、開発も、運用も、経営者も、全員一緒になって価値提供をするために信じ合い、任せ合い、協力し合う」 ということに尽きます
  • 価値を届け続ける

    • 価値は一度届ければそれで終わりではありません。 継続的に価値を届け続け、検証し続け、改善し続ける ことで、正解のわからない問題についてより最適なアプローチを図っていくということです

習慣

引き続きがんばって一行解説していきます。

  • 質は速さ

    • 質とスピードは相反するものと考えられがちですが、実は両立すること、そして、むしろ質の低さがスピードの低下を招くことも多いため、 質にもしっかり投資して、速さというリターンを手に入れよう ということです
  • 推測するな、計測せよ

    • 「原因はこれだ」「どうせこういう問題があるはずだ」と決めつけて解決に向かったものの、実際には見当外れだった、ということは少なくありません。 推測だけで解決にあたるのではなく、まずはその仮説を検証する というのが肝心です
  • 毎日試す

    • 日々少しずつ改善し、評価し……を繰り返していく、つまり、 毎日改善サイクルを回し続ける ということです。なかには失敗もありますが、このサイクルの下では 小さく、早く失敗することができるため、次なる改善へと素早く繋げられます
  • 先人に感謝し、還元する

    • ソフトウェアエンジニアの世界は、 ノウハウやコードをオープンに共有し合う ことによって、業界全体として高められてきました。そのおかげで、数年前では困難だった課題も、今日では容易に解くことができるようになっています。この事実を忘れずに、私たちもまた事業活動のなかで得た知識や経験を業界に還元していきます
  • 最良のコードは、コードなし

    • 「コードを書く」ことは目的ではなく、あくまでも 「問題を解決する」ことが目的 です。問題を徹底的に分析し、根本的な解決を図った結果、表面的な問題解決のためのコードを書く必要がなくなった、ということがままあります。 必ずしも「コードを書く」という手段に固執しないように しましょう……という意なのですが、誤解されがちな項目であり、改善の余地ランキング堂々の 1 位 (海老原調べ) です

フルサイクル開発

CARTA のエンジニア組織は社外から「フルサイクル開発」というプラクティスを実践していることでも知られています。このプラクティスは Netflix 社が提唱した Full Cycle Developers がベースになっています。

CARTAのフルサイクル開発に対する考え方は、CTO の鈴木 (@suzu_v) がわかりやすいエントリ(CARTAとフルサイクル開発者 - CARTA TECH BLOG)を公開しているのでそこから引用していきます (強調は引用者)。

Netflix Full Cycle Developers

要約すると、以下のように示されています。

  • 「開発したものが運用する」 のがフルサイクル開発者。責任を外部化せず、直接のフィードバックループを開発チームに内在させる。ソフトウェア開発者が設計実装のみならず、 サポート、デプロイなどのイテレーションをすべて自分でこなしている

  • 運用のペインは開発者自ら解消する

  • ソフトウェア開発者はツールのちからにより、ライフサイクルを最適化させられている

  • ライフサイクルを最適化することにより、 サイロを解消 し、 学習とフィードバックを最適化 して、 価値のデリバリー速度を高める のがフルサイクル開発である

フルサイクル開発者は、コードを書くこと(開発)だけでなく顧客への価値提供が仕事です。 CARTAでは論理的に考え、あるべき仕組みを作れることがエンジニアの振る舞いとして求められています。


技術力評価会において評価される「技術力」

この Tech Vison や「フルサイクル開発」という価値観を踏まえて、じゃあ個々人のスキル評価機会であるところの「技術力評価会」では、いったい何を評価されるのか、という話に移っていきます。

技術力評価会とは

ちょっと待って、「技術力評価会」ってそもそも何でしたっけ?

端的に言えば、以下のような評価制度です。

  • 他部署のエンジニア2名に90分で半期の仕事を説明

  • なぜその仕事をやったのか・どのようにアプローチしたのかを共に議論する

  • 後日、フィードバックレポートが提出され、事業部評価を加味して評価確定

フィードバックレポートは、GitHubで全社に公開され、学びが循環するようになっています。仕組みの詳細や狙いや前CTO makogaの5分でわかる技術力評価会 にまとまっています。


技術力評価会において意識される「評価軸」

さて、技術力評価会がどういう催しなのかご理解いただけたところで、本題です。

評価者が評価をおこなうときに意識される指標として、「評価軸」というものがあります。これは一種のガイドラインのようなもので、ものすごく単純化してしまえば、この「評価軸」に合致していれば合致しているほど「技術力」は高く評価できる傾向にある、というものです。

この「評価軸」は、「実現力」と「改善力」のふたつの観点から成っています。

それぞれ詳細を見ていきましょう。


実現力

何が課題で何が必要と考えたか

これは Tech Vision における「本質志向」と強くリンクしていますね。 -  課題をしっかり見つめ、精査する こと - 表面的な課題の解決だけではなく、根本的な解決になるよう努力する こと - それらに囚われすぎないようにすること

つまり、考えすぎもダメだし、考えなさすぎてもダメ ということです。

構築・運用したシステムは妥当か

端的に言えば「その場限りの誤魔化しではなく、必要な価値を届けられているか 」をみています。

これは当たり前じゃない? って思われるかもしれないんですけれど

「これそもそも要件満たしてなくないですか?」 「サービスイン当初の規模感なら耐えられるかもしれないけれど、すぐに破綻しますよね?」 「これは特定のユースケースしか対応できないですよね?」 「この辺セキュリティ脆弱性ないですか?」

など、技術者視点からするとそれとわかるけど、できあがったものを表面的に見るだけでは見過ごされてしまう問題って数多くあるわけですね。 そうした問題に対して、見かけ倒しの解決策で逃げるのではなく、根本的な解決策を講じるなどして、しっかりモノを作れているか、必要な価値を届けられているか 、を見ています。

プロジェクトの進め方は妥当か

現実にはなかなか「当初の予定通りに作って終わり」というわけにはいきません。プロジェクトを進めていくうちに新たに明らかになる課題というのは出てくるものです。関係者やユーザーへのインタビューなどを通じて軌道修正することもあるでしょう。私たちはフルサイクル開発の実践者として、このような 進行過程での課題発生や計画の変更に柔軟に対応するプロジェクトの進め方 をすることをもまた求められています。


改善力

システム的な改善は妥当か

システムを運用、改善していくにあたり、「スムーズな運用や改善を阻害するポイント」「オペレーションミスを誘発しやすいポイント」というのが明らかになってきます。 ひとつひとつは「頑張る」「気をつける」で済むような小さな痛みでも、積もり積もれば大きなビジネスインパクト に繋がりかねません。 目先の新しい施策のみにとらわれずに既存システムのこうした芽を丹念に摘んでいく ことも大事です。

ビジネス的な改善への貢献は妥当か

ただ闇雲にものづくりをするのではなくて、 論理的にビジネスをとらえ、自分が実行する施策をしっかりと実効性のある仮説検証のサイクルに組み込む ことが肝心です。こちらは Tech Vision における「価値を届け続ける」「価値を届け続ける」とリンクしていそうです。


まとめ:CARTA における「技術力」

これまでに見てきたように、 CARTA における「技術力」というのは、コーディング能力や技術知識の蓄積などエンジニア職としての専門的な技量(これを「狭義の技術力」などと呼んで区別することもあります)だけに留まらず、問題の本質を見極め、価値を届けるために必要な技量すべてを包含しています。

これらは「CARTA Tech Vision」において方向性が示され、「フルサイクル開発」の発想により具体化され、「技術力評価会」の機会において広く確認されています。

チーム内外との信頼関係の構築、共同での創造、そして学び続ける姿勢によって醸成され続けてきた CARTA の「技術力」は、日々の業務だけでなく、CARTA の持続的な成長とイノベーションを支える根幹となっています。

これは、もはや立派な文化資本であり、単に個々のエンジニアのスキルセットを超えた、組織全体としての強みと成長の源泉であると言っても決して言い過ぎではないでしょう。


合わせて読みたい

techblog.cartaholdings.co.jp

techblog.cartaholdings.co.jp