(2019/4/10にver1を初投稿しました。今後きまぐれで文章の推敲や加筆をする可能性があります。)
#はじめに
私は東京大学の理系を卒業しながら、精神を病んで大学院を中退するなどいろいろあったものの中堅どころのSIerに入社し、気が付けば3年目になろうとしています。
東大からSIerというのは世間的には「落ちこぼれ」のレッテルを貼られて仕方のない経歴ですが、少なくとも私は今の会社に入ってよかったと思いますし、大きく成長できた、視野が広がったという実感があります。
…ですが、今の会社並びに日本のSIerに根本的な問題があり、日本が「IT後進国」と呼ばれている象徴であることも事実だと思います。
今回私は、**SIerはこの先生きのこれるのか?**という散々語られつくしたクエスチョンに対し、私の考えをまとめてみました。
もちろん全てのSIerが以下の問題を抱えているわけではないのは承知していますが、どの会社にもある程度近い問題点があるのではないかと思います。
※偉そうなこと言ってますがまだまだITに携わって高々2,3年の若造の駄文です。マネジメントや経営のことなど全く知りませんし認識のおかしい箇所も多々あると思います。何かありましたらご指摘いただけたら幸いです。
※SIerとはいってもあくまで顧客と直接関わりがあって提案ができるレベルを前提とした話です。下請けしか受注できないSIerや人売りSES会社の話ではありません。恐らくそういう会社は別のところにもっと深い問題があると思います。
#SIerの何が問題なのか?
よく「日本のSIerの技術力は低い」などと言われることがありますが、私の所属する会社に限れば決して低くはないと思います。
実際マネージャー層の方々もプログラミングを十分理解していますし、マネジメント技術、顧客の要件を引き出す力、業務知識だけでなく顧客周りの政治的動向にも詳しく、私では遠く及ばない技術を持っている方が多数いらっしゃいます。
では何が問題なのか。
以下の3つの問題点を私は考えます。
1. マネージャー層で新しい技術を理解している人が限られていること
2. 若手の持つ技術のアピール機会がないこと
3. マネージャー層と若手層が「顧客への提案可否」という観点で分断されていること
以上の問題点が改善されないと、いずれ下記のような状況になると考えられます。
マネージャー層が「自分の使い慣れた」技術に固執しそれを提案し続けていくことにより、結果として最新技術との乖離はますます大きくなる。当面は古い技術にも一定の需要があり、運用保守案件があるので収益が落ちることはないが、いずれはそれらのシステムも老朽化する。その時点で新たな技術を使った提案ができないと、パイを奪われてしまい収益を失っていくことになる。
(もっともこれはIT業界に限った話でもないですね。企業が一番成長できた手法に固執した結果、競争力を失っていく、これはまさに高度経済成長やバブルの成功体験のせいで逆に成長の止まってしまった日本の現状と同じではないでしょうか?)
では、3つの問題点についてもう少し詳しく書いてみます。
1. マネージャー層で新しい技術を理解している人が限られていること
マネージャー層(=提案できる立場の人)がかつて開発に携わり身に着けた技術は既に過去のものとなりつつある中で、トレンドな技術に理解のある人が非常に少ないことが一つ目の問題です。
私の会社では.NET Frameworkがまさに「古い技術」として台頭しており、それより先の技術となると詳しい人が一気に限られていくのが実情です。
他にも似たような状況にある会社は多いのでしょうか?
これはおおよそバブル期~2000年代に.NET Framework、もっと古いものではVB6なんかを使用したシステムが大量に開発され、その時代に開発に携わっていた人たちが現在のマネージャー層でボリュームを占めていることが根底にあるのではないかと推測しています。
単純な対策を考えてみると、全社的な勉強会・技術発表の場を設けたり、AWS認定試験やディープラーニング検定などの新しめの資格に対して大きなインセンティブを与えるなどが考えられます。
…ですがそもそもの話、彼らは稼ぎ頭であり、勉強に工数を割く余裕などそうそうありません。プロフィットにすぐに結びつかない行動を彼らにさせることは会社の減益に直結します。また、彼らは待遇も高く安定しているので無理にリスクのある行動をとる必要もありません。
したがって、マネージャー層に勉強させるのではなく、若手層が中心となって勉強し、それを波及させるというモデルが最も現実的かつ効果的であるという考えに至りました。
2. 若手の持つ技術のアピール機会がないこと
トレンドな技術を持つ若手がその技術をアピールできず、経営陣やマネージャー層への波及ができる状況にないことが二つ目の問題です。
私の会社でも、社員が各々どのようなスキルをどのようなレベルで持ち合わせているのか、会社全体で共有できていません。
また、仮に共有されていたとしても、大抵はその会社のマネージャー層が理解している「古い技術」だけです。AIやクラウドのスキルセット・スキルレベルが共有されることはまずありません。
したがって、若手社員はいくらクラウドを勉強しても、AIを勉強しても、トレンドなWEBフレームワークを勉強しても、誰もそれを評価してくれません。
そもそも、彼らがどのレベルまで勉強したのか、彼らの技術にどの程度の価値があるのか、「スキルレベルの尺度」を持ち合わせていないため、それがビジネスに生かせるかどうかという観点でまともに評価できる人がいません。
したがって、会社として何らかの**「スキルレベルの尺度」**を用意することは、経営層からすれば最優先で考えなければならない事項であると考えます。
3. マネージャー層と若手層が「顧客への提案可否」という観点で分断されていること
提案できる立場がマネージャー層に限られており、開発する役職(リーダーあるいはメンバー)がその領域から分断されてしまっていることが三つ目の問題です。
私の会社でも技術発表会なるイベントこそあれ、参加しているのはほとんど若手社員で、マネージャー層はあまり参加していません。また、そこで発表した内容をレベリングし、「どのレベルまで行けばビジネス的な提案に使えるのか」といった話し合いもありません。
これは、マネージャ層の人たちが『技術発表会は開発する人向けのイベントであり、提案する立場の人には関係ない』と考えてしまっているのでは、と思います。
このように、マネージャー層と若手層では技術に対する考え方にギャップがあることが問題となります。
結果として若手がいくら頑張って技術を盛り上げようとしても、それがマネージャー層に波及しません。
顧客への提案ができるのはマネージャー層だけなので、若手が新技術を身に着けることが意味を持ちません。
**そもそも会社全体として技術を盛り上げるのではなく、開発に携わる一部の人だけが盛り上がってしまうのは極めて危険な状況です。**その状況が続けば、いずれその人たちはより良い待遇・環境の会社に転職するに決まっているからです。その人たちの技術をマネージャー層が理解し、ビジネスに結び付けようという風土が必要です。
#SIerがこの先生きのこるには?
SIerが現在信頼を勝ち得ている顧客との太いコネクションを維持するには、顧客の新たな要望やシステムの老朽化に直面した際に、その時トレンドな技術を生かした提案を的確に行える必要がある。
そのためには、若手社員が積極的に新しい技術に挑戦できる環境を用意し、技術レベルを正しく評価できる尺度を導入し、マネージャー層が彼らを生かして新技術を顧客に提案できる風土を作り出すことが求められる。
…これを実現するために私が考えた方策を述べます。
会社が最初に取るべき行動は、「スキルパス」を構築し、社員にヒアリングを実施、各社員の「スキルレベル」を明確にすることで、トレンド技術に詳しい社員を「見える化」することだと思います。
「スキルパス」は、会社が今後強みとして持っていきたいトレンド技術に対して設定すべきです。たとえば以下のようなものが考えられます(トレンド技術として挙げていますが、間違っているかもしれません。私も勉強中の身なので…)。
- Web開発(HTML5, CSS(Bootstrap), JavaScript(Angular, Reactなど), Node.js(Express)などWeb系企業でトレンドとなっている技術について学習しているか。何らかのプロダクト製作経験があるか。など)
- クラウド(AWS,Azure,GCPを触った経験があるか。それぞれIaaSあるいはPaaSで何ができるのか。セキュリティ的にどうなのか。クラウド化することによりオンプレミスに対してどのようなメリット・デメリットがあるかを顧客に説明できるレベルにあるか。AWS認定資格を取得しているか。など)
- AI(Python(NumPy, Scikit-learnなど)を学習しているかどうか。統計の知識があるかどうか。データの洗浄やWebスクレイピング経験があるか。Kaggleの参加経験があるか。ディープラーニング検定資格を取得しているか。など)
「スキルパス」の構築は、当然その道のスペシャリストが考える必要があります(少なくとも、その分野の開発経験のない人や、ましてや経営層が考えるのはNG)。
社外の方を招聘して考えてもらうのありだと思います(大まかにトレンドな技術を教えてもらうだけなら大したコストではないはずです)。
「スキルレベル」は最初はかなりざっくりしていてよいと思います(当然いきなり正確に社員の能力を測るなんて無理なので。最初は3~4段階あれば十分でしょう。レベルの細分化は会社全体でその技術が定着してからでよいと思います。)
こうして各社員の「スキルレベル」が算出出来たら、「スキルレベル」の高い社員が主導で定期的に「技術普及会」を開きます。これは原則全社員参加必須であるべきです。
「技術普及会」の最大の目的は、その技術を使えば何ができるか、提案する立場(マネージャー層)が提案に使えるレベルに『最速で』到達することです。
『最速で』っていうのがミソです。ようするに、**若手層の勉強工数はかけてもいいから、マネージャー職の勉強工数を極限まで減らしつつ、マネージャーがその技術を提案に使えるレベルにする。**これが、SIerの技術固定化による先細りを最小コストで回避するための私の考えた最適解です。
したがって、その技術の細かい話やコーディングのこととかはどうでもよくて、その技術で何ができるのか、役割は何か、他の(社員がよく知っている)技術に対してどういう立ち位置なのか、こういう要件であれば使えるという例、などが俯瞰的に発表されるべきと考えます。
「技術普及会」を実施する若手がそもそも現れなければ始まらないので、開催した若手には一定の報酬が与えられるべきです。
発表に必要なスキルレベルなども「スキルパス」構築時に決めてよいかもしれません。
また、「技術普及会」の質が担保されなければ本末転倒なので、アンケート等で発表を評価してその結果を報酬に反映させてもよいと思います。
「技術普及会」により全社的にその技術のスキルレベルは向上し、新技術を容認する風土が形成されます。そして、発表に感化された別の社員が新たな「技術普及会」を開く、という正方向のサイクルが生まれれば、軌道に乗ったといえると思います。
長くなりましたがまとめると、
- 会社として強みにしたいトレンド技術を選択する
- その技術に対して「スキルパス」を構築して社員のトレンド技術のスキルレベルを明確にする
- スキルレベルが一定以上高い社員に「技術普及会」実施の権利を与える
- 「技術普及会」は「提案する立場(マネージャー層)がその技術を提案に使えるレベルにもっていく」ことを最重要課題とする
- 「技術普及会」開催の報酬は社員のアンケート評価により決定する
となります。
以上で私の言いたかったメインの話は終わりです。繰り返しになりますが、私は入社3年目の若造でマネージャーの苦悩も経営層の苦悩もよく理解していませんし、妄想あるいは机上の空論でしかありません。でも、会社全体として危機感を持ってこれくらいの方策を打ち出せるSIerなら、私はついて行ってもいいかな、と思います。
結局、若手層は「自主的に技術を学んで波及させる」、マネージャー層は「若手を排斥せず
これだけSIerをぼろくそ言いましたが、それでも私は今の会社を入社先に選んでよかったと思います。
私は入社前はコミュニケーションにかなり難があったのですが、BtoBのビジネスなだけあってコミュニケーション能力の高い方が多く、人間的にもしっかりしている方が多かったので、下手にWEB系に入るよりも報連相や提案能力・顧客折衝力が鍛えられたと感じています。
…もっとも、IT技術に強い意欲があるのであれば、業務外で勉強した上で見切りをつけて転職したほうが良いのは言うまでもないです。
業務が忙しすぎて勉強する気力が沸かなくなってしまったらそれが最後ですから。その状況にだけは絶対にしたくないですね。
一方で、IT技術をあくまでも「手段」として考え、ITへの興味や意欲がそこまであるわけでなく、むしろ顧客との折衝力やマネジメント力を磨きたいというのであれば、SIerは生涯を捧げるのにとても良い職場でしょう。
ちなみに私も古い技術に埋もれてしまわないよう、codecademyに課金したりKaggleに参加してWebとAIを勉強中です。競技プログラミングも欠かさず参加しています。