システムの保守性を維持する方法
■ このスレッドは過去ログ倉庫に格納されています
システムができたはいいが、、、
ソースが汚い、プログラムもDBも継ぎはぎだらけ、
ドキュメントがない、あるらしいけど見つからない、
見つけたけど書式や記述に統一性がない、読んでみたけど理解不能
責任範囲が不明確、勝手に保守してるユーザがいたりする
連絡体制が周知されていない、そもそもそんなもの作ってない
誰でも知ってるような大企業でも珍しい光景ではない
最近サステイナブルなんて言葉が流行っているが、
どうすればシステムの保守性を高くキープできるのか?
ルールか?モラルか?それとも日本人には無理なのか? この問題について考察する上でのポイントみたいなものを考えて見た
1.やりっ放し文化はシステム業界に特有のものなのか?
1)だとしたらどうしてなのか?
2)業界の歴史が浅いからか?
3)法務や経理のように業務が画一化されていないからか?
4)外注や転職が多いからか?
2.余所の国ではどうなのか?
1)日本では経営陣がシステムを舐めてて金をかけないのか?
2)日本ではアホで倫理意識のない奴がシステムをやるのか?
3)そもそも資質的に東洋人には向かない分野なのか?
3.どうすれば問題は解決するのか?
1)強力なリーダーシップを発揮する人間が必要なのか?
2)内部監査などでバシバシ指摘すればいいのか?
3)やりっぱで逃げ切れないような縛りを設ければいいのか? 4.他、ドキュメント類に関して思うこと
1)使用する用語を統一してくれ・・・PGだって綴り間違えたら別の変数になるだろ?
2)だらだら長い文章を書くな、箇条書きにしろ、メールじゃねんだから
3)箇条書きにしたら1項目に複数のことを書くな、文書も正規化しろよ
4)集合論を意識してくれ、IfとかSelectで言うElseに流れる記述漏れが多過ぎる
5)なんで普通に書けない、不思議な言い回しをする、新聞や本を読まないのか? SEが机の上をきれいに片付けられる人間ばかりなら
システム障害はもっと少ないのだろう そうならないように
様々な設計技法、思想、パターン、ミーティング方式などが生み出された
そういうのを組織知にして組織文化とするしなねーんでない?
各自がコードを書くということ自体を仕事にしてるからそうなるんだろう
保守性、拡張性があり、バグの発生範囲を限定できるようなコードであることを
皆で共有確認しながら進めるしかないよな
大指揮者、中指揮者の元に1000人の演奏者がいて
いつも演奏者をチェックするような 自分がいなくなってからのことはどうでもいいという態度の社員がたくさんいる
異動が決まると当然(形だけの)引継ぎ作業は行われるのだが、
この内容がとても薄い上に時間をかけない場合がとても多い
徳川幕府が結んだ不平等条約を明治政府が引き継ぐような形で問題が次の人間に継承されてしまう
明治政府は執念で問題を解消したが、システム業界は逃げ切りを狙う小物たちで満ちている >>7
本人の意思に関わらずそんな時間誰が捻出するんや? >>7
それを仕事以外の時間で自主的にやれっていってんの? >>8
本人、移動を伝えた上司、後任者、以外に誰がいるのだろうか?
幼稚な奴だと自分にしか分からない領域を意図的に残しマウントの材料にする
目先の個人的利益に目がくらみ会社の中長期的利益を台無しにする
個人的には東洋人やシステム業界にこういうやっかいな人種は多いと思う
自分はハンディを背負わされてるかのような感じにつきまとわれ
力技でそれを克服し、他人には自分が切り開いた道でショートカットさせるものかと
そんな屈折したメンタリティが行動原理になっている、気持ちに余裕がないのだ システムの保守性は(担当者以外にとって)どうでもいい
当座の費用が安ければそれでいい
という前提から出来たのが現状 >>1
内製でユーザー部門の担当者変更ごとに作り変え ISO9001の更新審査のザルっぷりには軽く驚かされる ITで取得してるとこなんてないだろ
そーゆー体質なんだろうね 資料をしっかり作って残します!なんて口が裂けても言えない 逆に、野心的な政治家とか財界人とか
領土の拡大や金の回収のタイミングがどう考えても自分が死んだ後になるのに、
コツコツと準備に抜かりない人たちもいるよね
子孫のためとかそんな親心皆無の外道に見える人たちばっかりだけど 短期的な利益の方を選んでしまう理由として
自分がいなくなってからのことなんて知らねー的な畜生マインドもあるけど
その場その場でギリギリの勝負をしていかないと競争に負けてしまって
将来も糞もないっていうのもあるね
ただ当たり前のことさえ怠ってに保守を大変にし無駄に苦しんでいるところはあると思う そういうシステムをメンテなんてできねーししたくねー
何処でヤバいバグが出るか分からんし
テストなんてできない状態 誰にでもやらせるくせに資料がない
保守性高めたいなら資料を残せ ドキュメントが構成クソで日本語がぶっ飛んでるのはプログラム言語に慣れ過ぎているせいもあるのかな?
自然言語には自動文法エラーチェックもコンパイルもないからねー
カッコも多用しないから修飾関係が文脈頼りだったり、
でもそれを一部のプログラマーたちは以心伝心、阿吽の呼吸で読めてしまったりするからまた性質が悪いw
エスペラント語なんていう文法語法にむっちゃ一貫性がある人工(自然)言語もあるけど、
それでもプログラム言語にくらべると規則がゆるゆる
日本語なんて最ゆる言語だから、誰が読んでも同じ解釈ができるような書き方をするのは難しいんだよね 指示出すヤツがしっかり資料作っていれば誰が作業しても同じになる >>22
初めが肝心だね
最初の資料がクソだと
同レベルでいいという都合のいい解釈をして手を抜き始める
レビュアも立場が逆になったときを見越して基準を下げる プログラミング知らないヤツが指示出すんだから
奴等の解釈で正しい資料しか出てこない
プログラマが作るための資料ってことを求めても仕方ないのかもしれない せめて単体や全体のテストが出来る奴にやってほしいわ
テストできないシステムなんて納品できんわ 実機が絶対完成しないハードのソフトウェア開発もあるにはあるかな 密なコミュニケーションが元凶だろ
友達じゃないのにフレンドリーに仕事させて
なあなあが蔓延して言いたいことも言えなくなる
完全にパーテーションで仕切って
全てをスペースミッションだと思って仕事させりゃ
何もかもうまくいくよ >>28
囚人のジレンマ的な疑心暗鬼状態にして手抜きをさせないとかいい方法かもね ソース修正時にちゃんと元のソースをコメントで残しておくこと 納期に追われて場当たり的な対応ばかりしてるとどんどん汚くなっていくな
ソースもドキュメントも時間と共に汚くなっていくもの、という前提で
定期的にリファクタリング期間を設けたら良いんじゃないかなと想像はするけど
そんな時間と金をくれるところはあるんだろうか 上に説明するって名目でリファクタリングする
説明しなきゃならないけど仕事は円滑に回るようになる 保守性とは何か?
おまえらのレスを読んでいると
「途中から何も知らずに配属された担当者がストレスなく仕事が出来るかどうか」
って事のように読める
そんなもの知ったこっちゃない
・属人的保守性
対象に対して十分なスキルを持ったものがアサインされているか
・文化的保守性
会社文化と馴染んだ開発手法をとっているか
・ドキュメント的保守性
アクセスしやすいドキュメントが必要な鮮度で十分に用意されているか
・可読性的保守性
アサインされた人物にとって可読性があるソースコードか
・構造的保守性
意図が読み取りやすく整理されており修正によって意図しない箇所に影響を与えず疎結合であるか > おまえらのレスを読んでいると
> 「途中から何も知らずに配属された担当者がストレスなく仕事が出来るかどうか」
違うよ。会社の一員として、会社に被害を与えず利益を与えるように働くことだよ 配属された担当者にストレスを与えることが
会社の役に立つかどうか、考えてみたことある? >>34
保守性の維持にかかる費用>保守性がないソースを修正する費用
これが崩れない限りはその理屈は通らない なんか噛み合ってないねw
>>33が知ったこっちゃない
「途中から何も知らずに配属された担当者がストレスなく仕事が出来るかどうか」
って、思いっきしミスの発生率に影響するよなぁ、一番の原因と言ってもいいかも知れない
どの業界にも職種にも築いたポジションをキープするために不合理な部分を残そうとする人はいるもんだけど
システムの場合、そういう連中が残した借金の返済がとても困難という性質はあると思う >>36
時間がたつとその不等式は崩れるな
保守性がないソースを修正する費用が
修正することが実質的に不可能になり、
保守性の維持にかかる費用 > 0から作り直した場合の費用
になる。日本の大銀行のシステムはすでにそうなっている
と思われる。Microsoftとか定期的に0から作り直すからな 今なら技術上の陳腐化は数年単位で訪れるけど、
一生の間にテクノロジーの進歩なんてほとんどない〜18世紀とかでも
古くなった建築物は当然建て直しただろうしね
そもそも人体を始めとした生き物の身体も修復し続けるよりは次世代生んでリセットしてる
建築技術は脈々と受け継がれていただろうし、生物の設計図はDNAに刻まれている
半世紀以上前に月に行って来たアメリカだが、
再現できない理由として当時の資料が残っていないことが大きいそうだ
高度成長期に大量に構築された社会的インフラがそろそろ一気にダメになると言われている
日本人自体も老朽化しているところへ、システムにもそのうちそういう波が来るんだろうね プログラマーは二つの世界で生きている
コンピュータには正確で精密な仕事をさせ
自分たちにはおそろしく場当たりで不合理な環境を与える 初回リリース直後から保守性がないことも
時間経過とともに保守性が損なわれることも
すべては短納期少工数で利益最大化したいという目先優先の弊害
そもそも発注側がそれを望んでいるから受注側は与えられた金の中でしか物作りできない
そりゃドキュメントもプログラムも低品質になるさ >>26
最初から詰んでる事多いからなぁ、
仕様書ないのに何の単体全体テスト
してんだ?って感じ。。 賛否両論あるだろうけどソースコードに美学を求めなくなったときから何かが崩れ始めている
その類は軽視されてる
昔はプロジェクトに何人か職人芸のような美しいコード書く人がいたもんだ ソースについてはもうちょっとしたらAIが評価してアドバイスくれるようにならないかな?
自然言語を理解できるくらいだから、プログラムから何しようとしてるか読み取るくらいできそうな気がする
知らんけど システムの保守にもしっかりと予防線を張って欲しいものだ 間違いを正しく修正するAIが裏で走ってたら遅いと思う ユーザーがバグやフレームレートを気にしなければよくね?
知らんけど マジで人間が文字や音声で必要な情報を伝えればAIがソース書いてくれるくらいの時代が来るのは
そう遠い未来のことではないと思うけど、
仕様を正しく伝えられる人間が日本のシステム業界に必要数そろってるかがかなり怪しい
あとやっぱ自分自身もソース書くことしてないと、いざというときに読めないだろうね 改造するときに設計書見ても設計書から影響範囲が分からない
何のための「設計」だったのか
どんなプロダクトやシステムも出くわす設計書は設計の記述ではなく
テストまで完了した後にソースを見ながらステートメントをドキュメント化しただけの駄作
こんなんだから、300万ステップの中から毎度毎度Grepしてモジュール特定して
更にモジュールの影響範囲をハッキングしなければならない
そして抜け漏れが後工程で発覚して手戻りオンパレード
当然テストは自動化されていないし自動化しようにも既に無理な状況になってる プログラムは「意図した動き」しかしてくれないのが他業界と性質が異なるところなんかもしれない
例えば建築なんかはインチキ建築士が設計した欠陥住宅でも、
「別に意図してなかった」元々の素材の強度なんかで地震を耐えきったりしてなんとかなってるけど
プログラムだとそういう元々備わっているバックアップの仕組みが乏しいから想定外ケースにとても弱い
冗長でもいいからアクシデントに対する可能な限りの防衛策を張り巡らすのが
他業界と同じ水準の安定性を実現するための必要条件で、それを人為的にやらなきゃなんだけど
そこの認識がシステム業界にはないっていうのはあると思う いや、張り巡らしちゃうと
起こりもしない杞憂だけで
ソースが汚くなりすぎちゃうから
実際に起こってから対処したほうがいい >>54
それは社会インフラ系を担う制御システムでは許されないよ
実際に起こってからという考えは業務システムの末端プログラムだけ 建築なんかはものすごく安全側に倒してあるからなあ
いろいろな点で
いろんな部分で少々さぼっても全体としてはほとんど
大事故にはならない
大地震とかも滅多に来ないしね。
プログラムはそうはいかない
きわどい部分がたくさんあって
ほころびが一つあると全体が簡単に崩壊する >>55
いや、実際起こってるじゃん
原発もいざ起こったらダウンしちゃうし
7payだってあの程度さ
許されないってどこの話?
じゃあ東電潰れたの?
セブンイレブン消えた? >>56
は?
建築は毎週怪我人出てるし
週6日勤務で残業代も出ないそもそも労働基準法守ってないのが普通ですが? >>52
そういう設計書を承認してしまうし
下手したらその手順がその会社のQMS上なんの問題もなかったりする
逃げ切ったもん勝ち的な体質あるよね
あとトラブルを未然防止するよりも、
トラブらせるけどそれを収拾させると評価されるってところがあって
そういう甘さがよくないと思う システムほど条件分岐が多い仕組みって世の中あるのかな?
建前上は全部を把握してないといけないはずだからな
(本音は知るもんかとかえいやーでやってるけど) いくらいい仕組みを作ったとこでバカが関わると崩壊するからな どうせ人件費ケチってろくなものが来ないんだから嫌でもバカが混じってくるだろうに 文書と違って校閲したらテストしなきゃならないから
書き方下手でもちゃんと動けばOKにしちゃうしかないんだよね
言語にもよるんだろうけど
ソースコードを書き直してもコンパイル後のオブジェクトコードが同じならテスト不要とか
そんなローカルルールはあってもいいと思うね オブジェクトコードが同じなら機能改修はないはずだからリグレッションテストはない 自社のシステムしかやってないから
余所がどの程度のドキュメント作ってるのかあんま知らん
例えば詳細設計書や単体テストスクリプトの
最高と普通と最悪でどの程度の違いがあるのか
色んなところのやってきた人の話を聞いてみたい >>70
どの程度のドキュメント(量)ではなく
どの程度、ドキュメントのレビューと改定(バグ修正)をしてるかが知りたいな
それをもとに仕事をするのに、まさかたった一人が書いて終わりとかじゃなかろう? ドキュメントの位置付けなんて
詳細はコード見なきゃわからないという大前提で
抽象レベルで意思疎通整理調整できるレベルの記述になっていればそれでいい
が、この理想が難しいのというのが現実 Keep It Simple Stupid
システム自体を複雑にするな
九電の誤請求によるシステム障害も
上の言いなりになって複雑なロジックを大量に追加したのが原因だ 客の言いなりになってシステムを複雑にせよ
これが下請けとして生きていく肝だ
業務改善含んでシンプルで業務変更に強く安価なシステムなんて組んでみろ
金は払わないし人員減らされるしシステム屋にとって何もいいことないぞ 限度ってものがあるだろ
それでシステム障害起こしたらみんな逃げるじゃん? システム障害が発生すると客の財布がゆるくなる
問題を解決できる人間を連れてきましたと高単価で契約
問題を解決できる素晴らしいシステムを構築しますと自社データセンターを高額契約
何でもやり放題だ
システム障害って素晴らしい みんな逃げるから人間の入れ替わりがあって儲けがある
混乱こそマネー
安定して動き障がいも発生せず使いやすくてメンテナンス性も高い
そんなシステムに金を払う客がいるだろうか? 壊れるシステム作る仕事と、それを直す仕事
見事なシステムですね >>75
いやもう新規開発しか受け付けないわ
既存のスパゲッティを解す作業はしたくない >>1
アメリカだと、軍の関与や技術者組合の存在、
エンジニアに払われるカネの額、
CS学位以上の修士・博士だけが参加、など
(大学での軍事研究を禁止したのはどこの集団かはいうまでもない)
日本には学位どころか出自の怪しいアホがまぎれこんでる
バカが作ってるからバカげたものになる
そもそも、建築業界と同じ業界構造にされてる
「バカを掻き集めて人海戦術でなんとかする」と思ってるトップ層がどうやらいる
アホを再生産する科挙システム=受験にも大問題がある
天才と言うべき人間を育成・活用するシステムが出来てないか、破壊された
日露戦争ころの明石大佐のような人員登用システムが無い そういや日本のIT業界って珍しく海外を参考にせずに構築されてるんじゃない?
いつもドイツやイギリスを参考にするのに それはSES業界だろ。あれはドカタ業界の延長にある。 誰でも簡単にプログラマーになれるから
スパイが簡単に企業に潜り込めるよね スパイになれる能力があれば
プログラマーとしての力も有るだろ IT産業は何十年経っても国家資格化されないので出来の悪いモグリ人員が混入してシステム障害に結びつく
いまや国家資格どころか国際資格にしてもおかしくない状況なのに参入障壁がいつまで経っても横ばい
ま、もともとコンピューティングというのが生粋のヲタ気質から始まってるから作り手側が未だに産業という認識を持っていないし、産業のなんたるかを知ろうともしていない
経済回すことばかりに意識が向いてるからね
危うい産業が世界中に蔓延ったあと世界を揺るがすような絶大な問題が勃発しないとこれ以上先へは進めないな
で、何の話だっけ 1行目2行目は「人員の出来が悪い」「モグリ」
3行目からは謎だ
3行目4行目は「作り手=オタクは産業の事を知らない、経済だけを回してる」
1行目との、「作り手=オタク」と「人員の出来が悪い」の連関は謎
つまり、「作り手=オタク=モグリ」となってるかどうかは明言されてない
5行目は本当に謎
中でも「危うい産業」の定義は何かは知らんが、産業の事を知らない奴が作ってるシステムなら産業として怪しい……という堂々巡りに見える
まさに「オメェーの中ではそうなってんだろ」の通りで、危うい奴らが作ってるから危うい産業だ、程度の意味しか無い
なので「世界を揺るがすような絶大な問題が勃発」してほしい、との願望を述べてる
『モグリが作ってるんなら危うい産業で大問題が勃発してほしい』という願望だ
……願望は願望であるが故にその言明は100%正しいよ
願望に制限は無いからな 5分で目を通せるぐらいのドキュメントとエレガントなソースコード
これが正解だ
ドキュメント書きすぎは典型的なアンチパターン まぁ学のない底辺土方も資格ありきでユンボやクレーン操作したり土建したりしてるんだよな
IT業界だけ例外的に資格無しで従事できるってのは異常なことだよ
こんなんじゃ品質もへったくれもない 土建とか建築とか形のある分野は見た目である程度の
品質が分かるし、品質を調べる方法がかなりの程度確定している
しかし、この分野はコーディング規約ぐらいしか品質管理の
手法がない。論理がひどくてもそのひどさを示す指標がない 体系的になっていないだけでノウハウとして指標はあるんだけど
利害関係上グレーにしておいた方が都合が良い人間が大勢いるから成立しない
グレーなことだからそこを詰めたり大々的にすると大人げないと蔑まされる
もう現場はみんな解ってることで口に出すこともないのだけど
客先常駐で協力会社を寄せ集めて開発する図式を止めない限り続く 勢いなさすぎ
Web界隈全盛で作り捨てだから誰も保守性など気にしてない現れだな 他社が作ったシステムの改修案件は二度とやりたくない 他社案件改修を専業でやってる会社にいたけど
何がつらいって現場の客が非協力的なんだよね
前の会社で失敗してるから態度がめちゃくちゃ固い
社長がイケイケドンドンで決めちゃって終盤で弁護士がひっくり返す
そりゃIT失敗するわけだよって会社ばかり スタッフって前から変わってないよね?そういうの間違えると ■ このスレッドは過去ログ倉庫に格納されています