私が以前仕事をしていた巨大システムインテグレータでは、毎日 3 時間以上は「進捗会議」を行っていた。
自分の進捗を報告し、他人の進捗の報告を聞く。
部下や協力会社から自分に、自分から上司に、上司からさらなる上の上司に伝言ゲームで報告していく。
進捗の伝言ゲームの中では、「とりあえず順調です」「順調ではないですが、何とかします」を異口同音に語る。
「システムインテグレータ」と冒頭では書いたが、進捗報告が異常に多いのがシステムインテグレータの特徴というだけで、ウェブ系企業でも進捗報告会議はあった。
進捗会議みたいなミーティングってマジで不要だと思うんだよね。もし何かに困ってるなら自分から相談なりアクション起こすんだけど、そうでもない人が居るから必要なんだろうな
— おでん @外資IT (@oden_2022) April 21, 2023
進捗報告に価値などないが、意味はある。
「偉い人に言い訳をする」という意味だ。
偉い人に言い訳しなければならない組織では、進捗報告が非常に重要となる。
要は、怒られないために進捗報告をしている。 まぁ、進捗報告しても怒られるので、間抜けといえば間抜けだ。
私がかつて務めていたウェブ系企業は、社長がすべてを決めるワンマン会社で、社長に何かを報告するために部を挙げて会議をしていた。 社長に怒られないことが第一の目的だったのだ。
延々と報告のための報告会議を行い、ああでもないこうでもないと議論していた。 その間、何も生み出していない。
というのも、何かを報告しても、報告を受けた側が何かを解決してくれるわけではないからだ。 SIer でも同じだろう。
偉い人に頑張って報告したところで、問題は何一つ解決しない。 ChatGPT に報告すればある程度の解決策を提示してくれるが、おじさんは何も解決しない。
社長も同様である。具体的な問題への解決は当事者でないとできない。
では偉い人は何ができるか?
「進捗が遅いからプロジェクトを取りやめる」
「進捗が遅いから人を増やす」
「スケジュールを延ばす」
などの意思決定ができる。
とはいえ、こういう意思決定を現場から離れたおじさんに託す組織はどこか歪んでいる。
スケジュールの話や、プロジェクトに関する意思決定はスクラムチーム内で完結するのが理想であり、外にいる「偉い人」が口出ししてくる組織は必ず非効率になる。 進捗報告が楽しいと感じる人間は一人もいないため、メンバーの士気も下がるし、良いことは全くない。
「進捗報告は大切だ」とか言ってる人間は頭が悪い
「進捗報告に意味などない」というと、進捗報告ばかりしてきた SIer の人間は「進捗報告に意味がないなんて、下っ端の戯言だ」みたいに見下してくるだろう。
馬鹿である。
「進捗報告」という無意味な儀式が自分のアイデンティティになってしまっていて、「自分がやっている作業に意味はあるのだろうか?」と考えることができなくなっている。 思考停止は馬鹿の特徴だ。
「この作業に意味はあるのか?」と立ち止まって考えることができないので、無駄ばかり生み出していく。 無駄な作業は何も価値を生み出さないが、「ちゃんとやっているように見えて組織に評価される」というメリットはある。
無駄な作業を頑張って組織に評価されてしまうと、無駄なことをやる馬鹿はより一層、「俺は間違ってなかったんだ」という想いを強くする。
組織に評価されて、思考停止したまま立場が上がっていくと、チームメンバーにも同じように無駄を課すようになる。 その成れの果てが SIer という組織なのだ。救いようがない。なぜなら、本人たちが救われたがっていないから。
私達が救えるのは救われる意志のある人間だけなのだ。
管理職は暇していて何もしないくらいがちょうどいい
管理職は暇でやることがないくらいがちょうどいい。 管理職が頑張ろうとすると、形式的で価値を生まない作業が増える。
管理職はチームが快適に仕事をすることのみにフォーカスを当てるべきであって、余計な干渉をすべきではない。 予算を確保し、スケジュールを調整する。
チームのために奴隷のように尽くし、余計なことはしない管理職が良い。
チームを管理しようとする管理職は馬鹿である。自分にできることなどないから、チームに最大限の力を発揮させる、という点に尽力すべきだ。
といっても、そういう姿勢で仕事が進むのは、チームがある程度頭の良いメンバーで構成されている場合に限る。 成熟したチームには管理職は不要になるが、未熟なチームでは強権を発動して監視しなければならない。
プロジェクトマネージャーは無能の上に立たないと価値がない
成熟したチームにおいて、プロジェクトマネージャーの仕事はほとんどない。プロダクトオーナーがいればいい。
自走して、機能を実装していけるからだ。
しかしながら、プロジェクトマネージャーが頑張らなければいけないチームもある。
中国やベトナムにオフショア開発を依頼した場合、プロジェクトマネージャーが頑張らないとゴミのような成果物が出てくることだろう。 海外の優秀なプログラマがオフショア開発なんて受けるわけがないので、中国やベトナムのオフショア開発を担当しているプログラマは 9 割方無能である。
無能の吹き溜まりを働かせるのは非常に難しい。鞭で打って、圧力をかけなければならない。 圧力をかけたからといって、無能が優秀になるわけではないので、「とりあえず人が住める欠陥住宅」みたいな成果物が出てくる。
プログラムで言うと、欠陥住宅にツギハギを足していくと、欠陥がさらに重なり、どこかで手当不能になってしまう。
ちょっと直すと他が壊れる昭和のボロアパートみたいなシステムが出来上がる。 改修は不可能になり、プロダクトのスピード感は失われ、競争力を失う。
そのシステムが Ruby on Rails で作られたらさらに最悪で、引数や返り値の型がわからないので、どこでバグが発生するかも予測できない。 外注 + Ruby on Rails は地獄行きの特急券である。
100%破綻するので、もし自社や転職で受けた会社が「外部委託で Rails のコードを書いてもらってます」などと言っていたら、逃げたほうがいい。
ちなみに TypeScript で開発していたとしても、無能な外注は型を定義せずに全部 any にしてくるので、オフショアに依頼する場合は "noImplicitAny": true
は必須である。
オフショア、といったが、国内の単価 100 万以下の SES も同様で、とにかく無能は何も考えずに適当にコードを書いて、「書き捨て」しようとしてくるので、しっかりとレビューできる人間が受け口にならないとシステムは破綻するだろう。