を感じて日々を過ごす1人のITエンジニアです。
こんにちは。
技術要素であったり、そこからこぼれるネタであったり、お遊びなんかを投稿できたらいいなと始めたものでしたが、最近タイトル通りのことを強く思うようになり書き至った次第です。
なぜこんな記事を書くか
私は3回の転職経験があり今は4社目に在籍しています。まず私は転職をマイナスに捉えていません。日本でこそマイナスのイメージが強いですが諸外国やここ最近はIT界隈に限ってはそうでもないのかな?となんとなく感じています。(願望が入っているかもしれません。)
そんな私が年齢を重ねたのも影響があるでしょうが、転職するほどより客観的な視点で人や組織を見ることができるようになってきたので、せっかくならそこから得た知見を共有したいと思ったものです。
ちなみに私はIT界隈で開発を主戦軸としていますがコーダーに閉じてはおらず比較的幅広く活動するタイプの人間です。コードも書くしテストもするし、要件整理に赴くし、マネージャーもしつつ顧客折衝もしつつ時には接待にもいきます。
エンジニアと非エンジニア
まず私が言うこれは何かを定義しておきます。
まずIT、それもソフトウェアの世界に限った話とさせてください。全部が機械やハード、あるいは割合が増えると私の知らない状況がまたあるかもしれません。
エンジニアとは、IT開発において特定の専門的な知識を有しており、それを応用して開発業務に従事するものです。専門的とは言いましたが、例えば開発に配属された1年生が何らかのデバッグを始めたらもう私の中では立派なエンジニアです。
もう少し付け加えるとコンピューターサイエンスを多少なりとも理解してそれを応用する人たち、としましょう。
非エンジニアとは、コードの読み書きはしない。もちろんデバッグもしない、上記に該当しない人たちのことです。
最近ではノーコード、ローコードのソリューションが増えてきたためコードを書かなくても作れるシステムは増えてきました。これを使ってシステムを提供するエンジニアと名乗る人は存在するかもしれません。別にその人たちを否定するつもりはありません。要はコンピューターサイエンスを理解しているかどうかが私の中では判断材料です。
ギャップとは?
ある要件のソフトが望まれた時にエンジニアがソフトを開発し非エンジニア(この場合営業)がソフトを販売します。
不具合
ソフトには不具合がつきものです。もういくつソフトリリースに関わったか覚えてませんが使用された上で不具合(報告)がなかったものは1,2回だけです。
不具合があると開発者は呼び出されますよね?(苦笑)
経験が浅いときは、開発者(特にコーディングに関わった人)が悪いと思い焦って対応を開始するか、自分でなければ犯人捜しをします。
ですが私はもう考え方が違います。瑕疵責任についてはほとんど多くの人が軽視しがちです。でもソフトの規模が大きくなったりクラウドソリューションになったりすると大規模な可用性や敏捷性を備えても問題はおきるときには起きます。それを一開発者が背負ってたらキリないですよね?
瑕疵担保責任など法律では「知ってから1年」など凶悪なものがあります。勿論契約形態にもよるのでもっと期間短く設定していたりはしますが、実際は期間なんか関係なく問い合わせきますよね?(再苦笑)しかしこの瑕疵責任て開発者のものでしょうか?私は会社に帰属していると考えています。納品した製品の権利は会社に帰属するのに責任だけ開発者というのは不思議ですよね?おそらくほとんどの現場がそうじゃないでしょうか。
仕様変更
ソフトは開発中や納品後にも仕様変更します。これ自体は普通のことですが多くの現場では(1度でも触ったことがある)開発者が仕様変更時にもアサインされます。
しかし前回納品から1年以上たっていて実際は内容全然覚えていないとか、仕様変更内容が特に知見を生かせるものではない、というのはよくあります。
結局ギャップって?
これ以上書くと愚痴が多くなるので2例だけにしました。
これエンジニアリングを深くしていくと、そしてたくさんの組織構造や人間関係や仕事のあり方を見ていくと違和感に気づいてきます。
不具合に対応するのが開発者(=エンジニア)でないといけない理由を非エンジニアの人に聞くと「だって開発ツールがないから」、「コードを見てもわからないから」、「作った人の責任だから」という答えを聞きます。ずいぶん消極的な理由に感じます。これを理由にしていいのなら「なんとなく嫌だからやりたくない」というのが通用するということになります。
開発ツールはインストールすればいいだけ。コードを見てわかるかどうかは自己学習の範疇だし、そもそも設計書や周辺ドキュメントを見てほとんどのケースは解決できる。責任はプロダクトを売り出した会社にあるので個人に属しているわけではないし。
本質的には仕事に臨む姿勢は、何をしなければならない人なのか?に依ると思っています。
例えコードが見れなくても、ツールがインストールされてなくても、その役割にいるのならその役割を全うすべきだと考えるわけです。
このあたりの姿勢に対する温度感が大なり小なり存在しており、非エンジニアの人たちとのギャップとして感じています。
さらに悪いことにエンジニアの中にも、初学者であり未熟なためにそのように考えてしまう人もいるし、そういうカルチャーで育った人はやはりそのように考える人もいます。
技術から逃げる
これは最近同僚から聞いた言葉でその時の私に染みた言葉でした。
最近技術の変遷が早いです。幸い私の興味の範囲は広く、ちょっと苦手科目でも「可」をとれる程度についていけてます。一方で最近の技術についていけない、またはついていく気がさらさらないエンジニアの人たちも一定数います。
私が感じているこのギャップを元エンジニアとなってしまった人に感じるようにはなりたくないと思っており、目下この人たちの動機付けができないか?とか、レクレーションのようにして技術習得のカルチャーを根付かせていけないか?などと考えています。
コボラーをバカにするつもりはありませんが、コボルで食えていけてるのはたまたまです。偶然に頼りたくない意識の方は今すぐ行動することをお勧めします・・・
最後に
けっこう乱暴な物言いをしてしまいました。
最近の思うところが多すぎて溢れてしまったようです。
私自身もせめて「良」をいくつかの分野にリスク分散して維持できるよう自己研鑽に努めたい。