カテゴリー:コラム

blog-image

なぜコード品質を上げられないのか? スキルと方針の欠如が招く惨状

開発現場において「コード品質を向上させよう」という号令がかかることは珍しくありません。リファクタリングの時間を確保したり、テスト駆動開発(TDD)の勉強会を開いたり。しかし、実際にそれが定着し、息をするように高品質なコードが生産されるチームは驚くほど少ないのが現実ですよね。 誰もが「保守しやすく、変更に強いコード」を書きたいと願っているはずなのに、なぜコードの無秩序化は止まらないのでしょうか。 現…

Read More

blog-image

AIコーディングエージェント時代の生存戦略:正社員とフリーランスの役割はどう変わるか

GitHub Copilotの登場から始まり、現在ではより自律的に動くAIコーディングエージェントが開発現場に浸透してきました。皆さんの現場でも、日々のコーディング風景は数年前と全く違うものになっているはずです。 今回のテーマの背景として、以下の現状認識があります。 最近は、IT人材不足というところで、フリーランスが高値で現場で求められることが多かったです。 しかしAIコーディングエージェントが出…

Read More

blog-image

プロダクト開発を迷走させないための「WHY・WHAT・HOW」の境界線

プロダクト開発の現場で「WHY・WHAT・HOWを意識しよう」という言葉、よく耳にしますよね。 エンジニアとして経験を積み、ただ目の前のコードを書くだけのフェーズを抜けてくると、自然とこういったレイヤーの違いを意識する場面が増えてくるはずです。 しかし、実際のミーティングでは「この機能はReactで書き直すべきか?」というHOWの議論と、「そもそもユーザーはこの機能を求めているのか?」というWHY…

Read More

blog-image

「開発速度 vs 品質」の誤解を解く。私たちが本当にトレードオフにかけているものは何か?

「早くリリースしたいから、今回はちょっと品質を目を瞑って進めよう」 開発現場で耳にタコができるほど繰り返されるこのセリフ。皆さんも一度は言ったり、言われたりした経験がありますよね。そして、そのたびに「開発スピードと品質はトレードオフだから仕方ない」と、妙に納得したような諦めを感じていないでしょうか。 でも、ちょっと待ってください。この議論、そもそも「品質」という言葉の定義がガバガバなせいで、不毛な…

Read More

blog-image

他部署に期待するな:ビジネスサイド連携の防御的アプローチ

エンジニアリング組織を率いていると、自チーム内のマネジメントと同じくらい、セールスやPdMといった他部署(ビジネスサイド)とのコミュニケーションに時間を使うことになります。 ここでも、厄介なトラブルの温床になるのが「相手への無自覚な期待」です。 結論から言います。他部署とのやり取りにおいて、相手に何かしらの「配慮」や「察し」を期待することは明確な間違いです。 他部署は、自分たちとは全く異なる目的と…

Read More

blog-image

受動的なチームをどう動かすか。モメンタムを生み出すための実践録

チームのモメンタム(勢い)がない。メンバーが受動的で指示待ちになっている。エンジニアリングマネージャーやテックリードであれば、一度は直面する課題ですよね。 現在ぼくが受け持っているチームも、当初はまさに絵に描いたような受動的なチームでした。 基本的には言われたことだけをやる。与えられたオーダーを消化することがすべて、という状態です。 指示待ちの「レガシーシステム」と化したチーム 当時の定例ミーティ…

Read More

blog-image

正論は「デバッグ」には効くが、「デプロイ」には不十分だ:マネジメントにおけるモメンタムの力

ソフトウェアエンジニアという生き物は、職業柄「問題を解くこと」に特化しています。バグがあれば原因を突き止め、非効率なコードがあればリファクタリングする。この「正論で攻める」というアプローチは、コードを綺麗にする上では正解です。議論を深め、チームをより良くするという観点でも、論理的な正しさは不可欠ですよね。 しかし、実際の現場で正論だけで突き進もうとすると、まるで計算資源を使い果たしたサーバーのよう…

Read More

blog-image

セールスvs開発:100%の「ビッグバン」か、60%の「小出し」か。終わらない聖戦

IT業界やプロダクト開発の現場にいると、必ずと言っていいほど目撃する光景があります。それは、新機能や新サービスのリリース方針を巡る、セールスと開発(エンジニア)の冷戦です。 「中途半端なものを客に出せるか! 100%完成させてから『一気に』華々しくリリースさせろ!」と叫ぶセールス。 「いやいや、いきなり全部出すなんて自殺行為ですよ。60〜70%でいいから細かく出して修正させてくれ」と嘆く開発。 こ…

Read More

blog-image

AI時代の「開発生産性」はどこで測るべきか?4keysの次に来るもの

アジャイル開発が浸透してからというもの、我々は「4keys(デプロイ頻度、変更のリードタイム、変更障害率、復旧時間)」を主要な指標として追いかけてきました。特に「変更障害率」は、AIが生成するコードの品質を担保する最後の砦として、今後も変わらず重要であり続けるでしょう。 しかし、それらの数字が健全でも、現場では少し違和感が出始めているのではないでしょうか。「数字上は生産性が上がっているはずなのに、…

Read More

blog-image

Snapdragon搭載PCに変えたので、開発環境構築の備忘録

最近、PCをSnapdragon搭載のマシンに変更しました。 従来のインテルなどのCPU(x64)とは少し勝手が違うため、自分用の備忘録として、「ここだけは気をつけるべき」というポイントをまとめます。 Docker Desktop は「Arm版」が必須 Docker Desktopなんですが、いつもの感覚でMicrosoft Storeから取得したり、適当なインストーラーを使うと起動しません。 S…

Read More

blog-image

エンジニアの成長を阻む「現状志向」の壁。その正体とハック方法

はじめに:なぜぼくらは「レガシー」から抜け出せないのか 「今年こそはRustを習得するぞ」とか「インフラをIaC化して効率化するぞ」なんて正月に誓ったのに、気づけば年末。結局、手慣れた既存コードの保守と、温かみのある手動デプロイを続けている……なんてこと、ありませんか? ぼく自身もそうです。「このコード、可読性が悪いからリファクタリングしてきれいにしたい」と常々思っているのに、いざ日々のタスクに向…

Read More

blog-image

エンジニアを縛る「過去の武器」。スキルのサンクコスト効果との付き合い方

AI時代に「かつての必勝パターン」を手放せないエンジニア エンジニアとしての成長を考えたとき、こんな葛藤を感じることはないでしょうか。 例えば、生成AIの台頭です。 かつては、時間をかけて複雑な正規表現を一から組み上げたり、ドキュメントの隅々まで読み込んで独自の最適解を導き出したりする「職人芸」こそが、エンジニアの強みであり、自信の源泉でした。「自分にしかできない仕事がある」ことが、経験の証だった…

Read More