• ベストアンサー

【システム開発】バグ改修時の設計書への落とし込み

お世話になっております。1点教えて頂きたいことがございます。 システム開発を行っているのですが、バグが発覚した際、その内容が設計書に落とし込みができておらず、2次バグを誘発することになっております。 皆様は2次バグを防止するためにどのような手法を用いて防止しておるでしょうか。 現状はredmineへの登録のみで、それを見直すフローもございません。

質問者が選んだベストアンサー

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2801/7251)
回答No.1

軽く設計書とおっしゃっていますが、何設計書の話をしておられますか。 まさか基本設計書のことをおっしゃっていませんね。 もしバグ程度の対処で基本設計書に対応しなければいけないなら、全体の工程がおかしいと言うことになります。 設計工程が、きっちりブレイクダウンしていないということです。 たとえば、何かのパラメータを保持していなければならないという対処だとしましょうか。 このとき、もし基本設計書に記載が必要ということであれば、基本設計にそのパラメータが関係する記載があると言うことになります。 だったら、そもそもその基本設計書はろくなものではないという判断をせざるを得ません。 基本設計からやり直しです。 普通は基本設計は、どのような動きをするシステムを目的とするということしか書いていないはずですから、細かい動きなんかは指定していません。 プログラムのバグというのが影響するのは、外部設計書以後です。 そのパラメータをDBに保存しておかなければならないということになるなら、外部設計書を修正する必要があります。 パラメータの更新タイミングが間違っていたのであれば、内部設計書の記載の修正になります。 もっと生のプログラムレベルの話、初期化を忘れていたとかインスタンスを生成させずに参照したというような話は詳細設計書になります。 また、バグという見方はよくない。不具合、です。 テスト工程でよく「バグ発見」と言いますが、これは間違いですよ。 テスト者は「おかしい」と思うのです。それをレポートするのですから、不具合報告です。 不具合の中にはバグも入っていますが、そればかりではありません。 「非バグ」をきっちり見て整理できないようなプロジェクトは究極の信頼は勝ち取れません。 テスト者の操作ミスもありますし、システムへの誤解で指摘を間違えることもあります。 このときは「指摘ミス」と言うことになります。 こういう指摘ミス、を捨てて記録しない人がいるのですが、明らかに間違いです。 指摘ミスをしたというのは事実ですから、それがあるならマニュアルに記載することを検討すべきです。 ユーザー様もやる可能性があるわけです。 指摘ミスが、なんとなくシステムをこう考えてしまうというものであれば、これは基本設計上レビューをしなければ行けないことになります。 指摘はあったが「仕様通り」という場合もあります。 たとえば入力は常に数字であるというエリアでアルファベットを叩いたらプログラムが落ちたとかいうことがあったとします。 仕様ではそこは数字でなければならない、だから数字以外の入力をしたらユーザーのせいだ、と言えますか。 これは、たとえばHTML5で画面を作っていたら入力チェック属性を与えてガイドをすべきではないですか。 プログラム固有画面なら、そのエリアでのキー押下で['0'..'9']以外は受け付けないコンポーネントを作りnumentryというクラスにすべきではないですか。 そうすると、内部設計書で、そのクラスを登録し、部品として品質を確保すべきでしょうね。 いいでしょうか、開発の場合は、フォーカスおよび開発スパンを考えてください。 一体どこの工程に影響している事象か、を考えてみるのです。 なんとかしなければいけないけど、技術的にかなり困難なものを「バグ」なんていったら、いつまでもバグが片付かないということになり、出荷認定がおりません。 法律的な問題がからんだり、機械の機能自体の問題にからんだものであれば、基本設計より前の「要求仕様」での再考慮が必要と言うことになります。 redmineは大変に優れたツールですけど、これを導入することでみなさん思考停止になる場合が結構あります。 コミットがローカルでもできますし、一種のメモみたいな感じでちょこまかやってサーバーコミットをすると、ソースは直っているけどいったい何、という話になります。 もちろんコメントも入れますけど、脈絡が不鮮明になるんです。 何かを直すとき、影響範囲がどの設計書にあるか、を記録するようにしないといけません。 全部の工程が同じメンバーでなされるなんて言うことは普通ありません。 上流の、要求仕様や用件定義と決定したのは、技術者ではなく経営陣や営業が主であったはずです。 ここにはコンサルタントだとか社外の協力会社の人たちも議論に加わったかもしれない。 工程はどんどんブレイクダウンしていきます。そしてその都度、メンバーは変わっていきます。 当然品質上の評価で、この工程はもうクローズしていいから次に行くことを許す、という判断はなされています。 プログラムをメイキングする部隊が、基本設計はおかしいから直そうという権限はありません。 でも基本設計で考慮いただきたいこととして発見があるなら、報告として上げる必要があるでしょう。 そのため、困難ではありません。こういうことをしてください。 バグ表ではなく、不具合発見表、というものを作ってください。 何日の何時何分に、誰がそれをどういうことをしているときに発見し、現象はこうであるという記録です。 必ず記載するルールにします。 画面がこうだとか、データがこうなっているというのであれば、その状況がわかるエビデンス資料を添付します。 そして、エビデンスに番号をふり、不具合発見表の中に、その番号を記載します。 各行には「判断」と言う項目と「対処方針」「対処チェック」と言う欄を作っておきます。 さらに「影響範囲」という欄を設定します。 この影響範囲は、実際の工程で作られている設計書を並べてください。 「外部設計書影響範囲」「内部設計書影響範囲」というように並べます。 そして、これらは、範囲を記載する欄とチェック欄の2列構成にしましょう。 開発のSEがその不具合表を見て、バグと判断するかそうでないかを記載します。 バグであれば、担当者と一緒に判断し、どこが悪いからどうなおせばいい、と記載します。 直すとした場合、どの設計書に影響するかを記載します。 プログラムをいじくるまえに、この記述は必ず行います。 よかれと思ってやったらデグレードが起きた、なんていうことを少なくするようにしたいのです。 この影響欄はブランクは許しません。影響しないのであれば”-”を入れるように決めます。 そうすると、考慮した証拠になります。 ”-”でない不具合は、修正後、影響範囲のチェック欄にチェックを入れなければいけません。対処をしたという記録です。 このルールで影響範囲のチェック欄以外がうまった不具合は、プログラムを操作してもかまいません。 往々にプログラマは先に手を動かしてしまいます。 また、人に発見されたタイプミスでも、たかがケアレスミスだとして記録したくないという神経が働くのが通例です。 不具合記録にしてしまえば絶対に記録されています。 分析をしたときにタイプミス程度なら「軽微」ということになり、やった当人が責められるなんていうことはなくなります。 もうお分かりだと思いますが、この話を進行させるには役割が一つ必要です。 「ライブラリアン」です。 redmineが勝手に暴走して誰も全体像がわからなくなるようなトンマなことが起きないように、品質監督としてライブラリアンは必要です。

nozarusan
質問者

お礼

ここまで記載頂き、大変感謝申し上げます。 大変参考となりました。会社に進言をしてみたいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • システム開発手法について

    資格取得を目指して経営情報システムを勉強しているのですが、 問題の答案を見ても理解できないところがあったので、質問させて下さい。 (1)『スパイラル型システム開発手法』と『アジャイル開発手法』は同じ意味ですか?   また、RADやXPといった開発手法は、アジャイル開発手法の一種という理解でよろしいですか? (2)問題解説に   『ウォーターフォール・モデルでは計画から実施までの時間がかかりすぎる、という点を   解決するために生まれた手法がスパイラル型システム開発手法』   とあります。   ”スパイラル”なんかにしたら余計時間がかかりそうな気がするのですが、   なぜスパイラル型開発手法は時間がかからないのですか? (3)問題解説に   『プロトタイピング手法では、エンドユーザー自らが試作品として作成したプログラムなどから   出発して情報システムを進化させていく』   とあるのですが、”エンドユーザー自ら”が試作品を作成するのですか?   エンドユーザーは試作品のチェックをするだけであり、   試作品を作成するのは委託されたプログラマーだと思うのですが…。 (4)解説に   『ライフサイクルアプローチ→システム設計・開発の一生を、予備調査から開発後の導入や                    維持・管理までとらえること』   とあるのですが、ライフサイクルアプローチとは実際に使用されている言葉ですか?   googleであまりヒットしなかったのですが…。 たくさん質問があって申し訳ありません。 初心者ですが、よろしくお願いいたします。

  • システム開発における

    システム開発における 問題点の分析について、アドバイス頂きたい事があり 投稿させていただきました。 <経緯> 現在使用している販売管理業務システムを 現行の業務と乖離してきている為内容を修正することとなった。 販売管理システムは、X業務システム、Y業務システム、Z業務システム 3つのサブシステムで構成されていて それぞれの業務に精通したメンバーを割り当てる必要があった。 ところが、かつて現有システムの開発に携わった経験を持ち、 各業務に精通しているメンバはわずか3名であり、 一方Z業務管理システムの構築に必要な特別なスキルを 身につけているのも、この3名だけであった。 結果として、A課長はこの3名をZ業務管理システムの開発に配置し、 X業務管理システム、Y業務管理システムともに、業務には精通しているが 開発スキルは不十分なメンバと開発スキルは十分だが業務の理解は 不十分なメンバの混成チームを編成し、各チームにリーダを配置し、本プロジェクトを開始した。 結合テストが終盤に差しかかる頃、 バグが多発しテストの進捗に影響を与えている状況が露呈した。 結合テスト工程でのバグ原因分析 サブシステム名 設計バグ件数 製造バグ件数 総バグ発生件数 X業務     51     89     140 Y業務     25     137    162 Z業務     2      21     23 全体      75     250    325 結合テスト工程でのバグ原因分析の結果によると、 X業務システム、Y業務システムについて それぞれ問題点を認めることができますが X業務システム、Y業務システムのリーダの立場として、 (1)表3の分析から、不具合を是正するためにどのようなことを行うか。 (2)プロジェクトの初期の段階でどのようなことをすれば根本的に  ここで生じている問題を回避することができたと考えられるか。 上記2点に関して、アドバイスを頂けないでしょうか。 以上。 宜しくお願い申し上げます。

  • システム開発 終わらないバグ修正

    初めまして。 プログラマ(7年目です)をやっております、 higeoと申します。 開発を担当したシステムのバグ修正が終わらず退職を考えております。 上記のプロジェクトに関しては、私の上司がPL(プロジェクトリーダー)としてついてくれており、私はその下のPGという立ち位置です。 該当のプロジェクトは仕様の決定が曖昧な状態で進んでしまい、 かつ扱う技術についての知識も浅いまま開発が進行してしまいました。 お客様側もIT担当などが存在せず、現場の方の意見もあまりまとまっておらずという状況で、正直打ち合わせ段階から仕様の決定については難航していました。 さらに私自身のテーブル設計の欠陥や、プログラミングの粗さなども あり、バグが多発してしまっている状態です。 私自身が仕様の決定について、どういう風にアプローチすれば良いのか分からず、積極的にアクションを起こせなかったという事がプロジェクト失敗の原因だと思っています。 私の行動が起こした結果であり、その責任は私にあることはわかっているのですが、もうかれこれ1年半くらい、一向に減らないバグ修正を対応し続けているのも精神的に参ってしまって、もう投げ出してしまいたい状況です。 この仕事自体も、自分には難しいと見切りはつけ始めているので 辞めること自体は、構わないと思っているのですが、 このような辞め方は逃げていることになってしまうのか…? と感じたのでご質問をさせていただきました。 甘い、やめてもいい、どういった内容でも構いませんので ご回答、よろしくお願い致します。

  • システム開発について

    この業界に入ってまだ、半年足らずの初心者です。 半年の間、画面遷移のテストくらいしか経験したことがないのですが、この度、急にシステム開発の設計のメンバーに入りました。 開発の手法等、全く分からず、UMLなど独学しているのですが、方法論が分からなくて戸惑っています。 どのようなもので学習すれば、効率良く習得できるのでしょうか? 近道はないのだろうと思いながら、経験以外でいち早くスキルを身につけたいと考えています。 返答お願いします。

  • システム開発に関してご質問させて頂きます。

    システム開発に関してご質問させて頂きます。 あるシステムが180FPの規模だったとします。 各工程別配分比率は 要件定義25%、 内部設計20%、 詳細設計(コーディング、ユニットテスト)35%、 システムテスト20% 工程別開発期間を算出する際の期間配分比率は 要件定義25%、 内部設計22%、 詳細設計(コーディング、ユニットテスト)35%、 システムテスト18% である場合、このシステムの各工程ごとの所要日数は どのようになるでしょうか? 補足させて頂きます。 1FP=7.5時間です。 月間標準時間は150時間、1人月=20日です。 以上。 宜しくお願い申し上げます。

  • ソフト開発に関しての仕様書の書き方

    ソフト開発に関しての仕様書の書き方なんですが、やはり何か決まりごとがあるのでしょうか? 仕様は ・業務フロー→システムフロー ・機能一覧 ・画面遷移→画面設計 ・ER→DB設計 とやる必要がある。 うちの会社の人は上記のように提唱しているのですが、これは必須なのでしょうか? なにか、ソフト開発に関しての仕様書の書き方にかんして説明しているHPなどあれば紹介してくださるとありがたいんですが。

  • バグを多発してしまいます。

    いつもお世話になっております。 IT業界に勤務して3年目の pinchcock と申します。 現在、私が所属しているプロジェクトは、部長 ― 私(平社員) といった、2人体制の社内システムプロジェクトです。 社内システムの新規機能追加・保守が頻繁にあるわけですが、 開発~試験まで一人でこなす必要があります。 ただ、私の実力不足(主にチェックリストを網羅できない)と スパゲティプログラム(1000行近くのSQL文等)が合い重なって、 改修などすると、別のところでバグを発生させてしまう状況が、 ここ最近多く見られます。 先日も、私が発生させてしまったバグが原因で、 経営陣会議に出席し、バグの説明&謝罪をしました。 とても情けなかったですし、向いていないのかなとも 感じてきております。 そこで、品質管理に関するセミナーに参加しようと 考えているのですが、経験豊富な皆様にもアドバイスを頂きたく 質問させて頂きました。 皆様が開発・保守で気をつけておられる点は どのような点でしょうか? お聞きしたいことは、 (1)新規機能を作成する際に、気をつけるべき点。 (2)改修のときに、気をつけるべき点。 (3)お勧めの品質管理のセミナーor書籍情報 です。 以上、ご教授の程よろしくお願い致します。

  • システム開発を一次開発と二次開発に分割する際の注意

    システム開発を一次開発と二次開発に分割して行う際に生じうる問題や注意点を教えて下さい。 また、この問題について記載した文献等ありましたら紹介してください。書籍でもインターネット上の記事でもかまいません。

  • 派遣先でシステム開発を行っています。

    今6月末出荷に向けての開発が進んでいるのですが、気になることがあります。 すでにバージョン1.0が出荷されていて、今は次のバージョンを開発している最中です。 システムは複数のアプリケーションで成り立っているのですが、そのうちの1つが品質が良くありません。 そのアプリケーションのバグの多さは、バージョン1.0開発段階から何度となく議題に挙がっていました。 私は、あまりにも品質が悪いということで、バグが発覚してからその都度対応するというやり方ではなく、コードレビューを行うなど、もっと根本的な対策が必要ではないかと提案しましたが、度重なる仕様変更もあって時間が足りないという理由で、その案は却下され、派遣先企業のプロジェクト管理者さんも厳しい態度で臨むこともありませんでした。 ただ、バージョン1.0の開発も終わり、時間的にも余裕ができたので、次の開発からは、設計レビュー、コードレビュー、単体テスト仕様書レビュー、単体テストの強化などを取り入れて、バージョン1.0と同じことを繰り返さないようにしましょうということで話がまとまりました。 次のバージョン開発が始まって1ヶ月以上経ち、ちらほらバグも出てきていますが、その内容がデグレードだったり、レビューや単体テストをしっかりしていれば流出を防げるようなものばかりなのです。 こういった状況を見る限り、開発前の約束が守られていないように思えて仕方ないんです。 問題のアプリケーションの開発担当の人は、レビュー実施や単体テスト強化に消極的です。 品質の悪さについての対策ミーティングのときも、言い訳が多く、自分はそんなに悪くないといったような態度に見えます。 品質が悪くて困るのは派遣先の企業さんなので、放っておけばいいことなのかもしれませんが、 ほかの人は遅くまで残ってがんばっているのに、当の本人は時間がないと言っておきながら定時退社。 そんな場面を見ると腹が立つんです。 また、プロジェクト管理者もあきらめているのか、バグを減らするための努力をしているか確認しようとしません。 問題の人も派遣で働いています。フリーランスではなく派遣会社の人です。 これまで何度か対策をしようと提案してきましたが、まだ議題に取り上げるべきなんでしょうか? それとも、放っておいたほうがいいんでしょうか? ちなみに、品質の悪さについて積極的に発言するのは私くらいしかいません。

  • VBのシステムの設計書にUMLは適用できますか?

    現在、VBでシステム開発を行っている者(新人)です。 VBで開発するシステムの基本設計書、詳細設計書を作成する際、UMLは利用できますでしょうか。 UMLはJava(オブジェクト指向)向きのもので、VB向きではないのは分かっているのですが。 (上司に、VBの設計書にUMLはどう使えるかのレポートを書くように言われまして^^;) VBでクラスモジュールを作る場合には、クラス図やオブジェクト図が適用できるのかと思いますが、クラスを作らない場合など、他にはUMLのどのようなものが適用できるでしょうか? DBのER図などに適用できますでしょうか? また、VBで開発するシステムの設計書の特徴などがあったら教えていただきたいと思います。VBだったらこういう風に書くとか(画面設計にフォームの画像を貼るとか)、この項目はVBの場合いらないとか(上司は「VBはソースが分かりやすいから詳細設計はいらないんじゃないか?」と言っています)、どんなことでもいいので、アイデアを下さい。  ご指導の程、よろしくお願いいたします。

P-touch Editorで作成したQRコード
このQ&Aのポイント
  • P-touch Editorを使用して作成したQRコードに関する問題やトラブルについて相談します。
  • iPhoneでP-touch Editorで生成したQRコードを読み取る方法について教えてください。
  • P-touch Editorと関連するソフトやアプリ、接続方法、お使いの環境についてお知らせください。
回答を見る