パスワードを忘れた? アカウント作成
272249 story
プログラミング

ソフトウェアの品質を上げるにはどうするべき? 97

ストーリー by hylom
バグが何件出るかなんて予測できるの? 部門より

あるAnonymous Coward 曰く、

ITproにて、「品質管理のやり方として正しいのはどれ? - 今日の腕試し!」なるクイズが掲載されている。品質を上げるの必要なのはバグ出しだけではないが、設問をつくるために敢えてバグ出しをターゲットにしたのだろう。それはいいのだが、個人的にみてこの3択には正解の要素が見受けられない。特に、正解をみてしまうと「今時、こんな方法をとっているベンダーとは疎遠になりたい……」と思ってしまう。

ちなみに、バグ出し(と、そのためのプログラム作り)には開発期間の半分はとるべきだと私は考えているが、そううまくいかないのも現実である。理想と現実に挟まれるSEやプログラマが多いであろうが、諸兄はどこを落とし所にしているのだろうか? ちなみに、私の現職は中小企業のシステム管理である。前職はプログラマであった。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 品質管理に絶対というものは、ありません。
    その職場に合わせて常に改善をするべきです。 ねえ、富士通さんの SDEM!
    日立さんの人海玉砕戦法よりはましだけど。
  • by NOBAX (21937) on 2010年11月10日 15時14分 (#1856343)
    これでバグはなくなったなと悟る瞬間がありまして、
    それでリリースになります。

    グループでやるときは、知りません。
    チーム・ファシリテーション・マネージメントが先決でしょうか。
  • そもそも (スコア:3, 興味深い)

    by Anonymous Coward on 2010年11月10日 15時36分 (#1856359)

    そもそも「バグの数=ソフトウェアの品質」という短絡的な考え方がソフトウェアの品質を下げてます。なぜなら「バグがなければ本当に顧客が使いたい完璧なソフトウェアなのか?」は大抵の場合、NOですから。

    上流工程の段階から仕様をきちんと煮詰められる(プログラムで処理できるか、実装にどれくらいコストがかかるか、代替案があるか、を判断できる)人間が携わっていれば、そんなにひどいモノはできない気がするんですけどね。

    #でもスーツ着て客の前に出るのが面倒だから引きこもり気味の巫女なのでAC
    #ACの意味がないのは芸風です(言い切った)

    • Re:そもそも (スコア:3, 参考になる)

      by ikotom (20155) on 2010年11月10日 20時30分 (#1856580)

      > 「バグの数=ソフトウェアの品質」という短絡的な考え方がソフトウェアの品質を下げてます。
      完全同意の、すごく良いこと言ってると思うんですけど、ここで言う 品質 に2つの意味が混ざっちゃってませんか?

      「品質」と聞いて何を思うかは人それぞれですが例えばISO-9000でいう品質とは:

      本来備わっている特性の集まりが、要求事項を満たす程度

      ということになってます。
      つまり「その製品を要求事項にどれだけ近づけるか」が品質だ、とまずは定義しておいて、
      じゃあ要求事項って何よ、としたとき、
      「仕様書に書いてあるのが、要求されたことだ」と捉えるのが旧来の品質管理とすると、
      「『顧客満足』を満たすことが要求されたことだ」と、近頃は より踏み込んで品質管理を再定義する考え方が広まってきています。

      巫女・・・失礼、ACさんのコメントで「バグの数=ソフトウェアの品質」というのは前者の品質で、それ以外は後者ですよね。
      この2つの品質は分けて語らないと やることが正反対になっちゃったりするので要注意だと思ってます。
      # 仕様書原理主義と積極改訂派の聖戦を何度経験したことか

      個人的には、どちらの考え方も大切だと思います。
      巫・・・ACさんの、バグの数だけ見ていても後者の意味の品質には永遠に気づけない、という考え方は
      お世辞抜きに、物作りに関わる全ての人に持って欲しい素晴らしい考え方です。
      が、「バグの数を品質管理に利用する」という方式論も、前者の意味の品質管理においては決して短絡的でない、有効な手法であると思います。

      親コメント
      • Re:そもそも (スコア:2, 参考になる)

        by pfaltz (36452) on 2010年11月11日 12時33分 (#1856984)
        >「仕様書に書いてあるのが、要求されたことだ」と捉えるのが旧来の品質管理とすると、
        えっと、そのISOには、”要求事項”として、”暗黙の”要求事項も含まれると書いてあるので、「旧来の品質管理」であっても、仕様書に書いてあるのがすべてだなんてことはありません。

        ISOとかCMMとか、馬鹿にする前にちゃんと読んでね。

        なので、
        >より踏み込んで品質管理を再定義する考え方が広まってきて
        っていうのは、最近の流れではなくて、昔からまともな考え方です。
        ありうるとしたら、ISOやCMMを誤解した人たちが一時期いっぱいいたということでしょう。

        >仕様書原理主義と積極改訂派の聖戦を何度経験したことか
        仕様書原理主義者っては、言われたことをやるのに精一杯な若手のことでしょ?
        顔が老けたり、態度のでかい若手もいるでしょうが、そういうときは、戦うのではなくて、にこやかにたしなめるのが、先輩としての態度でしょうw
        親コメント
      • by ijk (16269) on 2010年11月11日 0時07分 (#1856711)
        「混ざっちゃって」いることをもう一つ。「バグ」にいろいろな意味が混ざっていて、ある種の思考停止ワードにすらなっているように思います。「バグの数=ソフトウェアの品質」なんていうのはその典型だし、プログラムの振る舞いがおかしいこと(仕様通りでないとか、仕様の問題や仕様以前の問題など)とプログラムの不具合を、区別せずに両方「バグ」と呼ぶこともよくあります。ITProの記事でも、「不具合」「指摘事項」「実際のテスト(結果)における実績値」など異なるものをまとめて「バグ」と呼んで、この「バグ」の検出件数を計画をすると言っています。
        親コメント
    • by gm_camouf01 (31675) on 2010年11月10日 19時03分 (#1856521)
      顧客は移り気なのです
      親コメント
  • by Anonymous Coward on 2010年11月10日 16時46分 (#1856427)
    「出るはず」のBUGの件数に予測がつくなんてうらやましいよなぁ。。。
    俺が師匠に言われたのは、

    ・BUGが無くなったっと評価したら、その評価がBUGである。
    ・仕事としてそのコードを出荷しても良いかどうかは、「仕様書」を満たしているか否かである。
    ・プログラマの目からみて明らかにBUGであっても、仕様書通りの挙動であるならそれは「仕様」である。
    ・キチンとした「仕様書」が入手出来ていない仕事の場合、「おまえのセンスで何とかしろ。」

    ・・・そんなオチかよ!!
    • >・プログラマの目からみて明らかにBUGであっても、仕様書通りの挙動であるならそれは「仕様」である。

      まあそうなんだけど。
      セキュリティリスクくらいは指摘して欲しいと思う。

      親コメント
  • http://itpro.nikkeibp.co.jp/article/COLUMN/20100917/352079/?ST=system [nikkeibp.co.jp]
    今日の腕試し
    くらいは記さないと恥ずかしがりにもほどがある。

    この三択に納得いかないようなら代替案をだしていただかないと連行されたビジネスパートナー各社メンバーは何をターゲットに進めればいいのかと。
    ちなみにどっかにもぐりこんで仕事したときは主に2番のやり方でUT/IT/OTといくつかを後工程に積み残しながらというのが多かったかな。

  • Re: 部門名 (スコア:2, おもしろおかしい)

    by Anonymous Coward on 2010年11月10日 15時00分 (#1856327)

    当然です。今どき予測件数に対して1件の狂いもなくバグを出す程度の能力がなくては仕事を受注できるわけがありません。バグを1件も出さないなんてのは素人のやることです。

  • by sunnydaysundey (32697) on 2010年11月10日 18時38分 (#1856499)
    以前いた会社の取引先が信頼度成長曲線をもとにバグ数の予測数値を出していて、
    テスト時に見つかったバグが予測数値より少ないと「テストが不足している」と文句を言われ、
    バグが多いと「品質が悪い」と言われてました。

    直接の担当の人はそんな計算数値通りになるわけないと分かってくれてましたが、
    管理部門の人たちは計算からズレるとうるさいそうで。
  • by Anonymous Coward on 2010年11月10日 15時37分 (#1856360)

    ガイアの夜明けを死亡フラグと笑えるぐらいのスルー力が必要だよ。

  • ソフトウェアの品質なんて、第三者にテストしてもらわない限り向上しないので、
    どれだけ内部でテストしても基本的には無駄

    できれば基本設計の時点から第三者にレビューしてもらうのがベストだけど、
    そこまで品質にこだわるプロジェクトなんて滅多にお目にかかれないですね

    #あと「予備日」をスケジュールに入れておく。これをやるかどうかで格段に違う
  • "There's always one more bug."
    真理だと思います。
    --
    如何なる内容であろうとACでの書き込みは一切無視します。
  • どんなにやってもバグは絶対になくならないから上手に付き合っていくしかないと思う。。。
    バグに誰も気がつかずに燃えていたなんていうのが一番いけないので、
    バグに早期に気がつける体制、システムを構築して、早期発見早期治療を行っていけばいいんぢゃなイカと。

    エラーがあったら、コンテキストをログに保存するとか、ユーザから簡単に問い合わせできるようにするか、アプリケーションログを取って、定期的にgrepしてアラート上げるとか、絶対に間違えが許されない場合、複数系統を作って多数決とるとか、定期的にデータの整合性を取るバッチを回すとか、、、
    いろいろ方法はあるんぢゃなイカと思うでゲソ。

    --
    by rti.
  • by Anonymous Coward on 2010年11月10日 15時01分 (#1856332)
    つまりは、そうおっしゃりたいのですね。
    • うーん,今回のストーリーは酷いですね.

      ソフトウェアテストにおいても「目標設定 → 計画 → (実行) → 測定 → 計画または目標の修正」という手順が必要だという,極めて一般的な話なんですけどね.

      > バグが何件出るかなんて予測できるの?部門より

      予測せずに,どうやって必要な工数(労力)を見積るんですか?

      > バグ出し(と、そのためのプログラム作り)には開発期間の半分はとるべき

      なぜ半分は必要だと言えるのですか?
      述べられていませんが,どれだけの期間を割けば十分なのですか?
      テストを行う人の技術レベルや人数を考えずに,期間を半分(以上)と設定することに何の意味があるのですか?
      • >> バグが何件出るかなんて予測できるの?部門より
        >予測せずに,どうやって必要な工数(労力)を見積るんですか?

        なんか、いまだにバグはあってはならない!
        あってはならないものの件数を考えるな、
        そんな閑があるならとっとと潰せ!
        みたいなお方もちらほら

        > 測定 → 計画または目標の修正

        測定している間になぜか、そのソフトウェアの規模が膨らんだりして、
        再度の目標設定以前に、自分らが何を作っているかすらが曖昧になって
        いたりしませんかね?

        親コメント
      • by Anonymous Coward on 2010年11月10日 23時02分 (#1856688)

        >> バグが何件出るかなんて予測できるの?部門より
        > 予測せずに,どうやって必要な工数(労力)を見積るんですか?

        まあそうなんですが。工学と名乗るには、反復的な情報の収集と、それを元にした予測の妥当性が反復的が必要な訳で。それがPDCAサイクルなんですけれど、「ソフトウェア工学」なるものがPDまででCへ行かない、そんな感じはしています。

        > テストを行う人の技術レベルや人数を考えずに,期間を半分(以上)と設定することに何の意味があるのですか?
        工学的には意味はありません。芸能としては意味があるかもしれません。工学を志向/指向するなら「技術レベル」を考えるだけでは済まず、作業に携わる個々の要員の技術レベルや効率、作業傾向等々々々々を厳密に数値化する事が必要。そうしなければ、工学的にプロジェクト計画なぞ立てる事は不可能な訳で。でもそんな事を無しで計画とか立ててるでしょ?どこの時点でか、「えいっ、やっ!」をやっているんですよ、現実問題としては。工学から芸能への逸脱が発生しているのです。

        # いつかアートを抜け出してエンジニアリングになるさ、いつかは

        親コメント
  • by Anonymous Coward on 2010年11月10日 15時10分 (#1856337)

    グラフ書いて予定数に達するまで頑張るのがふつうですよ

    それが正しいのかどうかは別なので、論文でも書いてくださいな

  • by Anonymous Coward on 2010年11月10日 15時14分 (#1856345)
    腕利きの技術者や業者はいくらでもいるのだから、彼らに発注するだけの金をかければよい。
    もしくは、彼らに匹敵する技術者を育てるために金をかければよい。

    私が知る失敗事例の殆ど全ては、金の出し惜しみの結果、出し渋った金額以上の損失を生んでいる。
    • by Anonymous Coward

      金だけで済まそうと思うのが、実は一番の失敗の元。

      先ずは自分自身が仕様を理解するところから始めるべき。
      発注者が理解していないものなんて、どんな腕利きですらまともに作れない。

    • by Anonymous Coward

      アルバイト [srad.jp]ならそんなに金はかからないんでは?

      • by Anonymous Coward
        まあ結局は金じゃなくて人(not 人足)ですよね。
        たまに火が吹いたプロジェクトにただ人を投入するだけの上司がいますが
        それで収束することはまれで、たいていは余計おかしくなるだけ。

        なので正確には「ちゃんと必要な人材を揃えるだけの金」ですね。
        研修上がりの実経験0の新人を火が吹いたプロジェクトに投入して
        「しっかり勉強させて鍛えてやれ」なんていう上司をクビにすれば
        多少は適材適所に金を投入出来るんでしょうけど…(遠い目)

        # 本コメントはフィクションであり実在の上司とは一切関係は
        # ありませんと言える会社ってどっかにないかなんて考えてません!!
        • by Ay (33430) on 2010年11月10日 15時59分 (#1856373)

          > たまに火が吹いたプロジェクトにただ人を投入するだけの上司がいますが

          たまにしかいないんだ。うらやましい

          親コメント
          • by Anonymous Coward
            「たまに」がどこにかかるとうらやましいんでしょうか?

            ・たまにしかプロジェクトに火が付かないこと?
            ・たまにしか忠人を投入する事態にならないこと?
            ・たまにしかそういう上司がいないこと?
            ・全部?
            • by Ay (33430) on 2010年11月10日 19時35分 (#1856540)

              端折りすぎましたね、すみません。
              >・たまにしかそういう上司がいないこと?
              これかな?

              私の読み方が悪くて、元コメを
              「トラブった時の対策手段として『人員追加しかカードがない』上司はあまり居ない」
              と解釈しちゃいました。

              まぁ「戦闘要員として民間人を戦場に配備しないでよ!」ってことです。

              最近テスト要員で非技術系の人が増員されたことがあったんですが、
              ネットワーク処理のバグレポートで「パケットキャプチャです」といって
              画像ファイルが送られたときは参りました。
              (wiresharkの実行中の画面をPrintScreenしたようです)

              親コメント
        • by Anonymous Coward

          こんな記事 [nikkeibp.co.jp]が。
          2ページ目以降は登録しないと読めないのでちょっと引用すると、こんな。

          チームのメンバーの発揮できるパフォーマンスの総量より、チームのパフォーマンスが下がることを、「グループ・プロセス・ロス」という。一方で、誰かが近くにいることで、パフォーマンスが上がる実験結果もある。チームによってメンバーのパフォーマンスが上がることを、「グループ・プロセス・ゲイン」という。よって、チームのパフォーマンスは、次のように表すことができる。

          チームのパフォーマンス
           = メンバーのパフォーマンスの総量 - グループ・プロセス・ロス + グループ・プロセス・ゲイン

    • by Anonymous Coward
      別に工学を知らなくても、本棚くらいなら図工の時間に作れる。
      時間やお金を掛ければ、奇怪な建築物を作り上げることも可能だと思う。
      でも、お金や時間を節約するための体系的な知恵である工学を活用すれば
      より簡単により凄いものが作れる。
      別に不思議なことではない。そんなの簡単。
  • by Anonymous Coward on 2010年11月10日 16時10分 (#1856390)
    ソフトウェアアップデートを禁止にしたら、取りあえず未完成だけど…、多分バグは潰れただろうから…、後で直せば分からないよね…、とかの甘い誘惑がなくなるのでいいんじゃないかな。
typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...