- ビッグテックで本当に 仕事を終える とは、無限に改善可能なシステムの中で 会社が満足する状態まで仕上げて、そこを離れること を意味する
- 有能でも 主体性に欠けるエンジニア は、些細な改善ばかりを繰り返し、本当の成果を逃してしまう
- 意思決定者に 目に見える、明確な成果物 を届けてこそ、「仕事をした」と認められる
- 自分の仕事が 上位管理職に読まれ、評価されうる形 になっているかを常に点検すべき
- すべての仕事を整理しきることはできず、ある時点では 「勝利を宣言して去る能力」こそが中核的なスキル になる
「仕事」は完結しえない性質を持つ
- 数学の問題や課題と違い、現実世界の仕事は 無限に改善可能な開かれたシステム である
- サービス開発は木を植えることのように、その後も 継続的な手入れが必要なプロセス である
罠にはまった有能なエンジニア
- 自分ひとりですべてを抱え込み 小さく連続的な改善だけを繰り返す エンジニアは、成果を出していると感じていても
- 上位管理職の立場から見ると 「会社にとっての可視的な価値創出」がないと判断される
- 結果として 成果のない忙しい人だと誤解される可能性がある
「終える」の実際の意味
- 会社(意思決定者)が満足する地点まで到達させて、次へ進むこと
- リファクタリングや些細な改善を続ける代わりに、明確な 成果リスト を作るべき
- 「終わった」と宣言し 次の仕事へ進む決断力 が重要である
仕事の「可読性」を確保する
- 管理職がすでに知っている、あるいは依頼したプロジェクトや、大きな障害への対応は 可読性が高い
- 基本的に大半の技術的な仕事は、管理職にとって 判断しにくい技術的ノイズ にすぎない
- したがって、成果を目に見える形にしたり、金銭的な効果を強調したりする など、読まれるように調整 しなければならない
「終える」は社会的な概念
- 哲学的には「終えた」という概念も 社会的構築物 だが、現実では 非常に実質的な力 を持つ
- これを無視すると正当に評価されず、最終的には解雇される可能性すらある
要約
- 働いているからといって終えたことにはならない
- ほとんどの仕事は終わらず、継続しうる
- 庭師ではなく 成果重視の戦術家になるべき
- 「終えた」の基準は 会社/管理職の満足
- 「勝利宣言 → 去る → 次の仕事へ」 が中核戦略
7件のコメント
勝利宣言ができるような仕事を選ぶことも、重要なスキルのようです。
範囲を絞ることをスコーピングといいます。勝てるようにうまくスコーピングすることが能力なのです。
ハンシン vs ソハ
細部ではなく、数値化された可視的な成果
Hacker Newsの意見
この記事の主張に全面的に反対というわけではないが、ビッグテックや複数のスタートアップ、ユニコーン企業などさまざまな場所で働いた経験からすると、あまり実践的な助言には感じない。ここ10年で開発者の仕事はあまりにも専門化され、意思決定者や顧客のニーズから切り離されている。この現象は、Product Managerがエンジニアと会社の他の部分との間に入り込むことで起きている。私は常に価値ある成果を出したいと思っているが、実際にそうしようとすると絶え間ないストレスを受け入れなければならない。私の貢献は必ず意思決定者と話す人のエゴを通って調整される。この5年で本当の達成感を得た唯一の時期は、9か月間、臨時でProduct Managerの役割を担ったときだった。その期間、私たちのチームは、それ以前に別のチームが何度も失敗していた3つのプロジェクトを成功させた。秘訣は利害関係者と実際に話してニーズを把握したことであって、自分のやり方を押し通そうとしたことではない。だから私はこれからも求められたものだけを提供し、バグについては非難され、機能については評価されないままだろう。それでも報酬は悪くない。今もなお、自分がきちんと貢献できる場所を探し続けている
私は、権力者を満足させることだけを成功の基準にすることに根本的な異議がある。私たちは滑稽な地位構造に縛られてはいるが、Jiraでチケットを「完了」に変えたり、コンパイラ警告を消したりすることがすべてではないと思う。誰も「40年間、毎回上司を満足させてきたから後悔はない」とは言わない
全体的には同意するが、一つ付け加えるなら、マネージャーが何を望んでいるかを理解するには会社のビジネス構造を把握しなければならない。会社がどうやって金を稼いでいるのか、何を価値あるものと見なしているのかを、必ず自分で把握する必要がある。会社の価値観と一致する場所で働くと、報酬も高く満足度も大きい。顧客はもちろん、営業、マーケティング、できる限り経営陣にも直接会ってみることが重要だ。内部システムだけを担当していても、そのシステムがどこに価値や保護を与えているのかを知ることが核心だ。もし自分の部署が明確な価値創出をできていないなら、価値のあるチームへの異動を考えるべきだ。会社のニーズとずれた仕事はいつも大きな失敗だった
筆者は「意思決定権者に見える結果を出す必要がある」と言っていたが、私はこの人の「ビジネス」マインドには共感する。多くの開発者は、自分の仕事にどんなビジネス上の効用があるのかを説明する方法が分からず苦戦している。リファクタリングもその一例だ。コード改善は短期的にはまったく意味がないように見えることもあるが、状況によっては組織に莫大な利益をもたらす。結局のところ、自分の仕事を組織の収益やコスト削減につなげ、さらにそれをどう伝えるかを考える必要がある、というのが核心だ
「こうした心構えが、多くのエンジニアがコード品質、テスト、ドキュメントなどに気を配らない理由なのだろうか?」という疑問がある。もし上の人の即時の満足だけを気にするなら、誰が長く保守可能なコードを書こうと努力するだろうか。規格以上の品質は不要でも、最低限の投資だけで数十億を節約できることもある
この現実と問題点は十分に経験してきたし、理解もしているが、それでも異議はある。多くのプロジェクトが始まり、「解決完了、done!」という声とともにチームは解散する。だが製品には依然として課題が残り、機能追加も必要で、会社も変化し続ける。結局、管理不全のまま技術的負債だけが積み上がる。新しいマネージャーが来て昔のプロジェクトを作り直し、同じ失敗を繰り返す。このやり方は非効率だ。エアコンにたとえるなら、温度を何度も切ってまた下げるより、一定に保つほうが効率的だ。実際、私が作った管理ツールには経営陣は関心を持たなかったが、内部ユーザーは500人を超えるほど必要とされていた。保守に大きな時間をかけなくても、信頼を維持し続けることが重要だった。放置すれば分散し、ツールの信頼性も失われる。数分かけるだけでも一貫性は保てた
いろいろと複雑な気持ちがある。visibilityや昇進という点ではこの記事の言うことは正しいが、実態としては管理者を満足させろという管理者中心の助言だ。では、明確な方向性がなく、優先順位が絶えず変わるとしたらどうなるのか。意味のある結果を出すのは難しくなり、管理者と部下の関係は完全な「イエスマン」構造になってしまう。これは良い結果ではない
unagentic engineerとは、自律性のないエンジニアを意味する。もしエンジニアがこのような形で働けば、非効率や深刻な問題(過大なクラウドコスト、セキュリティ事故、顧客の不満など)につながりうる。決して終わらない仕事の例として、セキュリティパッチ、ミスの修正、コスト最適化、顧客フィードバックへの対応が挙げられる。会社がこの価値を理解しないなら、転職が答えだUnagenticは、自律性(agency)のない従業員を意味する。自分から主体性を発揮することが期待されているのに、実際には開発者が自分の存在そのものを見えなくしてしまう落とし穴でもあるunagentic engineerは、自発的に意思決定して引っ張っていく特性が乏しく、ただ流れに身を任せるタイプを指すhigh agencyではない、つまり賢く有能に見えても、常に指示を待ち、自分から主導できない人を意味する私は
alignmentのようなバズワードが大嫌いだ。それでも、本質的に重要な概念であることは確かだ。理想的には、自分とマネージャー、そしてその上の経営陣までが、何が最も重要な仕事なのかについて合意しているべきだ。もしそうでないなら、所属する組織の一員としては問題だ。それが正しいことか、公平かどうかは別として、私たちはそれに合わせて生きていく。結局のところ、上から言われたことをやるのが給料をもらう理由だ。ごく少数の人だけが上に影響を与えられるという特権を持つ。それがいわゆるmanaging upだ原文は有用だが、もっと重要な核心が抜けている気がする:
むしろこちらの意見のほうが核心を突いていますね
そうですね(笑)