Slide 1

Slide 1 text

技術で創る事業成⻑

Slide 2

Slide 2 text

藤倉 成太 株式会社オージス総研でシリコンバレーに赴任し、現地ベンチャー企業との 共同開発事業に携わる。帰国後は開発ツールなどの技術開発に従事する傍ら、 ⾦沢⼯業⼤学⼤学院⼯学研究科知的創造システム専攻を修了。2009 年に Sansan 株式会社へ⼊社。現在は CTO として、全社の技術戦略を指揮する。 Sansan 株式会社 執⾏役員 CTO

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

法 ⼈ 向 け 名 刺 管 理 サ ー ビ ス 個 ⼈ 向 け 名 刺 ア プ リ

Slide 5

Slide 5 text

技術的負債とは何か?

Slide 6

Slide 6 text

技術的負債 技術的負債(英: Technical debt)とは、⾏き当たりばったりなソフトウェアアーキテクチャと、余裕の ないソフトウェア開発が引き起こす結果のことを指す新しい⽐喩である。「設計上の負債(design debt) 」とも⾔う。 (中略) 開発の中で先送りされるのは、⽂書化、テストコードの記述、ソースコード中の積み残し(TODO)項⽬の 解決やコンパイラの警告、静的コード解析ツールの解析結果への対応などである。その他にも、技術的 負債の例として、組織で共有されない知識や、複雑すぎて変更が難しいコードなどがある。 出典: フリー百科事典『ウィキペディア(Wikipedia)』

Slide 7

Slide 7 text

サービス事業における技術的負債 事業開発においては、以下の理由によって技術的負債が発⽣する場合がある。 開発チームの能⼒ 開発初期のチームの能⼒に拠るもの。スキルレベルや⼈数など。 現在の時間を⼿に⼊れる 新しい事業が成功する確証がないという前提において、現在の開発を最⼩限の⼯数で収めるために開発 的な負債をする。 時間経過による負債化 開発技術は常に進歩するため、以前に開発したものの多くは負債となる。オンプレミスに最適化された 設計や、⾔語の古いバージョンでよく使われた書き⽅など。

Slide 8

Slide 8 text

返済計画によくある失敗 技術的負債の返済による効果を定性的に説明しようとして失敗することがある。「この設計がよくない ために開発効率が悪い。改善すべきだ。」この動機付けでは、返済という⾏為に対するリターンが曖昧 すぎる。エンジニアによる開発は投資⾏為であり、そのリターンには定量的、ないしは客観的事実に基 づく⽬的や結果測定をしたい。 現在のベストプラクティスによる改善をしたとしても、それ⾃体が数年後の負債になることも注意され たい。設計や実装技術は常に進化する。現在の負債を将来の負債で返済する⾏為を正当化することは困 難。

Slide 9

Slide 9 text

事業フェーズと返済計画

Slide 10

Slide 10 text

前提となるリソースを確保する(⽴上げ初期) 前提として必要なものは開発リソースと技術⼒。 採⽤を頑張るしかない。⾃社のエンジニアを採⽤することはエンジニアにとっても重要。エンジニアが 率先して採⽤に貢献する⽂化を作る。⾯接担当はもとより、リファラル採⽤や採⽤イベントへの貢献な ど。 開発チームが⼤きくなるのと同時に、(幸福なシナリオにおいては)事業規模も拡⼤する。それに伴っ てバックログも成⻑する。事業成⻑よりも早く、強い開発チームを作らなければならない。採⽤による 効果が出るまでの間は、既存メンバーの技術⼒を⾃主的に⾼めていく。社内外の勉強会などを通じて成 ⻑し、同じチームでのやれることを増やす努⼒はしておくべき。

Slide 11

Slide 11 text

機能開発による返済を計画する(成⻑期) 事業の成⻑を⽬的とした技術的負債の返済を計画する。 特定の機能開発にあたり、既存の設計を⾒直す必要がある場合に実⾏する。事業を成⻑させるためには 返済をせざるを得ないため、取り組みやすい。これは、返済による効果を定量的ないしは、客観的事実 に基づいて説明する有⼒な⽅法。 「事業拡⼤のために xxx プロジェクトを開始します。そのためには、既存の設計を変更しなければ実現 が不可能です。つまり、プロジェクト完遂にかかる期間は n くらいです。」

Slide 12

Slide 12 text

⾮機能要件を満たすための返済(成⻑期) 機能要件ではなく、⾮機能要件を満たすための返済プロジェクトを⾏う。 ⾮機能要件とは、処理性能やセキュリティ要件が該当する。事業規模の拡⼤に伴って、既存機能は徐々 に性能が劣化する。処理内容やデータ量に⽐例することが多いため、過去の実績から将来を予測して、 どの時点で解消されていなければならないかを⾒通す。また、顧客からより⾼い信頼を得るためにセ キュリティレベルを上げなければならないことがある。これらのタイミングを返済のきっかけとする。 この場合も、既存ないしは将来の顧客利益が直接的な⽬的となっていることに注⽬する。ただし、期待 される効果は予測に基づくため、正確な予測値を出さなければならない。

Slide 13

Slide 13 text

組織的返済計画(拡⼤期) 開発⼯数の⼀定量を改善活動に使う。 開発チームが⼤きくなり、実績が積み上がってきたタイミングで導⼊するのが効果的。既存メンバーの ⾃⽴性を⾼めることを⽬的とした⾃らによる改善活動とすることで、社内エンゲージメント向上を図る。 離職率の低下や外部露出による技術ブランド向上など、組織的改善を⽬的にすると良い。 この取り組みは事業貢献に対して⽬的が間接的になるため、導⼊には⼯夫が必要。

Slide 14

Slide 14 text

経営判断による⼤規模リアーキテクチャ 経営上の様々な事情を鑑みて、アーキテクチャレベルでのリファクタを実施する。 この種の判断は通常、ハイリスク・ハイリターンなものになる傾向が強い。従って、抱えている負債が 明らかに経営を圧迫することが予測される場合か、将来の⾮連続な事業成⻑のために必要不可⽋である と考えられる場合に⾏われる。 頻度は数年に⼀度程度。

Slide 15

Slide 15 text

Sansan Builders Box – 技術サイト https://buildersbox.corp-sansan.com/ Sansanのものづくりを⽀える技術やデザイン、 プロダクトマネジメントの情報を発信する場