最近、社内で若手のプレゼンを見ていて大変気になったことがあったのでメモ。
先に結論
我々IT業界はとても変化の早い業界として知れ渡っています。
その中で、新技術などにアンテナを張って学習し続ける姿勢が大変重要になってきます。
しかし、この新技術へのアンテナという面で技術者の独りよがりになってしまうことが多々見受けられます。
それは・・・・ビジネス視点の欠如です。
新技術を取り込んだ結果、顧客にどのような価値を提供できるのか。という観点が致命的に抜けてしまいがちです。
例えば「この新しい技術を取り入れればコーディングの生産性が40%向上します!」みたいな利点があったとして、この向上した40%分は顧客は恩恵を受けることは基本的にはないわけです。
※なぜなら人月単価で計算され、生産性が上がろうとも期間を変えるベンダーは皆無だから
要は「自分が興味のある技術をやりたい」と言っているに過ぎないということです。
顧客からすれば安全にシステムを導入することの方が大事なので、ほどほどに枯れた技術を使ってくれた方がいいわけです。
ビジネス視点の欠如とは
我々技術者は、会社に所属していようがフリーランスとしてやっていようが、システムを顧客に使ってもらうことで対価を得ます。
ということは「顧客にどのような価値を提供できるか」が全てということになります。
若手技術者に欠けているのはこの視点です。
顧客は技術では選ばない
技術指向の若手技術者は新技術に大変興味を持っていて自己学習にも余念がありません。
自社の社員の話ですが、以下のような話をよく持ってきてくれます。
「この新技術を使うことで、既存のシステム開発のコスト比で40%削減できます。」
「今後の改修にかかるコストがデプロイの効率化によって50%削減できます。」
「新しく登場したフレームワークを使うことで、既存の資産を流用した開発が可能になります」
それぞれ何を言っているのでしょうか。
この新技術を使うことで、既存のシステム開発のコスト比で40%削減できます
スマホアプリの開発をしていたのですが、今まではXamarinというiOSとAndroidのクロスプラットフォーム開発が可能なフレームワークを使っていました。
これをマイクロソフト社が新しく出してきた「Blazor」を社内的に導入しようと言ってくれました。
開発コストを40%削減できると言っていたポイントは
- .NET COREが持っているライブラリを再利用できるから開発効率が高い
- iOSとAndroidのクロスプラットフォーム開発が可能。Xamarinだと各OS用に若干のカスタマイズが可能
こんなところでした。残念ながらこの提案は却下しました。
その理由は
- 再利用する.NET COREのライブラリを持っていない
- Blazorの学習コストが高すぎて、40%削減どころでは回収できない。
(しかも40%というのはコーディングのみの話であり、効果はより部分的となる) - Blazorの歴史が浅すぎて、顧客に提供するには早すぎる。しかも実験的プロジェクトと位置付けている。
- Xamarinでやってきた技術者はBlazorにしたがらないと思われる。
同じC#だが、スマホアプリはIDEのUI操作の学習が大変。個人の興味だけで導入するには厳しい。
ということで、この提案では
- チーム全員に展開することの難しさ
- 製品としての安定性の低さ
がの視点なかったということです。コーディングが40%向上したところで、設計やテストは従来通りということでは顧客に価値を提供できるほどのコストカットはできません。
今後の改修にかかるコストがデプロイの効率化によって50%削減できます
Dockerが面白そうだ。という話を聞きつけて持ってきてくれた話です。
うちはアプリ開発がメインなんですが、導入環境をDockerにして提供しましょうという話でした。
アプリリース作業とかが大変なので動作環境をDocker上に構築してパッケージ化して配置すれば、リリース後の作業が大幅に減ります。
例えば2名体制での構築作業がなくなるとか、テスト済みの設定でそのままリリースできるとか。
確かにって感じなんですが、大事な観点が抜けていました。
- 別のシステムも載っているので、こちらが勝手にDocker化して配置することはできない
- 別ベンダーの基盤チームはDockerの管理ポリシーが無いため導入できない。(金融系顧客が多いので枯れた技術を使いたいし、物理サーバで徹底的に要塞化したい)
- クラウドに移行しているのでDockerは最早不要。やりたいことはクラウドサービスで実現可能
ということで、この提案では
- 自分の作業している範囲外のことを考えられていなかった
ということになります。
ただ、Dockerについては開発チーム内で使っています。
新しく登場したフレームワークを使うことで、既存の資産を流用した開発が可能になります
Blazorと似たような話です。
結局、新規のフレームワーク故に「既存の資産」というものがなかったのでこのメリットは享受できないことがすぐにわかりました。
これは「新しく登場した」というのが、旧版からの大幅アップデートで生まれ変わったという文脈で語られており、それを使っていれば後方互換を100%保っているため既存資産の流用が可能ということです。
ということで、この提案では
- 強調されているメリットだけを見ていて、現状を考えていなかった
こんなところです。
大事な観点は「ビジネスにどんな価値を与えるか」
技術で効率化がどうのこうのではなく、どのような新ビジネスにつながるか、他社との競争との優位に立つかという観点です。
つまり自分が作ってるアプリで新技術を使うとかいうよりも、全面的にシステムを再構築しましょう。みたいな話の方が興味を引くということです。
新技術はとても素晴らしいものです。その取り組み自体は大変な価値があります。
大事なのは、新技術を使ってもっと大きな盤面を見るようにしましょうということです。
短めの記事にまとめましたが、以上です。