2021年6月5日

「たった1行のコードを直すのに何日かかってるんだ!」←これは砂漠に落ちた針1本を拾うようなものだという話

かなしみのエンジニア...
138
米村歩@日本一残業の少ないIT企業社長 @yonemura2006

東日本大震災のあった2011年から会社としてリモートワークの取り組みを行っております。コロナ禍でオフィスを廃止したら、日本全国から採用応募をいただくようになりました。全国からご応募お待ちしております。あと残業ゼロで有給消化率100%です。株式会社アクシア代表取締役。トゥモローゲート株式会社社員。

axia.co.jp/blog

米村歩@日本一残業の少ないIT企業社長 @yonemura2006

エンジニアが1行のソースコードを直すのに何日もかかったとして、何でたった1行直すのに何日もかかってるんだ!とキレる人は、砂漠に落ちた針を拾うのに、何で針1本拾うだけで何日もかかってるんだ!とキレるのと同じです。針が落ちてる場所が最初からわかってたら苦労しないっつーの。

2021-06-04 08:28:31

わかる...

takeyuki @takeyuki14th

@yonemura2006 今、不具合の原因調査中ですが、数日経ってるので、まだ判明してないのか!ってなりそうです😑

2021-06-04 08:43:04
ぽんたちゃん#北九州市美少女OL @pontacyan7777

@yonemura2006 特定するのに時間かかるよ どっかの財閥企業で一行だがらテスト必要なしとか上司に言われて本番したら車のラインが止まったという話があります。

2021-06-04 16:39:28
森崎 修司 ソフト開発/品質の研究者 @smorisaki

@yonemura2006 同感です。 電車の時刻表を変更するとして例えると、納得してもらえることが多かったです。以下です。 note.com/smorisaki/n/na…

2021-06-04 17:29:42
よし @yoshiyasum

@yonemura2006 @Kenji_Sawada_ 凄くわかります。原因の特定に時間がかかることを分かってもらえない。 次の言葉は「なんでこんな簡単なミスが起きたんだ」か「なんでデバッグでミスが見つけられなかったんだ」のどちらか…

2021-06-04 20:07:32
moon phase @moonphase16

@yonemura2006 「仰る通りです。しかし、問題の特定と変更だけで済むとは限らず、その変更が他に影響を与えないことの確認が必要です 1行だけなのにというお気持ちは当然ですが、安易な変更による未知の問題を防ぐためにはどうしても時間が必要です」 てな話をすると大体理解してくれましたけど

2021-06-04 14:09:49
依水 @sea85419

特定できたとしても、そのように直したら他のところで問題が起きないかどうか、一行だけでもそこまで考える必要があるよね。全体が適切に設計されていれば問題があまり起きないだろうけれど、それを確認することも含めて専門性のうちです。それは自分で動くものを作るよりも難しい場合がありますね twitter.com/yonemura2006/s…

2021-06-05 14:52:21
Nashi3@デザイン担当 @Nashisan9

学生の頃、夜中の2時にエンジニア志望の友人から電話がかかってきたので、何事かと思って電話に出てみると‥‥ 梨「はい、もしも…」 友「じゅうおく!じゅうおく!じゅうおくうううううううう!!!!!!!!!!」 エラーが治らなくて絶叫してました。 原因は半角スペースが全角になってたことだそうです。 twitter.com/yonemura2006/s…

2021-06-05 14:37:19
ムク @ken5zza

わかりみ・・・ 100行とかで済むならまだしも、何万、何十万、何百万といった中から探し出して 見つけたとしても、そこを変えたことによる影響範囲を確認したり・・・ ほんと、大変なんだぞ😂 twitter.com/yonemura2006/s…

2021-06-05 13:56:23
NullPointerException @M0nkey_w

一昨日しょうもないミスで4時間バグと戦った僕が通ります。 twitter.com/yonemura2006/s…

2021-06-05 15:05:22
濃青@クイズ @nosei_quiz

有名なジョークにある 車のエンジンが故障して、修理工を呼んだ。彼がハンマーで1度叩くと直ったが、「代金は$100です」と言う。車の持ち主が「$100は高すぎる!明細書を出せ!」というと、明細書には “1度叩いた工賃 $1 どこを叩けば直るか知っていたこと $99” とあった ってやつじゃん twitter.com/yonemura2006/s…

2021-06-05 15:02:05
椿葵@ねすねす @abadonn3

コレーーーー!!!!!!これこれこれこれこれこれこれこれ頷きすぎて頭取れちゃった twitter.com/yonemura2006/s…

2021-06-05 14:32:03
プラズマアタック @AttackPlasma

砂漠みたいなプロジェクトに突っ込まれるエンジニア、地獄w twitter.com/yonemura2006/s…

2021-06-05 13:37:31

更につらいことも

魔夜 @kaigamebox

@yonemura2006 1行どころか1単語の違いのせいで 画面に何も映らなくなって 半年かかった奴が居てだな… (私の事だ)

2021-06-05 16:47:31
モチガイ @Mochigai

@yonemura2006 そして針を拾うとその衝撃で別の針が砂の中に現れたりするので地獄 三途の川の鬼も引くレベル

2021-06-05 14:49:01
dartei_harry @dartei_harry

その針にさわったら地雷がドーンなんてのもありえるから、調査は大胆に、修正は慎重に、が必要なんだよねぇ twitter.com/yonemura2006/s…

2021-06-05 13:14:02
政木syou @masaki_syou

@yonemura2006 「その針を拾った後に、その砂漠に他に針が落ちていない事を確認する作業」も待ち構えてるんですよね…

2021-06-05 14:55:15
半ずぼん @takWtr

そして管理職になった途端、砂漠の針を1日で見つけろと言い出す法則。 twitter.com/yonemura2006/s…

2021-06-05 11:29:44

プログラマーの仕事は周りからはわかりにくい?

つるじろう @tsurujiro_drago

@yonemura2006 プログラマーの仕事ってまさにこれです。 成果物の量と実際にかかった時間は全然比例しない。 実際にやった事がない人には想像がつかない世界ですね。

2021-06-04 23:15:56
ohnyans13 @ohnyans131

@yonemura2006 @arx_uho デバッグ作業やったモノにしかわからんのですよ。 一年で2、3回しか発生しないエラーを探すのも地獄の苦しみです。

2021-06-04 18:41:07
残りを読む(4)

コメント

. @IroIroZattaNi 2021年6月5日
針が落ちてる場所がわかったぞ!(共通処理)
56
フトシ @hutoshi_P 2021年6月5日
直したら他に影響出ないかとか考えたりする必要もあるんだよね テストもやり直さなきゃならんし 何も考えず一ヶ所直すだけなら楽なんですよホントに…
7
SAKURA87🌸多摩停督 @Sakura87_net 2021年6月5日
まぁ最初から症状でその1行が特定できてる場合って言うのもありますけどね。タダそういう場合は「関係するところ」が何十カ所にも及んで修正で新たな不具合が生まれてないかを見つける「針がもう1本堕ちてないか砂漠から探す」って言うパターンもある。
27
さとうあきひろ @akihirosato1975 2021年6月5日
Sakura87_net 共通処理で専用の関数用意して、その関数呼べば済むように設計してても、別のプログラマがわざわざコードをコピペして別の関数作ってたりとかは割とあるある
8
風のSILK @PSO_SILK 2021年6月5日
数千とか数万本あるカラーコードの内、数百本ある青色コードのどれを切っても目の前の時限爆弾は止まるけど、当たりの一本以外を切ると別の爆弾が爆発したり、別の時限爆弾のカウントダウンが始まる。しかも目の前の爆弾以外はどこに仕掛けられているかわからない。ってのがデバッグ作業。間違えると数百万~数億の金が吹っ飛んだり死人が出たりする。そんなのに対応させられるのに年収は300万円以下ってのがIT業界。
34
sarubass @sarubass 2021年6月5日
出来るかどうかだけでいいから今日中に回答くださいってのも同類。
18
mono @black_mono 2021年6月5日
ちゃんと共通化した部分を使ってると思いきや「間違っている実装を前提に組まれていて間違った動作じゃないと逆にバグがでる」なんてパターンがあったり akihirosato1975
1
oshow2001 @oshow2001 2021年6月5日
自分自身に対して、そういう追求をする事がある。デバッグのボトルネックの解消の為だけど。
0
なちゃ @nachakey 2021年6月5日
そんで落ちてる針に依存してるコードが割とある地獄。
8
久米留宇 @RueKume 2021年6月5日
胃にクるので具体例を出すのはやめてください(汗
12
山の手 @Yamano_te 2021年6月5日
再現できないバクほど厄介。検証環境で同じことしても起こらない。本番環境を借用しても起こらない。困ったことに割とある
53
棘垢 @eU3oSlnSHuAO49c 2021年6月5日
砂の中に針が1本ならまだ良いんですけどね…ほかの針とか針っぽい砂とか一杯混ざってるんで…
24
ダルジィ @M0NcDTpW7UOFJd9 2021年6月5日
「どっかの財閥企業で一行だがらテスト必要なしとか上司に言われて本番したら車のラインが止まったという話があります。」ぼかしてるつもりでぼけてないやんけ!
6
金目の煮付 @kinmenitsuke 2021年6月5日
この表現はさらに誤解を生む気がします。「原因さえわかればあとは簡単」と誤解する人が出そうだし、さらには「見つけるのが大変なのはお前らが整理して作らなかったからだ」とか言われかねないです。見つけるのが大変なパターンももちろんありますが、より難しいのは影響範囲の見極めやそれに付随する試験等ですし、何より問題が解消されたことを確認すること自体の難易度が高いですから。
3
ろんどん @lawtomol 2021年6月5日
法律の条文も、「この条文を準用してる法文」が沢山あったりしてカオス
16
ma08s@フォロー外からごめんなさい @bygzam_ma08s 2021年6月5日
こういう苦労が多少なりと分かってるつもりやから、エラーが出たときはメッセージや発生状況(再現性)をメモったりと、素人なりに情報はそろえるように心がけている。
0
[30]Kirara@11/23大⑨州? @Kirara1314 2021年6月5日
DOSベースの数十行しかないプログラムですらデバッグ作業はコード書く時間の倍以上かかるってのに……
1
ザッキー🚙🍤 @zakky_san7 2021年6月5日
面談だと未だに「一日何ステップ(プログラムの行数)書けますか?」みたいな事を聞かれて、 何かなぁ…と思う時はある。 現場ですら、「一日に何行書けるか」がPGの能力を測る指標の一つとなってたりする。
8
龍ex @ryu_ex222 2021年6月5日
ある機械が動かないので開けると無数の歯車が組み合わさってて、動かない原因の歯車を見つける。 他の歯車に余計な干渉しないかとかを考えながら交換や新しくつけるって感じかな。 結果的には一つの変更になっただけで、そこには全体把握、影響範囲、最適な歯車(処理)の選択ととても考えられている可能性がある
11
龍ex @ryu_ex222 2021年6月5日
と言うか、一個直したと単純に言っても単体テスト、結合テストとまたやり直しなんだよ! 頭の中でどれだけ正常に動こうが、隠されている仕様とかでエラー吐いたりする、人間の脳ぐらい繊細で複雑なんです!
6
gaheki @gaheki 2021年6月5日
まず針を探す手間があって更にその針を拾い上げたらトラップ発動しないか確認する必要あるわけで
0
sake @sake_ne_ku 2021年6月5日
IroIroZattaNi 影響範囲を考えると絶望で目の前が真っ暗になりそうだ…
1
魔子々 @doragonsherman 2021年6月5日
コレは実際その通りだと思いますよ ちょっとした規模のプログラムでも原因不明のエラーだったりすると  エラー箇所表示自体間違っていたりして 総当り訂正(最初から作り直しとかそんなレベルの手間)するはめになったりするのです(私だけかも知れませんがね プロではないのでご容赦願い)
4
みずの とんび @lunatic_tonbi 2021年6月5日
nachakey 落ちてる針に依存してるレコード、に見えた。
0
ポン酢太郎 @ponzoo2you 2021年6月5日
針の拾い方ミスったら砂漠が機能しなくなるしな
8
yamamoto @takahara_max 2021年6月5日
余計な仕事を増やさないためにも、仕様書や要件定義書をよく読み、コーディング規則を守ってシステムを実装しようね!
0
FX-702P @fx702p 2021年6月5日
針を拾ったらいろんなところに不具合が出るから、たくさん針をばらまいて無かったことにしよう。
0
trycatch777 @trycatch777 2021年6月5日
まさに数日前にこの手の会話あったわ。変に生半可な知識がある客は厄介。「ソース数行直すだけになんで数日かかるんだ!」ってほんとこのまとめタイトルと同じセリフだったわ…
3
じゃこうねこ @Jakoneko2 2021年6月5日
開発中の1行修正はいいのだが、出荷後に発覚したバグだと、その1行を直すために、不具合の原因の説明から修正が他の機能に影響しないことなどをまとめた文書を作ってQ&Aに説明して変更の了解もらって、試験仕様書作って試験して、マスターディスク作り直して、そのマスターディスクが正しくインストールできることの試験もおこなって、と軽く1か月近く掛かってしまう面倒くさい業界もあるっす。
10
豆崎豆太 @qwerty_misp 2021年6月5日
そこは藁の山じゃないのか
1
Metallis(へたれ) @c7R1S0tU 2021年6月5日
直すのは数行。直す候補は数万行。
9
Denullpo S. Hammerson @denullpo 2021年6月5日
自分も駆け出しの頃はこんなノリだったけどさ、そもそもどうしてウチらの業界って上も下も揃って無能をアピールしたがるんだろうな。失敗に学ぶためのナレッジじゃなくて、それで平常運転だと言い張ってんの。だからいつまで経っても進歩がない。まったくもって不健全極まりないったらありゃしない。
1
佐野まさみ @gameperson_sano 2021年6月5日
針探しのたとえ出した途端「いいからHurryUp!」って言われたら切れるわな。 #dajare は悪くないけど。
0
カズマサみんC @mskazumin 2021年6月5日
直した箇所を量で語らない方がわからない人にとってもいいよな。障害特定作業の工程と予想されるテスト作業を予め割り出して説明しよう!なお直せば直すほど範囲が広がっていく模様。
2
もりさん @TL11M06G30o80Bo 2021年6月5日
気のせいか、修正個所のコード数と、その後の検証ボリュームって反比例する事が多いですよね・・・
0
掛居明彦 @KakeiAkihiko 2021年6月5日
売り上げや利益で仕事の良しあしを計ろうとする奴らが基礎研究を軽んじたりするのも同じだと思う。
0
しめじちゃん @simiej01722872 2021年6月5日
これはちょっと違うけど……絵師「髪をショートにするだけ?空間バランス変わるんで他にも手を加えたいんだが」動画マン「ワンカット弄るだけ?シーン繋がらないから時間くれ」みたいな事はありますね。後から直すのは手間。
15
櫻子。@相模国 @sakurago_cc 2021年6月5日
でかい磁石で探せばいいんじゃね?(砂鉄ドバー)
1
Earwax @Earwax97409510 2021年6月5日
針が落ちた場所が分かりやすいように巧くログを仕込むのも腕の見せどころやで。なおマネージドサービス
3
個人の感想です @Charlie3_y 2021年6月5日
プロになると「探すために作戦Aと作戦Bを実施するので〇日ください。短縮する必要があるなら〇〇君をサブでください。」とか作業前に申告するのも仕事のだからなあ。
1
ばしにぃ @hiro_orso_viola 2021年6月5日
実際の現場だと「まず何を落としたのかも分からない」事が多くてな…
6
kusano @t_kusano 2021年6月5日
ここだけの話だが、落ちてる場所もすぐにわかったが、はええと金とれねぇとか今日はだりぃからちょっと寝かすかとかいうことも、あるかもね。
0
しょーた @shota243 2021年6月5日
直すのがその1行だけでよいことを確認するのがまた大変だし。
10
_ @readonly6582 2021年6月5日
こういうバカが客の上の方に居て、「一行程度直すのに何ヶ月もかかった?そんな無能な会社は切れ!」となって、プロジェクトを途中で引き上げられると、それはそれは悲惨なことになるのですよ。客の会社が。
15
どんちゃん @Donbe 2021年6月6日
・たった一本の契約とるのにどんだけ時間使ってんだよ! ・たった一人口説き落とすのにどんだけ接待してんだよ! ・たった一人新入社員雇うのにどんだけ金と時間使ってんだよ! 「それは違うだろ!」て思う営業マンは明日にでも精神科へどうぞ。割と真剣に。
3
不具合さん @tunagaranaisup 2021年6月6日
一行直せばいいという結果がわかってるなら先に言えよ その一行を直せばいいという結論を得るためにエンジニアが日々どれだけのコストを払ってると思ってんだ
3
trycatch777 @trycatch777 2021年6月6日
針で例えると、こんな感じかな? 針の場所が1個見つかる→砂漠に他に針が落ちてないか調べてリストを作る→ぜんぶ針を拾う→リストで本当に全部拾ったかをチェック→本当に針がないか砂漠全体を調査して確認する
1
れたす(旧”おふ”) @una_lechuga 2021年6月6日
医療もそういうとこあって、一か所変更すると膨大な確認が必要になるから気まぐれでやらないでほしいなー、とかある。でも一般人は「ここ変えるだけでしょ?」で軽く要求するし、どれだけ大変なのかを自分の業界に照らして考えてくれる人はあまりいなかったり。します。
4
switch @switchhitters7 2021年6月6日
じゃあお前がやれよって話にしかならん
0
nekora2520 @nekora2520 2021年6月6日
不具合調査の進捗と今後の方針や見積もりを超細かく聞いてくる超煩いユーザは居るけれど、”何でたった1行直すのに何日もかかってるんだ!とキレる人” と出会った事が無いのでこの手のは作り話を疑っている…。元ネタはエンジンを散々調べた挙句ポコッと一発叩いて直す自動車修理工の小話あたり。
0
kumonopanya @kumonopanya 2021年6月6日
テストを書いておけば砂漠の大きさも何分の一かになるぞ。
0
moramora @MoraMora_FF14 2021年6月6日
(結果的に)1行を直すためだけに数十倍の修正して原因突き止めたりな…分かった時の脳のスッキリ具合は気持ち良いけど…
0
ゆうへい @35dieyuhei 2021年6月6日
後で色々追加しやすくするために全部関数にして呼び出せるようにしといたろ!
1
キケリキー @KIKERIKI17 2021年6月6日
今時「作業結果のコード数を確認する上司」なんているのか? 冗談半分で「この1行に三日かかりましたww」みたいな話をするとしても、それは状況が許す場だろうし・・・どっちかというと元ブラック現ホワイト経営者の口が語るなら「IT現場で人月請求になるヤバさ」みたいな逸話の方が面白いのにな。例えそれが1分で修正されたのだとしても、その価値は300万、みたいな。
0
yuki🌾㊗️7さい🎉⚔ @yuki_obana 2021年6月6日
スーパーで売上128円違うってなってもぼっちで調べてねですまないでそ?実地棚卸ししたら6000円オーバー盗まれてそうなことも発覚して値札もチェックしたら8商品が間違って登録されてたりおつとめ品はもう処分しちゃってるけどその会計処理はレジ通さずやってたりね。いよいよ何がなんだか分かんなくなってくるんですよ(´・ω・`)
0
nesus-B @NesusB 2021年6月6日
そんな事を言う馬鹿がそんな事を言う立場になるその会社は終わってる。
0
alan smithee @alansmithy2010 2021年6月6日
「注射針の山から鍵を探す」という喩えも https://saw-jiten.com/glossary/trap/注射針地獄
0
Irana Til Ark @irana_gmw 2021年6月6日
針見つけたはいいけど、その途中で全然別の所に針を落としてくる、というやらかしをしてくれた人がいたっけ…(遠い目)
0
TOPNEP @nepnofan 2021年6月6日
その落ちてる針がピラミッド支えてたりするんですね
0
もも @karutenoido11 2021年6月6日
電車のたとえわかりやすいね
2
愚者@勇者部満開19欠席 @fool_0 2021年6月6日
下手すると修理以上に故障箇所の特定というのは難しいからねえ……
0
おおかみ @wolf64m 2021年6月6日
たった一本でとんでもない事の例えはこれがいいかも https://twitter.com/yonemura2006/status/1400979043579662336
1
tarobo @tarobo 2021年6月6日
sake_ne_ku 影響範囲を特定できないから、「共通処理2」を作って問題が起きている箇所だけを差し替えて、別のバグが見つかった時には「共通処理3」を作って...(以下同文)。で、システム移行の時に「共通処理10」あたりを見落として動かなくなると
0
わい(ry @waidottowai 2021年6月16日
原理的にバグが起こり得ないプログラミングとか発明されないもんかな…(棒
0
ディアリーン@アークス @amatuki314 2021年9月21日
うるう年の例外が原因でカレンダー参照と内部時計の不一致起こしたのは知ってる。
0