2021年10月19日

『プログラムのコードを整理するために雇った人が使えない』と社内で話題に→通常の技能では難しいのでは…?「作家に古文書の解読を頼むようなもの」

なぜ難しいのか?ということが、なるべく広くわかってもらえるように整理しました。つらそう。
241
魔女みならい @witch_kazumin

仕事先で、「開発したプログラムのコード整理に雇った人が使えない」って話がでてるのだけど、 「今は組織にいない人が作った、ドキュメントがほぼないソースコードを読み下して整理する」 って、かなり知識が必要だから、普通のプログラマ案件の金額で雇える人に頼むのは無理だと思うんだよなあ。

2021-10-18 12:06:50
魔女みならい @witch_kazumin

「まじかる☆マリオネット」の研究員。 スラドでは“魔女みならい”、ホビーロボット界隈では“人形つかい”な人。 動いてお喋りする人形「茉莉花」 を育てています。 (モーメント twitter.com/i/events/11254… ) リツイート多いのでRTミュート推奨です

marionette.mtlab.jp

tkis @t_kis

開発系の業務長くやってる人でもここをかなり勘違いしているケースが多いみたい。 twitter.com/witch_kazumin/…

2021-10-19 07:44:25
やすなお(アイコン変えました) @yasnao

ものすごく根気が要りますね。根気&根気。自分では使わない書き方も知ってないと解読できないので、知識も確かに… twitter.com/witch_kazumin/…

2021-10-19 08:54:57
雪鈴影(ゆきかげ) @スロスタ難民 @yukikage0315

そもそもこれプログラマの業務じゃないから、プログラマ単価で雇おうって時点で間違い。 twitter.com/witch_kazumin/…

2021-10-19 14:09:11
二天一流ore @ore57436902

@witch_kazumin どんな優秀な人材でも困難なミッションかなと想像します 使えないって評価するのが適切かは、軽々しく判断できませんが。

2021-10-19 08:07:55
type613@Kitagawa @type613

@witch_kazumin 一か月ぐらいAPIやプログラム構造、実動作をぼーっと眺めて、資料にまとめたは捨ててを繰り返して、やっと1か所直せるかどうかぐらいのような気がする。 知識もそうだけど特性が違うような。

2021-10-18 12:42:28
魔女みならい @witch_kazumin

@type613 プログラマの仕事というより詳細設計の技術者の仕事に近いと思う。あと、プログラムの処理対象の分野についての理解も必要。 「プログラマ」とか「SE」という言葉で十把一絡げにしてるのが良くない。

2021-10-18 12:50:50
type613@Kitagawa @type613

@witch_kazumin おっしゃる通りで、ドキュメントゼロだと概要設計、詳細設計から分析必要でしょうね。前段から順に理解していかないとまず無理です。 実装レベルのコード整理だけならプログラマでも出来るかもですが、それにしたってある程度設計側ができないときびしいでしょうね。

2021-10-18 12:53:25
魔女みならい @witch_kazumin

@type613 横から見ていてモヤモヤするのだけど、口を出すと引きずり込まれそうなので出せないw

2021-10-18 13:00:30
type613@Kitagawa @type613

@witch_kazumin そもそも積極的にやりたがる高スキルエンジニアがいないですねw

2021-10-18 14:17:06
魔女みならい @witch_kazumin

@type613 苦労する割りには、得るもの少なそうですからねw

2021-10-18 17:25:00
type613@Kitagawa @type613

@witch_kazumin 生産性ないし創造的でもないしね。副業なら…ぐらい(そして成果は出ない)

2021-10-18 18:50:42
Mekarabeam Ryo ロボ娘プリティーメイキング終了・ご参加ありがとうございました @beam8000

@witch_kazumin 適正というか、作った人と気が合うかってのが大きそう。自分だったらこう実装するだろうなって風に作ってあるとこうだろうなだし、なんでこんな実装?となるとなんで?

2021-10-18 20:41:47
魔女みならい @witch_kazumin

@beam8000 C++らしいので、尚更相性の問題がありそうです。 温泉旅館風に増改築されてそうだし。

2021-10-18 22:08:30
わかりやすくたとえると
よーすけ @yosukeadachi

釘一本、ネジ一つ一つ違う犬小屋レベルからマンションまでの建築物だけ見て、設計図を起こしてくださいという感じですかね。もっと酷いかも。 twitter.com/witch_kazumin/…

2021-10-19 13:59:05
虚炉 @t_kyoro

設計図のないビルの配線やら配管やら任されて受注業者の記録すらもない案件みたいなもんだな twitter.com/witch_kazumin/…

2021-10-19 11:43:45
ymymmgmg @ymymgmg223

@witch_kazumin 作家に古文書の解読を頼むようなものですね。書く技術と読み解く技術は別のもの。

2021-10-19 12:19:26
スパゲッティモンスター @spaghet76868452

@witch_kazumin 新作ラノベを書ける人と、源氏物語を古文のまま改作できる人なら、後者の方がレアキャラなのは分かる。

2021-10-19 12:19:30

成果も出にくくて大変そう

ぜび @xevixevi

プログラムを組む能力と解析する能力は別だし、他人のプログラムを読む難易度は、自分とどの程度スタイルが似ているかで違ってくる。さらに改造するとなると、全体を把握しないと危なっかしい。どうしても時間のかかる仕事。 twitter.com/witch_kazumin/…

2021-10-19 13:51:02
残りを読む(23)

コメント

森のクマッチング(ぽっけ風) @peerchaky 2021年10月19日
ドキュメントもないコードを解析して整理するのは厳しいわ。 コード整理が必要ってことは処理があちこちに飛んでるんだろうし。
64
結城真@社内秘 @shinokiwa 2021年10月19日
やったことありすぎて二度とやりたくない
49
uso800 @cD2A9zcGJM5iDfk 2021年10月19日
コードを整理ってコード書かれたファイル書き換えんの?それ単体から結合まで全部テスト必要になるんじゃねえの?一応動いたとしてそれを本番に持ってくの?誰か止めろよ俺は嫌だが
28
フトシ @hutoshi_P 2021年10月19日
俺はこういうタイプの仕事好き 適正があるというか人のクソプログラム見ながら笑って酒飲める でもデータベースのカラムにカンマ入ってて構造腐ってた時は流石にキレた
60
VRAM01K @VRAM01K 2021年10月19日
ソース解析して分かる内容ならまだいいんだけど、入力データに依存して振る舞いが変わるのにデータの規定が明確になってないと何が正かも判断つかなかったりする
18
フトシ @hutoshi_P 2021年10月19日
でも案件によって前提が違うか… 直近で動いててインプットとアウトプットが決まってるならいいけどそこがフワッとしてたら僕も嫌だな
7
m.k @m_k_nao 2021年10月19日
滅んだ古代文明の古文書解読みたい
7
ちょちょまる @sakuya_little 2021年10月19日
まぁ、こういう人たまにいる。 挙動だけ目視してリバースエンジニアリングしろって言ってくる系のやつ。 そういうのは写輪眼持ってるやつに言ってくれ。
31
きゃっつ(Kats)⊿ @grayengineer 2021年10月19日
全く別っていうのは言い過ぎ。基本的に開発の仕事は製造(コーディング)だけで終わりではなく、その後に試験があるわけで、試験によってNGが出たら修正(デバッグ)があるわけで、何が間違っているのかを分析できる能力がなければ務まらない。コード分析能力というのは開発者には必須。
5
きゃっつ(Kats)⊿ @grayengineer 2021年10月19日
そもそも開発案件からしてフルスクラッチでの開発っていうのがそんなに多くはなく、たいていは古いシステムのリプレイスであったり改修であったり、移植であったり、というのがベースだったりするので、コードの解析をいっさいしないでプログラマやってます、っていう人はほとんど存在しないと思う
1
きゃっつ(Kats)⊿ @grayengineer 2021年10月19日
cD2A9zcGJM5iDfk たぶんですけど、リファクタリングのことを言っているのではないかなと推測します。
4
TaiDa @idarf777 2021年10月19日
期間にもよりますが、一般的にはそれを作った人よりも技量が高いエンジニアじゃないと厳しい業務ですね。
64
ちょちょまる @sakuya_little 2021年10月19日
なんだっけか。 「デバッグはコーディングの2倍難しいので、お前が全力で作ったプログラムは理論上お前にはデバッグ出来ない」みたいなやつ。
29
たし @punimuchiya 2021年10月19日
「コードの整理」が、リファクタリングなのかリバースエンジニアリングなのか腐敗防止のためのパッケージ再編なのか、ツイートしてる人たちもそれぞれ別の想像してそう
25
ぼんぼ%サクラ組 @tm_bonvo 2021年10月19日
他人のコードをデバッグしたり機能追加したりすんの普通にやってたな。あんましドラスティックなリファクタリングはヤバいのでやってないけど、読んでて眩暈がするVB6のスパゲティは1から作り直したくなる
3
幽霊少女まい🐼 @yuu_rei_3man 2021年10月19日
MOTHER3の開発がこんな感じじゃなかったっけな
3
いぬだわん @InuWang 2021年10月19日
ドキュメントが無い人のソースを読む仕事は頻繁にやってるな。 元ネタもコメ欄も新規開発しかやらない人の方が多いのかな? なんか意外。 OSSなんか大抵このパターンだよね。
8
ちょちょまる @sakuya_little 2021年10月19日
InuWang やってるからこそ「素人は黙っとれ」なんじゃない?
0
きゃっつ(Kats)⊿ @grayengineer 2021年10月19日
ドキュメントがないのでソース読んで判断して、っていうのは、まだ「ソースが正」っていう原則で判断していいよっていう保証をもらってるので、多少マシ。困るのは、ドキュメントあるけど間違いだらけで実装と一致してないところもあって、どっちが正しいかはそれぞれ違う、みたいな場合。なにが正かが決まってない状態というのが一番困る。
25
きゃっつ(Kats)⊿ @grayengineer 2021年10月19日
sakuya_little やってるなら、プログラマに必要な能力とコード解析の能力は別物、とは言わないと思うんですよね
3
きゃっつ(Kats)⊿ @grayengineer 2021年10月19日
むしろプログラマにはコード解析の能力は必須、とか、付き物、とかになるはず
5
ちょちょまる @sakuya_little 2021年10月19日
grayengineer 「プログラマ」の示す範囲がクソ広いので、まぁ出来ない人もいるんじゃないか…とか、そっちの方が時間かかるから傍目には進捗無いように見えてるんじゃないか…とか考えてた。
0
TaiDa @idarf777 2021年10月19日
InuWang そんなキレイでちゃんと動いてるコードを対象にした話じゃないと思いますね
21
wander-land @wander4351 2021年10月19日
料理できる人でも、他人のマズメシを美味く作り直すのは難しい …みたいな事かね?
1
SAKURA87🌸多摩丁督 @Sakura87_net 2021年10月19日
そのために一人雇うレベルだと最早出力結果だけ合わせて中身作り直した方が早いんじゃないかって感じやな。なんかそうできない理由でもあるんだろうけど。
4
SAKURA87🌸多摩丁督 @Sakura87_net 2021年10月19日
wander4351 使った道具と食材だけを見て昨日食べた料理を作れ、くらいの難易度。
29
氷面鏡 @himokagami 2021年10月19日
yuu_rei_3man  確か本文内の下から2行目がMOTHER2の開発時に途中から助っ人に入った当時の岩田社長が言ったセリフだった様な…。
10
ミィム@糖質制限中 @happylab 2021年10月19日
これできる人はコードの記述ミスまで読めるレベルの人だってことは知っておいた方が良いと思うんだよね。
0
ビッター @domtrop0083 2021年10月19日
「今食った料理をレシピ無しで再現してからより洗練させろ」と言う指示は、単純に「うまい料理を作れ」という指示とは難易度が違う的な?
15
イチロー @sbzkichi 2021年10月19日
ドキュメントをちゃんと書いてくれる人に作り直してもらったほうが早そう&安そう。
0
結城真@社内秘 @shinokiwa 2021年10月19日
Sakura87_net ついでに誰でも再現可能なレシピの作成も追加で…。
5
飛達磨 @tobidaruma 2021年10月19日
ちょうど今、古いスクリプト系言語で書かれたのをオブジェクト指向言語にする仕事やってるけど、担当領域外のライブラリだかなんだかが出力してるグローバル変数がいきなりソース中に現れるのでまいっちんぐですわ
3
OHK @oyamahirok 2021年10月19日
ウッッ、知らない業務のコメントもないソース単品からドキュメント生成&必要部品を特定するヘドロの沼のごとき作業で毎日2時3時まで働いた最低な仕事の思い出が噴出してきた😭
1
SAKURA87🌸多摩丁督 @Sakura87_net 2021年10月19日
shinokiwa そこまで要求されるなら牛丼が出てくる値段と早さで高級フレンチフルコースも追加されるな。
1
Kurey@多分シャドウバン中 @kureycat 2021年10月19日
「他社が作ったんだけど製造者がもう退社してしまって放り投げちゃったらしく、解析+改修して欲しいって依頼があるんだ」ってのを何度やった事か。
4
rambda @rambda2 2021年10月19日
そいつが使えないのは事実だろうけど、単価なんてどうして知ってるんです?
0
へのん@dポイントよく期限切れで失効する @dettenten 2021年10月19日
これ!書ける人なら(他人のコードを)簡単に読める、と誤解してる人ホントいて困る。得に自分は書けも読めもしない人!
14
久米留宇 @RueKume 2021年10月19日
ここバグっぽいんですけどいいんですか? →そこのバグを前提に他のプログラムで補正しているのでそのバグを修正するとバグリますw
21
こっぱみじん😈 @paoohn 2021年10月19日
こういうのって「今動いているシステムの動作が正」と言われつつもコードから明らかなバグを見つけてしまった場合に揉めるんだよ。どんなに重大なバグだろうとそのまま移植してくれって言質とらない限り。
14
kusano @t_kusano 2021年10月19日
どうせ世の中九割はクソコード。リファクタリングしてやっても少しでもミスがあればデグレって叱られるだけ。割にあわないからクソコードは呪うだけで触らない。見ないふりして自分が書くところだけをしっかり書くだけだな。
5
エリ・エリ・レマ・サンバディトゥナイ @mtoaki 2021年10月19日
これ思い出した 「【更新あり】PC-9801のプログラム(ソースコード無し)をリバースエンジニアリングしてくれ!→変態技術の塊なことが判明しました」 https://togetter.com/li/1185437
4
幽霊少女まい🐼 @yuu_rei_3man 2021年10月19日
himokagami それですー!なんかまとめ内にデジャヴあると思ったらwww
0
麻樹・あるいはまお @maki_miquette 2021年10月19日
Sakura87_net にんたまじゃがにくだったら早々に詰むなそれ。
1
tarobo @tarobo 2021年10月19日
先人たちが途中まで作って挫折した資料が大量にあるやつだ。解析しないと自分の作業ができないとかで、必要に駆られて手をつけるんならともかく、これだけだときついな。
0
たか子 @takakomitsumugi 2021年10月19日
自分が作ったhtmlやcssですら時間経つと訳分からなくなるのに、他人の書いたコードって…。
15
nekosencho @Neko_Sencho 2021年10月19日
自分で作ったソフトでも、すっかり一度忘れてると何やってんだかすぐわからなくなるというのに……
8
フ一口 @fu_hitokuchi 2021年10月19日
自分たちじゃできないから雇ってるのに使えないだなんて言ってらっしゃるんですかね? ちゃんと業務説明してたらお金に困ってない限りは逃げ出してるはずですが……
1
nekosencho @Neko_Sencho 2021年10月19日
それはそうと、ヘタすると新規で作りなおしたほうが安くないかねそれ、ドキュメント類を今度はきっちり作成していってさ
7
生きてる毛玉 @ikiteru_kedama 2021年10月19日
みずほで起こってるのがまさにこれだと思うんだけど改善できるのかなぁ…
16
創作文芸サークル時の輪@通販受付中 @Kamimura_Maki 2021年10月19日
プログラミング言語によっては、若い人は昔の書き方のコードは「今はもう使いません、参考程度に知っておいてください」で詳しく学んでないこともあるしなあ。
0
RAIYA@提督 @RAIYASB 2021年10月19日
職業訓練校時代、別の人が途中まで組んてたプログラムを急遽引き継ぐ事になったけど、解読で時間かかってる結局諦めた事があったなぁ 引き継ぎなしで他人(実力不詳)の書いたプログラムを回収するのはかなりむずいよ
1
aki @Yy7_f 2021年10月19日
自分のコードだってひと月もしたら読めなくなる
28
RAIYA@提督 @RAIYASB 2021年10月19日
mtoaki マイコンやってたときにメモリに泣かされた事を思い出したわ コードが長すぎると動かないので、如何に不要なコードを削り圧縮するかで悩んだわ
0
本田豊太郎 @redhand_doom 2021年10月19日
前任者が「仕様はコードをみればわかるからドキュメントないよ」とか抜かしたのを思い出してしまった
0
もい @m0i70937404 2021年10月19日
よりによってC++か……無理
2
RAIYA@提督 @RAIYASB 2021年10月19日
grayengineer 実力が不明でいつの時代のコードかも不明のソースコードを紐解くのと新規案件(更改にしろ新規にしろ)で新たに書き起こしたコードのデバッグを同列に見るのはどうかと思う
9
ぶい @nmr9696 2021年10月19日
コードすら与えられずに、操作とデータだけで仕様起こしをするという芸をなぜか身に着けたようだ。 結果、かなりな年寄りなんだけど、その特殊技能で食っている感じになっている。
0
water20 @water20 2021年10月19日
とりあえず自分の会社の仕事を理解していない採用担当をクビに。
3
ぶい @nmr9696 2021年10月19日
コードだけでは絶対にわからないのは「なんでそうなっているの」だ。今どうなっているかはわかる。でもなぜそうなっているのかは、コードは語ってくれない。 そして、今やそのシステムありきで業務ができているから、「よくわからないけどかえられない」という答えしかユーザからは返ってこなかったりするのだ。うんざり。
27
捨てさん# @beryberychan 2021年10月19日
設計書ないのはまだいいけど、1番の難問はコーディング方針の意識合わせな気がする。俺はこのコードがいい・この方が見やすいという発注者の好きな組み方で直さないと、どんなに綺麗にしてもNGくらう地獄がある
0
alan smithee @alansmithy2010 2021年10月19日
こんぱいるしたバイナリしかない状態での改修の仕事を振ってくる人間は人として梅ジャムになればいいぜ
11
yuki🌾㊗️6さい🎉⚔ @yuki_obana 2021年10月19日
まず静的な部分でX→Y→ZでY使ってないならYはゴミ。メモリ的に格納する場合でも関数内でメモリ確保して突っ込むようにしてメモ化関数として処理する。g.fを最小化して整理。最終出力だけに統合して一般化する。動的な処理部分も同様。Π(all i,t){y(t)=df(sf(x,0),t)}で一般化して動/静的関数配列と変数配列とキックなり時刻なりなんか適当に入れるだけ。必要に応じてテーブル追加してメモ化。高速化要求がなければとても見やすくなるよ(´・ω・`)高速化はビット単位での制御と配列修整必須
0
S.O. @so_rei 2021年10月19日
それをするには高度なスキルが必要で、そんな技術を持ってるやつはもっといい仕事に行くっつーの。 「人手不足」とか言ってる業界、だいたいそういうのばっか。
4
Toge Toge @TogeTog81377597 2021年10月19日
間違えたふりして削除してフルスクラッチで作ったほうが早いまである。
9
未完缶 @citrus_hanayu 2021年10月19日
よりにもよってC++。  better Cとして書かれているか、レガシーな多重継承祭りか、TMPだらけのコンパイル時計算祭りか、可読性を無視した謎最適化祭りか、開いてみるまでわからない。
2
泉屋 @i_z_m_y 2021年10月19日
一年前に自分で書いたプログラムのリファクタリングだってやりたくないのに他人の作った本番資材にバグのリスクすら許されない状況で手入れるとか絶対やだ…
5
ガッティー(nemo) @gattelidaze 2021年10月19日
あるある 普段からそんな感じ(泣)
0
小判@忘れないあの日の歌と空 @asami_konno 2021年10月19日
昨今のIT業界は人手不足がひどくて、そんなスキルある人簡単には雇えないから「スキルが無い人でもコードがリファクタリングできるようなマニュアルを作れ」というムチャブリされたりする。ってか、されました最近…。
9
masano_yutaka @masano_yutaka 2021年10月19日
 顧客「長年1人で社内システムを開発していた社員が退職し、新規のシステムに刷新したいので見積りを。予算は5千万」→その結果こうなった https://togetter.com/li/1353521. 既視感あると思ったらこれだ。 
4
たるたる @heporap 2021年10月19日
リバースエンジニアリングやコードリーディングは単に相性や好き嫌いとかそういう問題じゃないかなあ。僕は頭のいい方じゃない(大学の偏差値でいうと50以下)だけど、なんやかんやでドキュメントのないプログラムの改変やリバースエンジニアリングはよくやってる。
1
飛んだ犬の家 @MDg7hug7WkGmXP6 2021年10月19日
まとめにあるが、こういう案件は作り直した方が早い。こういうのは安くつく可能性も高いので、発注元に新規開発を促すの手。 ただ世の中改修案件おおいので、改修するより新規開発の期間と金額面の優位性を示すのは難しいのかなぁ。
5
茗荷昇紘 @masilite 2021年10月19日
組み込み系の業務で、仕様書もフローチャートも無いプログラムのアセンブリコードを解読して処理内容を書類にまとめろと言われ、やった事ある。なお下流も下流のほうだったので、立場はお察し。その後、トヨタショックでリストラされた
1
りょく @ryoku73 2021年10月19日
まって慣れきってて普通のことだと思ってたけどこれで評価上がる余地あるなら単価上がらないかなぁ〜 別に移動する気もないのになんかやたら心配される理由わかった気がする……
1
たるたる @heporap 2021年10月19日
リバースエンジニアリングが得意ですって言ったら転職しやすくなるだろうか。
0
木彫りの虎 @m_gmp79 2021年10月19日
やらされてる人にとても同情する。とても。
2
smiru @C5UAvhReNSOHz0h 2021年10月19日
ただでさえ人のコードというのは読みにくいし、「今こうなっている(動いている)」と「こうあるべき(あるべきでない)」は別物だからそれを定義しないことにはどんな優秀な人間も歯が立たない
2
飛んだ犬の家 @MDg7hug7WkGmXP6 2021年10月19日
wander4351 焦がした肉や野菜が元に戻らなくて捨ててしまうようにゴミになったソースコードは捨てて新しく作った方が簡単という意味では近いかも。
1
四国の紅牛 @ShikokuRedBull 2021年10月19日
「一から作るより楽に決まってるんだから、予算は半分でいいよね?」
1
深井龍一郎@二日目西た21a @rfukai920 2021年10月19日
大昔、Javaの業務システムで似たようなことをやらされそうになったことあったわ。「一から書き直した方が早く終わるからそうさせて」って言っても通らないの。
3
nekora2520 @nekora2520 2021年10月19日
割とコレが好きで昔は良くゲームをダンプリストから手動アセンブルしてはプロテクトチェック箇所を見つけてはNOPに(r
0
飛んだ犬の家 @MDg7hug7WkGmXP6 2021年10月19日
ShikokuRedBull なんという呪いの呪文! しかも高確率で解呪できません。
0
Matamo_shita @MatamoShita 2021年10月19日
他人を「使えない」と評する人はいったいどれだけ「使える」のですかね。
7
gx9900 @GX9900GUMDAMX 2021年10月19日
ハードなら物理法則からは逃げられないのに対して、ソフトウェアって法則とか無視しても作れそうだからなぁ。
0
sentinel_twit2 @sentinel_twit2 2021年10月19日
それが出来るはずの人材を適正な予算で雇ったのに使えないのか、それとも採用担当がアホで分かってないのか。どちらなのだ?
0
たるたる @heporap 2021年10月19日
予算削減で真っ先に切るのがドキュメント作成だし、低予算で作ったプログラムだからドキュメントがない、予算がないから優れた人も雇えないのループだと思う。
7
たるたる @heporap 2021年10月19日
仕様設計資料もさることながら、取説を作るよりは口頭説明の方がはるかに安上がり。
0
ななし @AsdfNanasi 2021年10月19日
あークソ山をクソまみれになりながら掘り返す作業なーそもそもマトモな人間は手を出さない案件。見えてる地雷原よね。(例:みずほ)
0
テレジアさん(Theresia) @Theresia 2021年10月19日
DTPer的には他人の作ったアウトライン済み入稿データ(pdf)を部分的に修正しろ案件。
5
暮れ色みかん @nana339 2021年10月19日
ちゃんと管理をしてなきゃ手遅れなんだよね…作り直した方が良いってのもリスキーでしょ。ドキュメントなり、最悪コメントでもいいから残してくれればいいのに、修正の経緯もなんでそう直したかも分からない謎の修正なんて、もうコナン君にお願いしたくなるよ
0
ルルイエフィッシュ@原稿と転職活動マルカブリ木曜東"ア"48b @rlyeh_fish 2021年10月19日
プログラムじゃなくてもドキュメント(作業手順のマニュアル)を作るのってめちゃくちゃ大変なんだよな……お局とか老害が作っただらだら手順をいらんとこさっ引いて組み直して新人に教えたら何故かイジメ扱いされるし……何か既にできてるものを組み直すってつらいんだよな……
3
花田 鉄平 @teppih 2021年10月19日
「どうしてこの構文でエラー吐かずに動いてるのさ?」みたいのが積み重なっている危険性もあるからなあ
1
lynmock @lynmock 2021年10月19日
こう…実装したヒトの考え方をエミュレートしないと意図がわからんコードがあってですね…あまりにもアレだと納得するのに時間がかかります…
4
137P(ヒャクサンジュウナナ) @hyakusanjunana 2021年10月19日
「目隠しして食べた料理の味からレシピを書き出すようなものですよ」と言ってやれ
7
undo(あんどー) @tolucky774 2021年10月19日
こういうのに限ってマジックナンバーだらけで、コメントすらろくになかったりする。その区分の意味はなんやとw
5
瑞樹@ウェーイワクチン接種2回終了 @mizuki_windlow 2021年10月20日
無理だろ……天下のMSだってコメントも仕様書もないWin95のピンボールの解析を諦めてWindows8に搭載するを諦めちゃったんだから。そもそも、てめえが書いたコードをみて「アレ……ここの部分、何してるんだけど……なんか、削除したら動かなくなったけど……」みたいなことがちょくちょくあるんだからさw
5
. @shichinan 2021年10月20日
MatamoShita 他人を雇う側の人は他人に使われないから使える使えないの評価を受ける立場に無いんですよ。一方的に評価をする立場の人。例:人事権を一手に握ったオーナー社長
0
鼻毛山 @yamadataro25252 2021年10月20日
「そうかわかったぞ!『7年前に最初にモジュールAを作った人(退職)から5年前に引き継いだ人(派遣社員・契約終了)が、変数名の綴りが似てる別の英単語に空目して変数の用途を誤解したまま機能追加してバグが仕込まれてしまったけどその時すぐには気づかれず、1年後にバグ報告された際にまた別の人(当時新入社員・現在は退職)が原因が分からないままモジュールBでバグ挙動に合わせて直値で修正して強引に元の動作に戻した』という仮説であれば、ソースコードと矛盾したコメントと当時のバグレポートの辻褄が全て合う!
14
igel @I13zl 2021年10月20日
仮に、今現在動いているソースが残っているなら有情だろ?
0
無敵要塞ザイガス @Aymuek 2021年10月20日
クソコードの場合作った人の心情や意図、小ボケを拾っていくような作業なので推理モノが好きな人にはおすすめな仕事だよ
5
おさんぽさん @D7LCOW7eii4wyRs 2021年10月20日
修正の仕事が主だったから仕事受けたらまず対象のプログラム読むとこからだったけど、 普通は人のプログラムは読まんものなのかな? (仕様書は「○○のプログラムを作る」しか基本書いてない) まぁ修正が前提で作られてるプログラムとそうでないものは大違いだろうから 同列に考えたらあかんけど
0
ぱぱばんちょう @bancho_scramble 2021年10月20日
最近似たようなことをやってる… 退社した人がベースを作り、いろんな人の手が加わってろくにコメント整理されていないコードは誰がどの目的でやっているか解読するのも一苦労。
0
BugbearR @BugbearR 2021年10月20日
一切他人のプログラムを読まずにどうしてプログラマになれるんだという気もちょっとするけど、ウンコみたいなコードは現場でないとなかなか見られないかもしれない。9割はウンコだと思っていれば気も安らぐ(安らがない)
0
あごにー @Agony_01 2021年10月20日
一人二人が手を付けたソースならともかく、色々な人がじっくりため込んだ秘伝のたれを舐めながら再現するのは専門技能ですよね
6
あごにー @Agony_01 2021年10月20日
大概「なぜ」の部分が失伝しているから、どーしてここで煮こむんじゃい!とかいうのを読み取らん限り、書いてある秘伝のたれのレシピを丸写しするしかないんじゃよ
1
yu_ku@モデルナ💉💉済 @yu_ku_yu_ku 2021年10月20日
nmr9696 やってることは見ればわかるけど、ソースからは意図が分からないというのはある。 本来はその辺をコメントに残すのが筋なんだけど、作った人から見ると自明すぎてわざわざコメント残さないケースは多い気がする。
2
yu_ku@モデルナ💉💉済 @yu_ku_yu_ku 2021年10月20日
前職の頃、組み込みでμiTRONの「秘伝のソース」みたいな奴を同じファミリのCPUとμiTronで代々使いまわしてた。そういう環境で最初の修行として、「既存の製品の機能追加・仕様変更」あたりから仕事を始めると、同じ技術基盤、同じ文化圏で書いてるものは結構どれ見ても分かるようになる。(規模が小さいというのもあるけど) でも、違う文化圏の人の奴は中々分からん。
1
yu_ku@モデルナ💉💉済 @yu_ku_yu_ku 2021年10月20日
yamadataro25252 プログラマーと言うより探偵だ。 でも、他人の書いたプログラムの保守を引き継ぐとこれをやらねばならぬことがたまにある。
7
ねこ博士 @kazukazu_ex 2021年10月20日
これプログラマに限った話じゃないよな… 決まりきった手順を再現するのに手一杯の新人にマネージャが『この手順なんでこうなの?』って聞きまくるのを何度も見た。 その『なんで?』が失伝する前に熟練者に明文化させてなきゃいけなかったのに退職されて問題が顕在化してから焦りはじめるのよな。 自身にその熟練者レベルの知見があればまだしも、そうじゃないから現場を詰めることしかしないし出来ない。 マネージャ変わって改善したがじゃなきゃ自分が辞めてたな。 イチから知見を積み直す時間を確保してくれるだけ万倍マシ。
3
sonimod @sonimod4 2021年10月20日
バグで正常(かのよう)に動いているケースだと下手に弄ると動かなくなる。
1
まりりん🍮ナイセン団 a.k.a. おかしのようせい @marineblue1223 2021年10月20日
岩田聡氏がゲームボーイ版のポケットモンスターのソースコードを仕様書もなしの状態で読んで1週間でバトルプログラムをNINTENDO 64に移植したという話を思い出した。コードだけ見て読める人って次元が違うよねぇ
3
sawat1203 @sawat1203 2021年10月20日
まともな設計がされてて、自動テストが完備されてて、自由にいじれる環境があって、一人で受け持てる程度の規模ならなんとか… これが全部真逆だと心病みかねない
0
らぃりる-A列車Steam版にも期待だ! @Liriru 2021年10月20日
普通はできない仕事だなあ。古い人の仕事だと下手するとスコープが適当になってたり、Privateだと油断してると入口用の奴が複数あってとんでもない使われ方が後の方で見つかったり。ちょっと考えただけでおなか痛くなるわ
2
Zinc in Sanuki @zincinosaka 2021年10月20日
どっかの銀行でやってるのは、これを無数に積み上げる作業かな。積み上げる傍から崩れて永遠に終わらんので掛け値無しで無数なのかもしれない・・・。
2
きゃっつ(Kats)⊿ @grayengineer 2021年10月20日
RAIYASB 程度が同じと言ってるのではなく、同種の技能だと言ってるんですよ。コードの解析という基本的な技能を持たないプログラマなんて仕事できないじゃない、って言ってるのです。
1
fff @ffffdark 2021年10月20日
うええよりによってC++かよ。ライブラリの種類やバージョンはもちろん、ビルド方法や環境によっても差が出る可能性が高いから資料0だと相当厳しいぞ。コード自体も、メモリの確保一つとってみてもやり方が滅茶苦茶多いし下手すりゃ混在してる可能性もある
2
RAIYA@提督 @RAIYASB 2021年10月20日
grayengineer それって戦士が必要なところに武道家連れてきて同じ近接職だから問題ないだろって言ってるような物では?
3
Denullpo S. Hammerson @denullpo 2021年10月20日
とりあえずDoxygenに食わせとけ。ただしそれで正常認識されたソースでも1年がかりな予感。
0
nekora2520 @nekora2520 2021年10月20日
作り直した方が早い派の人って、仕様書が突然湧いて揃う前提なのかしら…。
0
めのん @yakimeno 2021年10月20日
任天堂の岩田聡さんがMOTHER2の開発に参加してた時に「今あるものを手直ししていく方法だと2年かかります。1から作り直していくのであれば半年でやります」って言ったというエピソードを思い出した
2
aka @Aka3213Aka 2021年10月20日
難度を理解せずに人に投げる人が言う言葉なんだよなぁ、「伝えた仕事<実際の仕事」だったろう事は察せられる
0
キケリキー @KIKERIKI17 2021年10月20日
これがあるから「定時帰りを続けていたら無能だと思われ職場を追放されたマクロ使い、実は陰で職場を支えていた、今さら戻れと言われてももう遅い」礼賛に否定的な私。
0
キケリキー @KIKERIKI17 2021年10月20日
ちなみに引継ぎ案件で一番衝撃だったのは、「global変数の int i」かな。知らずに読んだ時、再帰処理が何で正しく動くのか、ワケガワカラナイヨってなった。
0
一斗@デリシャスパーティ @itto_kh 2021年10月20日
どんな天才(故岩田聡)でも直すより最初から作ったほうが早いと匙を投げるんで世の誰でもそんな状況のものは整理できんよw
0
洸牙 @kouga_gyb 2021年10月20日
if 1 = 1 Then の実物を見たときは脳が理解を拒否して混乱しましたよ・・・
2
七枝七夏 @7eda7ca 2021年10月20日
himokagami つまり、岩田聡レベルの超人でも、人の書いたコードを読み解いて修正するのは、自分で一から書くより大変ってことか
0
たかみん/りんと🐏 @r_takamine 2021年10月20日
私の仕事大体これなんだけど。もうクソコードハンターと化していてエバノに「2021年新春クソコード集」とか作ってる。
0
さかきみなと🌤️榊鐵工 @syouth 2021年10月20日
解析技術を持ってて、C++の各バージョンと癖のあるコーディングのやり方とか知っている万能選手じゃないと無理案件。
1
キケリキー @KIKERIKI17 2021年10月20日
kouga_gyb 「try catch」の代わりに「while(1) と break」(ループ目的ではない)って所はそこそこ見るんですよね。「怖くて今更なおす気になれない」みたいな・・・・これ知らないと、「何のループだ?」ってなるし、最後の正常系breakを整理してしまうと無限ループ、気付いたあとで、コメント残してーってなる orz
0
クリスセドン @sedooooooon 2021年10月20日
作者の気持ちを答えよ(プログラマ編)
4
Kei @Alpha_21364 2021年10月20日
リバースエンジニアリングとリファクタリングが出来る人じゃ無いとダメだね。デバッガー大好きな人とか。最近のチャラいプログラム書けますとかいう人では無理な話。
0
RAIYA@提督 @RAIYASB 2021年10月20日
nekora2520 仕様書は新規に作り直し、実際に動いてるシステム自体はあるから、挙動からどういう処理にしたら良いかが推察できる。既存コードの解読が不要になり、自分なりの書き方で作れるので楽ってなる
4
3Dポーズ集 @3dpose 2021年10月22日
自分が書いた一週間前のソースコードに自分で切れてる時有るからなぁ。
1
伊達川(一) @Datekawa 2021年10月23日
「自分で書いたコードでも小中学生に解説するつもりでコメント残したプログラムじゃないと後で解読できない」って言ってる人がいたな
0
九力 @qchikara 2021年10月23日
やはりゴブリンの仕業か
0
aqp1 @aqp114 2021年10月24日
これは、大元がどれだけしっかりしてるかで難易度が大きく変わる。きっちり決まりに従い、どういう意図でそう書いたか思考が明白なら助かる。長く使い続けて、その場しのぎみたいな修正箇所がたくさん出てくると非常にやっかい。
1
zaizeno @zaizeno 2021年10月24日
プログラミングでは「明日の自分は他人」と言いますが、最初から他人の書いたコードだと、、
0
zaizeno @zaizeno 2021年10月24日
これって、ケチらずに強力なツールを使う方が良さそう。静的ソースコード解析ツール。とりあえず Doxygen と Graphviz あたりなんだろうけど、他人の書いた厄介なソースコードならケチらずに Understand とか
1
ダメダメ鶏脳@_(:3」∠)_ @asl_annual 2021年10月24日
そうなると、みずほなんかは3つ、あるいは4つの異なる文明の古文書を読み解く作業か、、時間ががが
0
あいしー★ @aicm2 2021年10月25日
某大手でやったけど二度とやりたくない。
0
太田拓也@メイン垢です @ef510df200 2021年10月25日
内藤寛氏ですらようつべでドラクエ3のロムの解読に苦労してるっていうのに。
0
hajime(孫元@カプコンだいすき! @hajime67953617 2021年10月26日
今時はコストがかかって仕方ないのでやらない方針だけれど、大昔はコード読んでカスタマイズとかやってたよ…
0
飛んだ犬の家 @MDg7hug7WkGmXP6 2021年11月5日
grayengineer ソースが正という保証はないけど、そういう案件はあってまさにその渦中にいます。
0