最近何社からか「良い人材がいない」とか「みんなすぐ辞めてしまう」みたいな相談を受けたのですが、「そりゃこんな難易度のプロジェクトできる人材なんてそうそう居ないよ」みたいなのばっかだったのでそう言う話をします。
モバイルアプリの人材を5段階で考えてみる
以下のように5段階で考えてみます。
私はiOSばっかりやってるのでiOSです。Androidも似たりよったりだと思いますが。
Aランク 頭がいい上に10年前後の経験がある
Bランク Aよりは劣るがベテランの域である、リーダー経験もある
Cランク フリーランスとしてでもやっていけるレベル、有名企業の若手とか
Dランク 慣れてきたかなーというくらいのレベル
Eランク 初級者
私はBランクです。たぶん一生Aにはなれない。
地方旧帝大卒くらいの頭だとB止まりな気がしてます。才能如何もありますけど。周りでも似た感じなので。
金を積んでも見つからないのがAランク
AまたはBでいいなら頑張れば見つかります。ただし金は積む必要があります。
Aランクは大抵どっかの重要ポジションに居るので中々出てきません。
Cランクは結構居ます。フリーランスで適当に月80万くらいで雇えばCかDランクが来ます。
A,Bランクは人数が限られる
育つのに時間がかかりますし、重要なポジションには既にA,Bの人がついていたりするので、Cが今後A,Bになるには数年の時間がかかります。
とにかく2022年時点でもA,Bが不足しています。
あと、A,Bランクにいるような地頭のいい人は他の技術に移動することも多いので、常にこの層は不足します。下手するとその技術においてA,Bの人材が居ないということもありえます。
例えばiOS(swift)から10年選手が出ていくことはあっても戻ってくることって稀じゃないですか?
プロジェクトが安定するのは「C以上で運用可能な難易度」
Cくらいならすっと育つんです。これは体感ですが。
DでもOKになるとより安定しますが、今度はやりがいが薄めになるのでエンジニアは不満かもしれません。
A,Bは、A,Bにしか理解できない難易度のプロジェクトを作ってしまいがち
コードの難易度がどんどん上がって、Cお断りやBお断りのプロジェクトが作られてしまいます。
そうするとまあ詰みはしませんがスケールはしません。
そんなに難易度を上げる必要があるかというのはやや疑問です。研究職というわけでもないので。ただ職人気質な人は得てしてそういう局所最適な動きをする生き物なので諦めましょう。事業最適な行動を取るような人はやはりB止まりなんだと思います。戦闘狂じゃないと。
難易度Aのプロジェクトを作らないようにしよう
とはいいますが、Aの人に任せればどうやってもAになります。
それで人事部が頭を抱えてしまうみたいな会社をいくつもも見たことがあります。
というかBランクになると難易度Aのプロジェクトに誘われることが多いので、最近はそういうのばっかりです。
Bランクの人ですら読み解くのに時間がかかるコードが生成されてしまう感じです。
Aの人に期待するのは難しいので、プロジェクトマネージャー観点でどうするべきか考えるとすると、Aの人を投入するタイミングの調整だと思います。
大体上場前後がベターかなと思っています。その際にプロジェクトにDの人材を入れましょう。Cではだめです。Dが理解できるレベルで設計するとうまくいくと思います。
一度上がった難易度を落とすのは不可能です。
まあ私はフリーランスなのでどっちでもいいいですけど。
どうあがいても難易度Aのプロジェクトに行くことになるので・・・
エンジニアは難易度Aの案件に気をつけましょう
気をつけると言うか、付き合い方を考えないと病むと思います。
でも正社員で入ったらどうすればいいんでしょうね?わかりませんね。
そうそう、最近気づいたんですが
Aの人は複数の会社で関わってたりするからAの人が居ない会社で難易度Aを錬成してることもあります。天才だけど人災。