こんにちは。IT忍者です。今回は「案件ガチャ」。今はネーミングとしてそう捉えるか~っと個人的にはおもろいなっと思いますが、1つだけ言える事は、ITエンジニアは、そういった経験を積み重ねて知見、技術、ノウハウを積み重ねる事が王道ではとは思います。どのように捉えるかですが、終わらないプロジェクトはありませんし、何十年もやっている事業サービスでも、区切りや担当替えは必ずありますからね。
今回は案件ガチャに対して超個人的見解です。
報酬と希望とスキルアップ
前に記事書きましたが、現在予測した通り、だいぶコロナ不況の波がIT業界にも到達しつつありますが、やりたい事だけを未来永劫実行出来て、稼いでいける人なんてほんの一握りだという事が前提です。きっと環境不満からのガチャ内容に特化される気がしますが、理不尽は世の常。
どの範囲が希望となるのか
ITエンジニアとして、業務知識、作業領域、技術領域、責任範囲などなどありますが、いい例でいうと開発言語や開発フレームワークなんて流行り廃りが常に起こります。
例えば
よちよち歩きのエンジニアで「○○言語での開発でないとスキルアップ出ません。」とかたまに話を聞きますがこれって本当?と思うわけです。私はこれを聞いた瞬間、間髪入れずに「なんのスキルアップなの?」と突っ込み入れますがw。
ITエンジニアのプログラミング技術を伸ばす上では
・データ構造
・プログラム制御構文
・アルゴリズム
・実行シーケンス
最近、とあるYoutuberの使ったことない言語の習得日数を見ましたが、あれが正にあるべき姿でどの言語でも基本は同じです。 基本・基礎能力がしっかりしていて能力が高いのが一発で分かりますよね。その言語特有のライブラリとかもあったりしますが、プログラミングの基本はどの言語でも変わりません。
求めるSkillとしては「どの開発言語でも同じに見えて、使える」なのです。なので、基礎・基本がしっかりできていれば応用力で活用するだけ。
基礎がないのに「プログラミング能力」を伸ばすではなく「言語を習得」に目が行ってしまうはちょっと残念で、基礎がしっかり出来ていない状態で突き進んでも3流ITエンジニアの道しか残らないですよね。
ここで言う基礎領域の習得については、本当は非常に深いのです。 ITエンジニアは「考える事が仕事」
余談ですが・・・そう、あのCOBOLでさえ。
ただC++へ移行出来ないコボラーも大量いて、ポインタやオブジェクト指向の概念が理解できずITエンジニアの道を去っていった人も数知れず。
・コーディングは出来る
・分岐・繰返しの最適化が図れる
・人のソースコードをスラスラ読解できる
・データ構造を自分で考えられる
・アルゴリズムを自分で考えられる
・モジュール粒度を考える事が出来る
・プログラムの実行速度を考える事が出来る
・エラートラップを考える事が出来て、ホワイトボックステストもスラスラ作れる
・プログラム実行シーケンスを最適化して組み立てられる
などなど、非常に広い。どうでしょうか? 基礎と呼ぶ領域は人によって異なるとは思いますが、プログラミングなのか言語なのか、作業範囲なのか、知識なのか、技術領域なのか、希望とする内容のレベルやレイヤーとして本当の希望を何にするのかは結構重要です。
報酬ではどうか
重要視されるべき部分はこちらでしょうか。生きていくには長い年月稼ぎ続けなければなりません。収入が途絶えてしまったら生きていけない。ここにマーケット原理が働くわけですよね。人気がある方がよいに決まっていますが・・・・
やりたいと、 知ってると、出来る は別物
クライアントの事業やサービス内容、最も多く発生する開発、インフラ、テクノロジーや基盤的な技術。
上記で言った通り何が出来るかが重要なわけで、そういう出来るITエンジニアは好きに選べます。一方で選べるほど実力がない場合、生きる上でという視点で、「なんでもやる」。未来永劫「狭い領域でのやりたいこと」なんて一生続くわけないのですから。範囲を広げる思考か、狭める思考かでも変わってきます。
マーケットの人気がある開発実務が参画できるようになる前段階の知識習得なんて、基礎・基本が準備しとけばいいだけなので、後は回ってくるチャンスに備えるぐらいは出来るのではとも考えます。
理由もシンプルで、「言語の違いで何が変わりますか?」と自分で説明できて、実績がすぐ残せればいいだけですよね。
スキルアップではどうか
ここも深いですよね。アプリ開発のスキル、WEBシステムのスキル、基幹システムでのスキル、製品開発でのスキル、DBでのスキル、VR、ARのスキルなどなど 階層化しようと思えばいくらでも階層化して考える事が出来るわけです。さらに言えば自己満足の世界か第3者視点かでもスキルUP指標も変化します。何をもってスキルアップしたのか。その物差しはいったい何になるかでしょうか。
・短時間で作業が完了できるようになる事がスキルアップのか
・知らない領域でも即戦力になれる事が出来る事がスキルアップのか
・元々使える知識を流用し別な知識を得る事がスキルアップなのか
人によって千差万別。専門性を高めるのか知見を広めるかでも変わる。
好きな領域と妥協点をどこに設定するかがポイント
領域が狭ければ、出来る人以外はわがままばかり言っている人になりかねません。好きなものばかりを遂行する機会の方が少ないのではないでしょうか。 ドデカイ開発案件や、真新しい自社サービス、自社プロダクトだって、それそのものが開発ガチャ、時に株主というなのメテオなガチャも潜んでるかもしれないし、狂犬パートナーだって潜んでるかもしれない。たとえ頭を張るとしてもですけどね。
大枠となるITエンジニアとしてという部分から方向性、業態、分野、環境と妥協できる部分と出来ない部分を1階層、2階層ぐらいにしとけばほとんどが好きな事に入って来るのでは?とも考えます。
裁量と責任が取れるようになり、自分で選べるなど意思決定が出来るのならですが、ガチャなのかガチャではないのかでいうと、本当に未来永劫続くかというポイントではないでしょうか。
そう考えると
・仕事の環境面を優先したいのか
・技術面を優先したいのか
・作業範囲を優先したいのか
・お金を優先したいのか
・心の安定を優先したいのか
・作業時間を優先したいのか
きっとどこかにはトレードオフがあるはずです。やりたくない、儲けが薄い、いやな仕事などがあるのが世の常。どうでしょうか?
個人的には「ガチャである」という部分の定義も千差万別にはなるのかなとは感じます。
だって、最初はみんな未経験なわけで、知識も薄い状態だったはず。ITエンジニアになるという事そのものが広い意味では「ガチャ」だと思う。どの業種業態だって能力なければ稼げない・クビですからね。これ以上に怖い「ガチャ」な物ってないのでは?(笑)どんな環境だろうが日々の鍛錬と修行の連続。