VBで開発を請け負っている人に質問です。(逆の立場の人でもかまいません)
開発にはノータッチで完成してからお前が運用を考えろと渡された、人事管理
システムがあります。この中に名簿の定型帳票があり1万ステップを超えて
いるので改修は許して欲しいと言うのプログラムがあります。
先日バグの切り分けの為にシステム設計書、概要設計書及びプログラム仕様書
を見て「バカやってんじゃねぇーよ!」と怒ってしまった。私はVBの知識は
ありませんが、要求されている仕様を整理すれば1~2千ステップもあれば
書ける内容を、概要設計から出力フォーマットに沿った説明をコーディング
レベルまで持ち込み大きなステップ数になっているのが判りました。
(推測ですが、以前はAccessで開発されていたものをセキュリティーやメンテ
ナンスの理由から書き換えを行ったことからAccessのクエリー等をそのまま
VBに置き換えたのかも知れません。)
システム設計の先頭にメンテナンスビリティーを重視した開発を行う事と
あるのに、この帳票は部課コードを始めにコード類は殆どConstant Valueを
使っていて組織変更等がある都度変更の必要があると言う優れもの。
開発の当社側担当の無能さもさることながらVBで開発されている方はこんな
レベルが低いのかと呆れた次第です。汎用機を扱うベンダーであれば効率性や
メンテナンスの事を良く考え、詳細設計書に書かれている内容では、それらが
損なわれると判断すると、設計の変更を申し入れられる経験をして来た人間に
とって泥棒並のベンダーとの思いもします。
No.1ベストアンサー
- 回答日時:
質問でしょうか、それとも愚痴でしょうか?
VBでの開発に携わるものとして、十把一絡にして「レベルが低い」と決め付けられるのは少々心外であります。
CONSTについては、ある程度は仕方がない面もあります。
「部課Aのときは処理1を行う、それ以外は処理2を行う」
ってなコーディングを要求されれば、どうしてもCONSTを使わざるを得ないですから…
(外部ファイルで部課ごとにフラグを指定して、それによって動的に処理を切り替える、って手もありますが、それにしても最低限、部課コード位はCONSTで定義しなくてはいけません。ステップ数も増えるでしょうし… なんでもかんでも外部ファイルで定義すればいいって訳でもないんです。)
ってことで、PGの技量不足もさることながら、仕様を整理する側のSEの方により大きな責任があると思うのですが…
それはともかく、「とにかく融通が利かない」というイメージの汎用系ベンダに対して、VBメインのベンダは、「とにかくお客様の要望を重視し、お客様の言ったとおりにソフトを作ってしまう」という傾向がありますね。
小回りの効く言語であるが故に、ある程度の要望にはその場で答えることができる為、言われたことを言われたとおりにホイホイ作ってしまう、っていうのはあるかと思います。
そういった傾向もあって、仕様書からの展開を馬鹿正直に行ってしまい、工数が馬鹿みたいに増えてしまうっていうことも、中にはあります。
(ですが、仕様書に素直なコーディングって言うのも大事です。その辺のさじ加減がPGの腕の見せどころかと思うんですが…)
※個人的な意見としては「1万ステップを超えているので改修は許して欲しい」などというプログラムは即刻破棄すべきだと思います(^^;。
この手の言い訳が付くモジュールは、大概、それを作成した人間しかメンテ出来ない(汗
嫌みな質問に誠実に答えて頂きありがとうございました。
>>質問でしょうか、それとも愚痴でしょうか?
両方でしょうね!
>>VBでの開発に携わるものとして、十把一絡にして「レベルが低い」と決め付けられるのは少々心外であります。
感情に流されて書いた事を反省しています。別案件C/Sの世界で、私がシス
テム設計した案件を担当してくれた人は適切なアドバイスをしてくれました。
そう言う人もいる事を忘れて言い過ぎでした。
>>この手の言い訳が付くモジュールは、大概、それを作成した人間しかメンテ出来ない
引き渡しを受けて幾つかのバグがあり、バグ取りと合わせて改修を依頼したら
書いた本人が判らないらしいんです。当たった人間が悪いと言うことなんでしょネ!
>>それはともかく、「とにかく融通が利かない」というイメージの汎用系
>>ベンダに対して、VBメインのベンダは、「とにかくお客様の要望を重視し、
>>お客様の言ったとおりにソフトを作ってしまう」という傾向がありますね。
傾向が良く判りました。
プログラマーはそのレベルでいいでしょうが、SEでと名乗る人間で、この程度の
人間に当たったら即刻首だなぁ・・・
No.2
- 回答日時:
プログラムを組んで、他人様からお金を貰ったことのないノンプロが言うことですから、適当に聞いてください。
Constの件は、(1)数学定数的なもの、Paiなど(2)システムコード的なものxl・・・やvb・・・など(3)MaxやMinなど限界値(3)世俗的なコード、人事部を3と決めたなど(5)世俗的定数、消費税率など考えられるが(3)(4)(5)は変更がありえるので、プログラムの一箇所にまとめておいて、そこを変えれば済むようにするのは、常道ではないでしょうか。
もっと印刷の設定のエクセルの画面や会計ソフトのように一覧画面にでもすれば判りやすいですね。手間はかかります。
また注釈は製作者x社A氏から将来改変するy社B氏へのメッセージ
とおもえばそれでいいが、全コーディング行に注釈行を入れると
2倍の量になり、今も料金はステップ数合計で、1ステップ単価*行数で計算するのでしょうか。何となく水増し的でやり切れませんね。
ただ大型コンピュターメーカーのソフトが、立派だとは経験から思いません。(1)仕事を知らない。仕事のパターンを知らない。
(2)人間心理を勘案していない。(3)入力の大変さや大切さを良く
判っていない。(4)一部の欠点の為に全部が使われなくなることがあることを戒心していない。(5)総なめ法を取っていて、データ量が増えて応答や処理時間が極端に長くなる。などの欠点は良く体験しました。
しかし考えても見てください。約10年前の大型コンピュターは、ウィンドウGUIは本格的でなく、IBMのGDDMだったかは縁が遠くて終に使わずでした。それに比べVBで出きるWindowsのGUIは多彩
です。Contorol類を見てもこんなことも出きるのと、感心します。大きな可能性を見せてくれています。
SEといってもコーディング規則を憶えてすぐ客先のシステムを組めと放り出されるひとも多いのではないですか。
結局発注先を規模人員数ネームバリュで選ばず、見極めるより手はないのでしょう。
ご教授ありがとうございます。ノンプロで良かったですね!
>>SEといってもコーディング規則を憶えてすぐ客先のシステムを組めと放り出されるひとも多いのではないですか。
そう言う人は、駆け出しのプログラマーとしか見ませんから、SE給料の半額以下は当然で、
場合によっては、お荷物ですから研修の一環として無給でなら置いていいと言うスタンスを
取るのが多いのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- IT・エンジニアリング IT開発、ソフトウェア開発、アプリ開発において、要件定義は受注の前か、後か? 見積額に含むか否か? 1 2022/06/20 19:02
- IT・エンジニアリング SEとWebエンジニアの業務内容の違いについて 3 2023/06/22 23:23
- 固定資産税・不動産取得税 土地の譲渡の確定申告に添付する書類(優良住宅) 2 2023/03/31 17:24
- 政治 次期戦闘機には、私の発明した対空ミサイル迎撃システム「パルティア」を採用するべきですね? 3 2022/08/15 13:40
- その他(コンピューター・テクノロジー) 50台の織機から回転数を取得・集計しモニターに表示したい 2 2022/11/05 15:48
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- デスクトップパソコン 「自動修復でPCを修復できませんでした」と表示されPCが起動しないのですが対処法はありますか? 5 2022/05/13 09:16
- その他(生活家電) 太陽光発電リフォーム工事キャンペーンに完全に引っかかりました。 4 2023/03/03 16:49
- 固定IP Win11 アダプター設定変更にイーサネットが表示されない 1 2022/12/03 18:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
C言語(gcc), Linux, FTPプログ...
-
COBOLのCALL文がいまいちつかめ...
-
テキストの折り返し処理について
-
空elseの有無
-
65536は2の何乗なのでしょうか?
-
0除算して、落ちるプログラムと...
-
あるプログラムのコマンドライ...
-
正しい五十音順について
-
バッチファイルでUSB挿入時に実行
-
コンパイラについて
-
コンパイルできない
-
C言語の課題で、1年の秒数を計...
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
Dijkstraて
-
VBAにてメール作成した際、一部...
-
C++ で、「)」が必要 というエ...
-
変化させるセルが変化しない
-
「Outlookが他のプログラムによ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで仕様書は書きますか?
-
C言語(gcc), Linux, FTPプログ...
-
プログラミングのコード量に関...
-
空elseの有無
-
変数・オブジェクト名に漢字使用
-
C++ソースからUMLの設計書を作...
-
きれいなコード vba vbaを勉強...
-
PCの時刻精度
-
VBからシャットダウンさせる方法
-
クリップボードを排他的に利用...
-
MFC,C++/CLI,C#の共存
-
逆フーリエ変換のプログラムに...
-
【VB】データグリッドビューで...
-
COBOLのCALL文がいまいちつかめ...
-
GDLでH8/3052Fのi2cプログラム...
-
プログラム動作時のCPU処理時間...
-
「ルーチン」という言葉の意味
-
例外処理があまり使われない理...
-
良いプログラムとは?
-
実行コマンドのプロセス管理
おすすめ情報