ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

最近の大規模開発は、製造業(第二次産業)っぽくやっても、うまくいかないかもよ!

2005-07-08 18:03:30 | 開発ネタ

いがぴょんさんのブログに、「規模が小さめのソフトウェアは第三次産業、規模が大きめのソフトウェアは第二次産業 (?)」というのがありました。
 この、大規模開発の場合、製造業(第二次産業)とおなじようである(あるいは、同じように出来ないか)という考えは、90年代、「ソフトウェアファクトリー」という考え方で、はやりました。

 でも、いまは、その考えだと、うまくいかないと思います。
 理由は2点

(1)製造業とおなじようにやるためには、すくなくとも、機械の動き方は、「動かす前に」わかっていないといけない。そうしないと、生産計画が立てられない。
 ところが、いまのソフトは、マニュアルどおりにうごかない。

 ひどいのなんか、BREWのカメラなんかにかんしては、KDDIのマニュアルで、2とおりの動き方をしめし、どっちになるかは、自分で調べてね(^^;)

 おいおい。。

 で、そのとおりに動けばいいけど、さらに、端末(ケータイ)によって、びみょーに動きが違う。なので、一概に仕様をきって、いっぺんにやらせることが出来ない。

(2)製造業の場合、途中で、仕様変更が起こることがまれである。
 (あったとしても、想定の範囲内である)

 システム開発の場合、ユーザーの都合で仕様変更が起こるし、さらに、もっとひといのは、設計ミスっていうより、連絡ミスっていうより、意識があってなかったので、インターフェース変更というのが、日常茶飯事におこる。それも、「ありえねーだろ、そんなのはじめに気づけよ!」という、大規模仕様変更が。




 もちろん、製造業においても、昔のベルトコンベアーのように、同じ作業を繰り返し行うという方法でなく、セル生産方式が取り入れられ、生産ラインにおいて、単一の仕事をさせるのではなく、ある程度まとまった仕事をさせ、多能工化させていることや、それにより、敏速な仕様変更が可能になったことくらいは、理解してます。

 でも、それでもなおですねえ。。。ソフトウエアのマニュアルのいい加減さ、仕様変更の度合いのひどさは、製造業とは、違うと思います。




 そこで、現在では、大規模開発の場合、上記の2点の対策として
(1)プロトタイプの段階で、TDDの開発のように、ある程度自由度をもたせて、開発させ、リスク部分のやり方を明確にする。
(2)仕様変更が起こっても迅速に対応できるよう、抽象的なプログラムの作成(プロパティファイルにり、自由度をあげるなど)と、自動生成によるプログラム作成の迅速化を行う
ようになったと思います。

 小規模開発においては、これらの手法を行うまでもなく、ふつーに、開発しても、TDDで開発しても、XPで開発しても、ある程度、うまくいきます。
 そういう意味では、小規模のほうが、自由度は大きいと思います。




 まとめると、昔は、大規模開発の場合、昔の製造業のように、標準化をきめて、ばーんと流せばよかった。
 でも、今は、製造業ですら、その方法で行き詰まり、セル生産方式に変わってきたように、ソフトでも、標準化をきめて、バーンとというやり方は、うまくいかなくなってきた(理由は、上に示した2つ)。

 なんで、今の大規模開発は、さらに、シビアになっていて、リスク要因部分を切り出し、そこをプロトタイプとしてTDDっぽいかんじで開発し、開発部隊を動かす段階になる前に、方式が標準を作成し、方式完了後、バーンとなげる。っていうかんじだと思います(っていうのは、わたしのまわりだけ?)。

 で、その際、どこで、どのタイミングで、そのTDD風要素を、どこまで取り入れるかで、組織がまとまんなくなっちゃうので、結構、マネージメントが大変つーかんじだと思います。




 つまり、規模によって、開発方法がぜんぜん違うことはたしかにそうなんですけど、
 小規模の場合、リスクも限定的だし、意識あわせも限定的なので、どのような開発方法でもとれる(別に小規模で、ソフトウェアファクトリー的な作り方をしても、問題はない)。
 でも、大規模になると、リスクを限定「しないといけないし」、意識あわせも、シビアに「しないといけないので」、マネージャーの力量と、まわりのスタッフレベルと作業量を考えると、方法論は限定「せざるをえない」。
 しかし、その限定されたソフトウェア開発方法は、単純な、製造業をパクってきたような標準化したソフト開発ですまないから、むずかしい。
 そこで、マネージャーの、「相当な」力量が問われる(っていうか、本当は、「これやばいかも!って気づく勘だとおもうけどね)。

 つーかんじなのかなあ。。。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Excelを分析するときは、入力と出力だけを、まず考えたほうがいいみたい

2005-07-08 14:55:36 | 開発ネタ

 ユーザーから受け取ったExcelシートから、データ項目を割り出すときの考え方。
 まえに書いたやり方で、やってたけど、うまくいかず、結局、こう考えた。

(1)とにかく、計算式で出していない値を入力用のセルと考える
(2)出力しなきゃいけないセルを確認する
(3)(1)から(2)を出す方法を、計算式などを「参考にしながら」考える。

 Excelの計算式を追っていくと、わけわなんなくなる!!
 (いや、そうならないときもあるけど、そうなるときもある。
  ユーザーの計算のさせ方によっては)

 とにかく、どの値がほしいの?そのために、どの値が必要なの!だけ、追っかけたら、あとは自分で組み立てたほうがいい。
 計算式で出てきた値を利用してどーのこーのって、考えると、わけわかんなくなるわ・・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

テスト方法の考え方5 総合テスト:システムテストと要求仕様の品質部分と、品質特性モデル

2005-07-08 11:40:37 | 開発ネタ
テスト方法の考え方」シリーズ?の5回目、総合テストについてです。
 システムテストというほうが、一般的かも。
 総合テストの方法について、いろんなことをしなければ、ならないように本にはかいてあります。、

たとえば、IPAのCAIT(中央情報教育研究所)が出した、テキスト、
第一種共通テキスト(15)応用システム開発技法486ページだと
・機能テスト
・移行テスト
・障害回復テスト
・他システムとのインターフェース
・負荷テスト
・容量テスト
・機密保護テスト
・構成テスト
・操作マニュアルテスト
・使いやすさのテスト

で、これで終わりかというと、その本の485ページに「ほかにすべきテスト項目があれば追加して」。。。
おいおい、いったいいくつテストするんだい。終わりは?




システムテストには、2種類の目的があるとおもいます。
1つは、要求仕様書を満たしていること
もう1つは、運用ができること(この2つは、一致しているはずだが、実はかならずしも一致しない)
そして、要求仕様書は2つの部分、つまり機能要件と非機能要件、いいかえると、業務部分と、品質部分にわかれます。

ということは、大きくテスト内容は

(1)運用できるかどうかのテスト
   ・移行はもちろん
   ・テスト的に運用してみて
   ・バックアップとかができるかまでのテスト

(2)業務部分のテスト
   ・最上位の他インターフェースとのテストから
   ・要求仕様にある、業務の内容を、業務シナリオにそって

ここまではOKです。問題は

(3)品質部分のテスト

この範囲です。




 これって、言い換えると、要求仕様で、どのような品質を挙げるかということになります。
 そこで、昨日のブログに書いた、品質特性モデルです。
 ISOでは。。とかこうと思って、う、そのISOの品質特性モデルを書いた本が、今手元にないことに気づいたので、中略
 (手元にきたら、書きます)




 で、その品質特性に対して、対応するテストというのをあらかじめ決めておいて、要求仕様で、指定されたものをテストすればよいということになるかと、思います。
(中略したら、まったくわかんなくなってしまった)



  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする