建築家がプログラマーのように働かなければならなかったら (1995)
(gksoft.com)建築家がプログラマーのように働かなければならなかったら
-
建築家に正確な要件を知らせないまま、家を設計して建てるよう依頼する。
-
家は2~45寝室のどれでも可能で、寝室は簡単に追加・削除できること。
-
最終決定は建築図面を見てから行う。
-
選ばれる家は、現在住んでいる家よりも安くなければならない。
-
現在の家の欠陥(キッチン床の振動、壁の断熱不足)はすべて修正しなければならない。
-
年間の維持費を最小化しながら、最新のデザイン手法と素材を使用すること。
-
1952年製のギブソン冷蔵庫を収容できるキッチンのデザインが必要。
-
家族全員と義父の意見を聞き、全員が満足する家を設計すること。
-
小さなディテールにこだわらず、全体の計画を立てる。
-
資源確保より、詳細な計画と仕様開発を優先する。
-
計画承認後48時間以内に屋根を完成させる。
-
後で他人に売却できるよう、さまざまな購入者の好みを考慮する。
-
最終計画を確定する前に、地域社会の合意が必要。
-
建築図面を準備し、実際のデザインは後で変更される可能性がある。
-
後でデザイン変更による建設費の増加について責任を負う。
-
最新技術と自由なデザインを使える、興味深いプロジェクトだ。
-
妻は当初の指示とは異なる意見を持っており、これを解決するのは建築家の責任。
-
妻は家ではなくトラベルトレーラーが必要かもしれないとも言っており、これについての助言を求めている。
GN⁺の意見
- この文章は、建築家に非合理で矛盾した要求をする依頼者を風刺しており、プログラマーがしばしば遭遇する非現実的な期待や要求を機知に富んだ比喩で示している。
- この例は、プロジェクトの明確な要件と期待値、そして変更管理の重要性を強調する事例とみなせる。
- この記事は、プログラミングと建築という異なる分野の専門家が共通して直面する問題を理解し共感するのに役立ち、ユーモアを交えてプロジェクト管理の難しさを伝えることで読者を惹きつける。
1件のコメント
Hacker News のコメント
この作業をどうやって成し遂げるかはどうでもいいが、想定される作業を小さく見積もり可能な作業単位に分解しなければならない。
見積もりは正確である必要はないが、見積もりを超えたら責任を取らされるし、見積もりが恣意的に高すぎると判断されれば疑われる。
それらの作業は自分で進めればよいが、まったく別のことをしている他の設計者たちと一緒に、毎日1時間の会議で進捗を報告しなければならない。
同じ口頭報告を別の会議でも繰り返さなければならないことがあり、会議に多くの時間を取られても、当初の見積もり時間はそのまま守らなければならない。
家を設計している途中で、ピサの斜塔の安定化のような建築上の緊急事態を手伝わなければならないこともあり、そうした事態は昼夜を問わず発生し、現在の作業より優先されるが、時間見積もりには影響してはならない。
ただしその人は全員の鉛筆を削り、机の調整もしているため、席にいないことがある。
しかも彼らは全員 Blue Pants 所属なので、同じ勤務時間帯に働いてすらいない。
あなたの家と、同僚たちが設計していた近所の他の家々は放置されて朽ち、ほとんどの人は解雇される。
一部は、より収益性の高い市場向けに、馬小屋や屋内プールの設計へ配置転換される。
前の会社で、うちのチームの見積もりが全部外れ、エンジニアが解雇された理由はまさにこれだった。
この苦みは本物だ。
近くに森や地震地質、ハリケーンがあろうとなかろうと、地震、核の脅威、カテゴリー7のハリケーン、山火事などすべてに耐えられるように作らなければならない。
物置を建てるユニコーン建築家たちが、自分たちの必要に合わせてうまく使ってきた原則に従ったのだと誇れるからだ。
冗談のようだが、その冗談の標的は私たちだ。
これは本当に一段上の被害者コスプレに見える。
家を建てる仕事にも、趣味も知識もないのにすべてを欲しがり、金は払いたがらない、泣き言ばかりの施主や施工者を相手にすることがよく含まれる。
それが仕事だ。
優れたソフトウェアエンジニアは、ステークホルダーやユーザーを相手にするのも仕事だと分かっている。
もう一つ衝撃的な事実を付け加えると、設計図は時に粗雑だったり間違っていたりする。
それでも人々は家を建てる。
それが仕事だ。
逆にプログラマーが建築家のように働かなければならないなら、報酬ははるかに低くなり、50代になる前に重要なプロジェクトの責任者になるのは難しく、膨大な無給の残業をし、在宅勤務もできず、自分の仕事に法的責任を負い、1日の大半を成果よりもコンプライアンスに費やし、これまで想像していたよりもずっと顧客中心に働かなければならないだろう。
工事がかなり進んだ後、施工者たちは費用差がほとんどないので屋根を1メートル上げるかと尋ね、最初は断ろうとしたが受け入れた。
完成後になって初めて、その提案を断っていたら2階はまったく使えなかっただろうと分かった。
家は https://en.wikipedia.org/wiki/Gable_roof 形式の切妻屋根で、階段は外壁の片側に沿ったU字型だった。
屋根を上げていなければ外壁側の屋根が低すぎて階段を歩いて上れず、上げた後でも背の高い人は上るときに頭を傾けなければならない。
皮肉なことに、今やっていることは原文に押し付けているのとまったく同じで、被害者状態を想定することだ。
「それが仕事だ!」と叫ぶのは、少なくとも明示的にはそれが仕事でない場合でも、採用時に雇用主と合意した内容とは無関係に、労働条件で譲歩しなければならないという暗黙の主張だ。
それを必死に伝えようとしている様子は、職場で自分の立場を確立する助けが必要だというサインに見える。
私の経験では、これは雇用関係における力の不均衡から生じるもので、理由は複雑だが、よくある状況に対して一般的で、もしかするとあまり役に立たない助言をするなら、実力を伸ばせば、会議が増えたり別の仕事に引っ張られたりしたときの暗黙の交渉力が上がる。
業務環境で丁寧に自分の立場を示す方法を学ぶことも必要だ。
誰もが不完全情報ゲームをしているので、軽い断固さと自信だけでも、相手がその場であなたが間違っていると決めつけにくくなる。
何に合意しているのかを理解し、自分が提供するものが何なのかに正直であるべきだ。
過去4年間、アルゴリズムとデータ構造を集中的に学んできたのなら、計算問題を解くためにその仕事を引き受けるのだと正直に伝え、単なる頭数や席埋めではないことを事前に知らせるべきだ。
建築家がこの記事を読めば、「プログラマーは楽をしすぎている」という結論になると100%信じている。
実際にプログラミングをする大多数は仕様書を読む能力がなく、読める人のかなりの割合はコスト削減のために意図的に無視する。
それでも実装が間違っていれば責任はあなたにある。
これは、プログラマーが他分野の仕組みを分かっていると思い込むカクテルパーティー・アイデアの完璧な例のように聞こえる。
建築家もプログラマーについて似たような文章を書けるだろうし、実務に必要なことについて同じくらい多くの誤った仮定や誤解が含まれるだろう。
https://danluu.com/cocktail-ideas/
私は視覚的で触覚的なタイプなので、家のモックアップを事前に作ってもらう必要がある
できれば1:1スケールで、完全に動作していて、実際にどう機能するか見られるようにしてほしい
家のどこか一部でも気に入らなければ最初から建て直すべきだし、一度建てたのだから、私の変更点を反映してもっと速く建て直せるはずだと期待する
新しい家は、私が今使っているまさにその場所に建て直さなければならず、新しい家への移行は無停止でなければならない
車が入ったままガレージを建て直し、食洗機とオーブンが動いている間にキッチンの床とカウンターを交換しなければならない
浴室の交換中もシャワーを浴びたり浴槽に入っていられる必要があり、私がセックスしている間に寝室は静かに建て直され、トイレも使用中に建て直されなければならない
サイズを大きくする必要がある
もう建っているのだから、明日には敷地に完成していることを期待する
この記事を書いた人は、富裕層を相手にする建築家を知らないようだ
注文住宅を望む金持ちは、自分で設計しようとすることが多く、基本的な設計原則、使い勝手、材料、構造的完全性といった現実に直面すると、極度に苛立つ
実際に骨組みが立ち始めてから、土壇場で計画を変えることもある
それは、骨組みを初めて見たときに、まだ完成していないのだと分からずパニックに陥らない、という前提での話だ
あるいは、金持ちの友人が基礎工事の現場を見て軽く皮肉を言うと、今度は顧客が、子ども2人にそれぞれリサイタルホールを1つずつ与えるべきだと主張し始める
1つでは足りないからだ
また見事な例として、2階の寝室の隣にFerrariを停めたいので、キッチンの上にガレージを載せたいと言った人もいた
排気ガスなど気にもしていなかった
Dubaiで聞いた話には、ばかげたものがたくさんある
あるデベロッパーが、工事中のタワーのポディウム上にプールデッキを描いてほしいとランドスケープアーキテクトに依頼した
造園側がエンジニアに床の厚さと荷重の数値を尋ねると、すでに完成していたポディウムはプールを支えられないとの答えだった
しかしマンションはすでにプールデッキの写真入りのパンフレットで販売済みで、エンジニアリング側にはプール荷重を考慮すべきだという話も、ポディウムのどこに置くのかも、誰も伝えていなかった
別の話では、40階建ての住宅タワーのコアが20階まで立ち上がった時点で、デベロッパーが突然屋上プールを思いつき、建築事務所に設計を依頼した
基礎、構造、保守用設備の位置まで事前に計画しておく必要があることではないかのように振る舞っていた
https://youtu.be/Us8mDKUaX2M?si=qnrckuGLyWzoFNAe&t=1515
アイデア自体は良かったが、新しい建築雑誌の更新号が出るたびに、毎月アイデアが変わった
そのため友人は2か月に1回ほど、RiyadhやMeccaに出向いて設計の詳細を説明しなければならなかった
さらに狂っていたのは、夫人が1人ではなく複数おり、新しい光沢紙の建築雑誌も何冊もあったことだ
模型をたくさん作らなければならなかったが、これはよくあることだ
もう一人の悪夢のような金持ち顧客であるHitlerも、Speerの模型を好み、考えを変え続けたことで有名だった
彼はいつも自分のほうがよく分かっていると思っていた
こういう記事とそれに続くコメントは、いつも大きな点を見落としている: 建設とソフトウェアはまったく同じ仕事ではない
たとえば建設には、建物を設計する建築家、技術図面を用意するデザイナー、図面に承認の署名をするエンジニア、図面どおりに建築部品を作る製造業者、土地に建築可能か確認する測量士、実際に建てる施工業者、屋根を葺く屋根職人、施工業者がきちんと建てているか管理する現場監督、完成した建物に政府の承認を出す建築規制機関、配線を行う電気工、配管を入れる配管工、壁を漆喰で仕上げる左官、壁を仕上げる塗装・装飾工、残りを取り付ける取付工がいる
彼らはすべて別個の事業体であり、抜けているものや名称を間違えているものもあるだろう
不良施工に法的責任を負う人が複数いても、Grenfellのようなことはそれでも起きる
一方、ソフトウェアエンジニアリングには、何を作るかを決めるプロダクトマネージャー、どう動きどう見えるかを決めるデザイナー、コードを書くソフトウェアエンジニア、PCI DSSやSOC2のような関連標準への準拠を見る監査人がいる
これを支援する役割も多いが、それを入れるなら建設側には5倍は追加しなければならないので省いた
どちらがより大変か、どちらの分野がより優れているかを言いたいのではなく、この2つの分野はそもそも比較できないという点を指摘したい
普通は「electricians」と言うと思う
その開発者は管理者たちと会議し、仕様書を書き、コードを書き、アプリケーションをテストし、デプロイし、24/7のオンコール対応まで行う
私のHNの投稿とコメント履歴を見れば、私もまさにこの点をずっと言い続けてきたことが分かる
私たちはあまりにも多くのことをしている
面白いが、私は橋の建設チームについての以前のバージョンのほうが好きだ
https://www.stilldrinking.org/programming-sucks - 2番目のセクション
それでも共有してくれてありがとう。かなり面白い
「作業にどれくらいかかるかを言うときは、時間や日単位で言わず、人によって意味が違う架空のポイントを使ってください」
また、多くのコメントはこの記事を趣味が悪く、建築家をおとしめ、「プログラミングはつらすぎる」式の被害者意識を取っているものだと見ているが、私は違う読み方をした
これはソフトウェア業界そのものへの批判であり、私たちが顧客に自分たちの仕事の現実を理解してもらうことに完全に失敗している、という話だ
正気の人なら、寝室が2部屋から42部屋まである家を依頼したりはしない
ところが平均的なIT労働者は、ソフトウェア作業ではこういうことを普通だと受け入れている
顧客にこの点を理解させる必要があり、その仕事をスクラムマスターに委任してはいけない
たいてい彼らは、物事をさらに混乱させ複雑にするだけだ
家に入ってくる人たちの厳格なプライバシーを保証しながら、同時に全員がうまくコミュニケーションできるようにしなければならない
また、許可された人だけが入ったり内部の状況を見たりできるようにし、火災、身体的危害、他人から全員を非常に安全に守らなければならない
残念ながら、この安全は追加費用や利用制限なしで実現しなければならない
それでも、器物損壊、放火、窃盗、盗聴器の設置、訪問者への言葉による暴力や暴行、テロリストや世界的な制裁リストに載っている人物の接近から安全でなければならない
保険に入る予定はなく、警察はいかなる違法行為も捜査せず、警備員を雇うつもりもない
しかし家は一般に開放されていなければならない
家を悪用したり攻撃しようとする人々は、退屈した若者の集団から組織犯罪グループ、主要な敵対国の情報機関や軍隊までさまざまだ
幸運を祈る
どんな仕事でも、その大半は人の話を聞くことだ
大統領であろうと清掃員であろうと関係ない
人々は何かを望んでいるが、それを正確にどう、なぜ望んでいるのかはよく分かっていない
何より、自分の問題を聞いてもらえたと感じたいし、その次に最善を尽くして助けてほしいと思っている
場所によっては、新しい家が、以前の家に満足していた人たちのために建てられていることがある
ユーザーが変えたがっていなければ、プロジェクトを簡単に台無しにできる
お金を使う前に、所有者がそのプロジェクトにどれほど本気なのかを見極めたほうがいい
結局、押し通す必要が出たときに解雇されるのは建築家なのか、それとも義母なのかを見なければならない
たいていは「うちの製品にはXが必要だから、やり遂げろ」だ
そのマネージャーの話を何時間、何日も聞き、精神科医の帽子をかぶってより有用な情報を引き出し、要件を再交渉しても、結局、数週間から数か月に及ぶつらい作業は避けられない
どこかのアカウント担当なら理解できる
顧客の話をできる限り聞き、文書やチケットのようなものを書いて、他の人が処理できるように渡せばいい
しかし、ほとんどの時間を聞くことに費やす清掃員は優秀な清掃員ではないので、この言葉は聞こえるほど普遍的ではない