はじめに
私はかつて、自分の技術思想とキャリア戦略が100%正しいと信じて疑いませんでした。そして、それを受け入れない企業、同僚たちが100%間違っていると本気で思っていたのです。
今思えば、それはソフトウェアエンジニアという職業に就いた多くの若い人が陥る、ある種の思春期的な錯覚だったのかもしれません。技術的な正しさを盾に、社会的な配慮を無視し、人間関係の機微を「非論理的」と切り捨てていました(エンジニアの論理的なんて往々にして論理的ではないのに)。
この記事は、かつての私のような「正義のエンジニア」だった自分への懺悔であり、同じ過ちを犯している人たちへの警鐘でもあります。媚びないことと無礼であることの区別もつかないまま、技術的優位性を振りかざしていた—そんな恥ずかしい過去を、今こそ正直に振り返ってみたいと思います。
このブログが良ければ読者になったり、nwiizoのXやGithubをフォロワーしてくれると嬉しいです。では、早速はじめていきます。
技術的正しさという名の傲慢
- 「なぜこんな非効率的な実装をするんですか?」
- 「もっと良い方法があるのに...」
- 「技術的にはこっちの方が正しいんですけどね」
そんな恥知らずな言葉を、私は何度口にしたことでしょう。普段は配慮できるつもりでいたのに、技術的な議論になると、つい正論を優先してしまう癖がありました。
先輩が現実的な理由を説明してくれているのに、心の中では「でも技術的には間違ってる」と思ってしまう。コードレビューで「ここはこう書いた方が綺麗ですよ」と、相手の状況を考えずにコメントしてしまう。
政治的な理由で技術選定が決まれば、会議後に同期に「エンジニアリングの敗北だよね」と吐き捨てる。ビジネス判断を優先する同僚を見ては「技術者として魂を売ってる」と心の中で見下す。
- 「技術的に正しいことを追求するのがエンジニアの仕事」
- 「妥協したらそこで終わり」
- 「コードが全てを物語る」
今思い返すと顔から火が出るような発言の数々。技術的な正論を振りかざすことが、エンジニアとしての誠実さだと勘違いしていたのです。
技術的に正しいことを言っているのだから、それが最優先されるべき—そう信じていました。でも問題は、私が「技術的正しさ」だけが唯一の評価軸だと思い込んでいたことでした。ビジネス価値、チームの状況、スケジュールの制約—これらも同じくらい重要な要素です。しかし、当時の私にはそのバランス感覚が足りませんでした。
コードレビューでは技術的な理想を押し付けがちで、会議では「でも技術的には...」という前置きで反対意見を述べることが多かった。新人が質問してきても、「まずはドキュメント読んでみて」と突き放してしまうことも。今思えば、技術的に正しいことを伝えようとしているつもりで、実際には相手の立場に立てていなかっただけでした。
最も痛いのは、エンジニアリングの視点でしか物事を見られなかったことです。
採用面接の後には必ず「技術力が低い人を採用すべきじゃない」と文句を言い、ビジネス感覚や調整能力の価値なんて考えもしませんでした。
技術選定の会議では「Rustを使うべき」「マイクロサービスにすべき」と主張するものの、採用の難しさや運用コストの話が出ると「それは別の問題」と切り捨てる。ビジネスの成長段階や組織の体力を考えない、机上の空論ばかりでした。
「もっとモダンな開発環境を」「もっと厳密なレビュープロセスを」と理想論を語りながら、それが非エンジニアとの協業や意思決定スピードにどう影響するかは無視。
技術は事業を加速させる手段なのに、私の頭の中では技術それ自体が目的化していたのです。そして同僚が現実的な判断をすると「ビジネスに魂を売った」と心の中で見下す。実際は、私こそが現実を見ていなかったのです。
幸い、私の意見が採用されることはほとんどありませんでしたが、今思えばそれで良かったのでしょう。
理想のキャリアという妄想
私は自分のキャリア構築が完璧だと思い込んでいました。GitHubでOSS活動をし、技術ブログを書き、勉強会で登壇する。これこそが「エンジニア」の歩むべき道だと信じて疑いませんでした。かっこよかったんだと思います。憧れていたんだと思います。
社内政治に長けた人を見ては「技術力のない政治屋」と心の中で罵り、クライアントとの関係構築に努める人を「営業エンジニア」と揶揄していました。チームの和を大切にする人なんて「ぬるま湯に浸かっている」としか思えなかったのです。
さらに滑稽だったのは、自分の行動が最も正しいと信じていたことです。会社の不満をオープンに書き、技術的な批判を遠慮なく投稿し、「透明性」と「正直さ」を標榜していました。それが「媚びない姿勢」だと勘違いしていたのです。
しかし実際には、それは単なる社会性の欠如でした。批判と中傷の違いも、建設的な議論と単なる文句の違いも理解していませんでした。「なぜ私の正論が受け入れられないのか」と憤りながら、自分のコミュニケーション能力の低さには全く気づいていなかったのです。
現実を100%否定する愚かさ
最も恥ずかしいのは、自分の理想が受け入れられない現実を「100%間違っている」と断じていたことです。
レガシーシステムを見ては「なぜこんなゴミを使い続けるんだ」、古い技術スタックに「この会社に未来はない」、ビジネス優先の判断に「エンジニアリングの敗北」—すべてを否定的に捉えていました。
私は自分以外の判断基準を認められませんでした。 技術的に正しくないものは全て間違いで、それを許容する人たちも間違っている。そんな狭い視野でしか物事を見られなかったのです。
同期との飲み会では不満ばかりこぼしていました。
プロジェクトで問題が起きれば「マネジメントが技術を理解していないから」、自分の提案が通らなければ「この会社は技術を軽視している」、期待した評価が得られなければ「エンジニアが正当に評価されない組織」—全ての原因を外部に求めていました。
自分が提案した新技術が却下されれば「老害が変化を恐れている」と憤り、レガシーコードの改修を任されれば「俺の才能の無駄遣い」と不満を漏らし、ドキュメント作成を頼まれれば「エンジニアの仕事じゃない」と文句を言う。
でも振り返ってみれば明らかです。問題は私自身にありました。 技術的な正しさだけを追求し、ビジネス的な制約や組織の事情を理解しようとしなかった。技術力があることと、組織で価値を生み出すことは別物です。そんな視野の狭さが、多くの問題を生み出していたのです。正しいことを言うことと、相手に受け入れられる形で伝えることも別物です。そんな基本的なことすら理解していなかったのです。
転機となった出来事
幸運なことに、私は比較的早い段階で痛い目に遭い、良いメンターに出会うことができました(というか強い人)。
あるコードレビューで、私がいつものように「このコード、正直ひどくないですか?全部書き直した方が早いです」とコメントしたとき、シニアエンジニアが個別に連絡をくれました。
「君の指摘は技術的には正しい。でも、そのコメントを見た人がどう感じるか考えたことある?彼は他のタスクも抱えながら、期限に間に合わせようと必死だった。君のコメントは、その努力を全否定している」
その言葉にハッとしました。私は技術的な正しさばかりを見て、人の気持ちを踏みにじっていたのです。
別の機会には、マネージャーが1on1で厳しい指摘をしました。「君は優秀だ。でも、チームメンバーが君を避け始めている。それでいいの?技術力があっても、一人では何も作れないよ」(とても良いフィードバックをしてくれる良いマネージャーでした)
ある技術選定の会議で、私の提案があっさり却下されたこともありました。技術的には明らかに優れていたはずなのに。後で分かったのは、採用された同僚が事前に全ての関係者の不安を聞き出し、丁寧に説明して回っていたということ。私は正しさだけを主張し、人を動かす努力を怠っていたのです。
そして最も衝撃的だったのは、年次が上がって後輩ができたときのことです。
私の何気ない「それは違うよ」という一言で、新卒エンジニアが完全に萎縮してしまいました。その後、彼は私に質問することを避けるようになり、分からないことを抱え込むように。私は、かつて自分が嫌っていた「怖い先輩」になっていたのです。
これらの経験が重なって、ようやく理解しました。技術力は重要だが、それをどう使うかはもっと重要。正しいことを、正しい方法で伝えられなければ、それはただの暴力だということを。
媚びないと無礼の致命的な混同
「私は媚びない」—それが私のアイデンティティでした。しかし今思えば、それは単に「無礼で無神経だった」だけです。
普段は普通に接することができても、技術的な話題になると途端に配慮が吹き飛んでいました。
コードレビューでは、つい「このままマージするの、正直抵抗あります」と書いてしまう。会議での議論では他の人の意見を尊重しつつも、心の中では「技術的にナンセンス」と思っていることが顔に出てしまう。
ペアプログラミングでは、相手のアプローチを見て「あー、それはちょっと...」と否定的な反応をしてしまう。質問されても「それは基本なので自分で調べた方が身につきますよ」と突き放す。
同僚との雑談では「うちの技術レベル、正直物足りない」「もっと技術にこだわる会社に行きたい」などと不満を漏らし、それを「健全な問題意識」だと勘違いしていたのです。
媚びないことと、相手を尊重することは両立します。 でも当時の私にはその区別がつきませんでした。率直であることと配慮がないことを混同し、技術的な正しさを盾に、人としての礼儀を忘れていました。
最も痛いのは、SNSでの振る舞いです。「エンジニアは技術で語るべき」という信念のもと、技術以外の要素をすべて否定していました。ビジネス的な判断を「技術の敗北」と断じ、人間関係の構築を「非生産的」と切り捨てていました。
そんな態度が「カッコいい」「筋が通っている」と本気で思っていたのです。今思えば、ただの社会不適合者でした。
頭の悪い反抗期の言い訳
私は様々な言い訳を用意していました。
- 「エンジニアは成果で評価されるべきだから人間関係は二の次」
- 「技術的に正しいことが最優先だから言い方なんて些細な問題」
- 「実力があれば多少の態度の悪さは許される」
- 「媚びるくらいなら孤立した方がマシ」
これらはすべて、自分の社会性の欠如を正当化するための、頭の悪い言い訳でした。 まるで反抗期の中学生が「大人は汚い」と言い訳するように、私は「技術的正しさ」を盾に、自分の未熟さを隠していたのです。
社内の勉強会では「政治的な理由で技術選定するのは技術者への冒涜」「日本の会社はエンジニアを大切にしない」などと大げさな批判を展開し、それを「問題提起」だと思い込んでいました。
特に恥ずかしいのは、これらの言い訳を「エンジニアの美学」として語っていたことです。「媚びない技術者の生き方」「技術に嘘をつかない姿勢」「純粋なエンジニアリング」—そんな青臭いタイトルでブログを書き、勉強会で熱弁していました。
同じような考えを持つ人たちとエコーチェンバーを形成し、「俺たちだけが本物のエンジニア」「周りは技術を理解していない」「いつか俺たちの時代が来る」—そんな幼稚な選民思想に酔いしれていたのです。
でも実際は、技術は手段であって目的ではないという当たり前のことから目を背け、自分の社会性のなさを「美学」で糊塗していただけでした。
その結果として何を得たでしょうか。確かに一部の「同志」は得られました。でも多くの機会を失い、多くの人間関係を壊し、多くの成長のチャンスを逃してしまいました。
譲れないもののために、譲るものを決める
やがて私は真剣に考えるようになりました。自分が本当に譲れないものは何か?
私にとって譲れないのは技術的な誠実さ、つまり嘘はつかない、質の低いコードは書かないということ。そしてユーザーファースト、エンドユーザーの利益を最優先すること。さらに継続的な学習、常に新しいことを学び続けることでした。
これ以外は、状況に応じて柔軟に対応することにしました。本質を守るために、形式では妥協する。これが私の新しい戦略でした。
表現方法では本音を建前でオブラートに包むようになりました。タイミングも最適な時期を待つように。プロセスでは目的のためなら遠回りも受け入れ、形式的には無駄に見える会議や書類も必要なら対応するようになりました。
技術は手段、したたかに生きる戦略
そしてもう一つ、重要な気づきがありました。技術は手段であって目的ではないということです。
私自身、技術的な興味に駆動されています。新しい技術を学ぶことが楽しいし、エレガントなコードを書くことに喜びを感じます。正直に言えば、ビジネス価値なんてどうでもよくて、ただ面白い技術を触っていたいだけなのです。でも、お金をもらって仕事をする以上、建前上それが主目的とは言いづらい。
だからこそ「したたかにやろうぜ」という考え方が大切なのです。
つまり、組織が求める「成果」という枠組みを利用して、自分の技術的好奇心を満たすということ。表向きは「ビジネス価値の創出」を掲げながら、実際には「面白い技術で遊ぶ」ための正当性を確保する。これは嘘をついているのではなく、異なる価値観を持つ人々が共存するための知恵なのです。
例えば、「パフォーマンス改善」という大義名分のもとで、最新のフレームワークを導入する。「開発効率の向上」という建前で、面白そうなツールチェーンを構築する。「技術的負債の解消」という錦の御旗を掲げて、自分が書きたいようにコードを書き直す。
重要なのは、これらの建前が単なる口実ではなく、実際に価値を生み出すことです。新技術で遊びながら、本当にちゃんとパフォーマンスを改善する。好きなツールを使いながら、実際に開発効率を上げる。コードを書き直しながら、本当に保守性を向上させる。
「プロフェッショナルとして責任を果たします」と胸を張りながら、心の中では「やった!これで堂々とRustが書ける!」と小躍りする。この二重構造こそが、エンジニアとしてのしたたかさです。
組織は成果を得て満足し、私たちは技術的満足を得る。Win-Winの関係を作り出すこと。それは決して不誠実ではなく、むしろ異なる価値観を持つ者同士が、お互いの利益を最大化する賢明な戦略なのです。
これは「技術への情熱」と「ビジネスへの責任」を両立させる、システムをハックする大人のやり方です。
エンジニアとしてたぶん大切なこと
今になってようやく分かります。エンジニアとして本当に大切なのは、技術力と人間力のバランス、そして戦略的なしたたかさだということが。
技術的に正しいことを、相手が受け入れられる形で伝える。それは媚びることではなく、プロフェッショナルとしての基本的なスキルです。組織の制約を理解しながら、最適な解決策を見つける。それは妥協ではなく、現実的な問題解決能力です。
異なる価値観を持つ人たちと協力して価値を生み出す。それは迎合ではなく、チームワークです。自分の意見を持ちながら、相手の意見にも耳を傾ける。それは弱さではなく、成熟した大人の態度です。
そして何より、自分の技術的興味を満たしながら、組織の目的も達成する。このしたたかさこそが、長期的に見て最も賢い生き方だと思うのです。
具体的に言えば、「セキュリティ強化」という名目で面白いツールを導入し、「運用効率化」という建前で自動化の仕組みを作り、「将来の拡張性」という理由で好きなアーキテクチャを採用する。でも重要なのは、これらが本当に価値を生み出すこと。セキュリティは本当に強化され、運用は本当に効率化され、システムは本当に拡張しやすくなる。
つまり、自分の欲望と組織の利益を一致させる技術を身につけるということ。これは詐欺ではなく、むしろ最高のプロフェッショナリズムです。なぜなら、エンジニアが情熱を持って取り組んだ仕事こそが、最高の成果を生み出すからです。
また、「媚びない」ことと「無礼」であることは全く違います。 前者は信念を持つことであり、後者は単なる社会性の欠如です。同様に、「したたか」であることと「ずる賢い」ことも違います。前者は双方の利益を最大化する戦略的思考であり、後者は単なる利己主義です。
そして「技術への純粋な愛」と「ビジネスへの貢献」は対立するものではなく、うまくブレンドすることで、より強力な推進力になるのです。あと、技術士倫理綱領などを読むのもオススメです。
今の私は、技術的な議論をする際も相手への敬意を忘れません。自分の意見を主張する際も、相手の立場を考慮します。SNSでの発言も、建設的で前向きなものを心がけています。そして、自分の技術的興味を追求しながら、それをビジネス価値に変換する方法を常に考えています。
これは「売れた」「丸くなった」のではありません。ようやく大人になったのです。そして、本当の意味で強くなったのです。
おわりに
「お前も結局、体制に飲み込まれたのか」—かつての私なら、今の私をそう批判したでしょう。
しかし、それでいいのです。技術的な純粋さを追求することと、社会的な成熟を遂げることは矛盾しません。むしろ、両方を兼ね備えてこそ、プロの仕事と言えるのではないでしょうか。
私はもう「正義のエンジニア」ではありません。ただの、少しだけ成長したエンジニアです。技術への情熱は変わりませんが、それを表現する方法は大きく変わりました。そして、その情熱を現実世界で活かす術を身につけました。
媚びないことと無礼の区別がつかなかった、頭の悪い反抗期は流石に終わりました。
これからは、人としてちゃんとしたのを前提にしたエンジニアを目指します。正しいことを、正しい方法で、正しいタイミングで実現できるエンジニアに。
そして、かつての私のような若いエンジニアを見かけたら、優しく、でもはっきりと伝えたいと思います。「君の気持ちはよく分かる。でも、もっといい方法があるよ。一緒にしたたかにやっていこうぜ」と。
多分昔の私だったら「は?日和って迎合した負け犬が何言ってんの?」「技術を捨てて政治に走った元エンジニアの戯言でしょ」「そうやって妥協を重ねた結果が今のレガシーシステムなんだよ」とか思って、心の中で見下しながら表面上は「はい、参考にします」って適当に流すんでしょうね。
まあ、それでいいんです。私も通った道だから。いつか痛い目に遭って、ようやく気づくでしょう。自分が単なる視野の狭いガキだったってことに。その時になって初めて、この言葉の意味が分かるはずです。けど大人として言う義務があるので言っておきました。