ソフトウェア開発201の鉄則: 原理16:一般:開発期間中の変更は避けられない

要旨

* システム工学 第一の法則 : システムのすべてのライフルサイクルにおいて、システムは変更される。そして、それは不可避である
*  リリース後にユーザのさらなる要求に加え、リリース前の開発期間中でも変更される可能性はある
* なので、ソフトウェア開発のすべてのプロセスにおいて、変更に柔軟に対応できるようにしておくべきである

解説

もう、耳タコかも知れない。ソフトウェアは変更されるものである。というより、変化しながら進化するものだ、と捉えた方が前向きかもしれない。

ソフトウェア開発で変更が発生する場合。どのようなものが思いつくだろうか。

* 鶴の一声
* ユーザの新たな要求
* システム設計の致命的な欠陥判明
* エンジニアの急な離脱
* 開発計画策定の甘さにより計画とのずれ発生

他にも、あるだろう。鶴の一声とか、エンジニア離脱とか、予期しない、制御できないものは、仕方ない。

それ以外の要因。なんとなく眺めていたら、事前に対処できそう、と思うかもしれない。

これが、基本、無理なんだな。なんでか、というと、ソフトウェアはあまりにも複雑だから。人があらかじめ予想、検討できるキャパを超えているのである。だから、いわゆる、走りながら考える、原理でいうと「漸進的に成長させる」というのが正解、という分野なのである。

その代わり、他の原理でも言っているが、変更は、避けられない。ではどうしたらいいか、は、他の原理の解説でもあげているが、構成管理をうまく使うとか、変更が容易となるような設計にしておけ、とか。この原理には、もう一つ、重要なことが書いてある。

変更のために十分な余裕をとること。

期限にしてもリソースにしても。いわゆる「カツカツ」にしては、ならない。2割くらいは、マージンをみておいたほうがいい。必ず、そのマージンは、食い潰すことに、なる。



この記事が気に入ったらサポートをしてみませんか?