280ウオーターフォールとアジャイル開発
日経XTECH 2020年9月号の中に、ウオーターフォール開発とアジャイル開発の違いについて書かれた記事があります。
ウオーターフォール開発では、誰かが「最初にどんなものが出来上がるかを完全に定義すること」が必ず求められ、初期設計者のポテンシャルを超えた規模のソフトウエアの開発は困難です。フィードバックループの長さも踏まえれば、時代変化に伴った要求も開発終盤で新たに出てきます。繰り返しになりますが、最初から開発終盤での混乱を運命付けられています。
アジャイルアプローチによって、各チームが自律的・機動的に対応することで、結果的に圧倒的に大規模で、当初は想定できていなかったニーズなどに柔軟に対応したソフトウエアが構築可能となります。 つまり、「アジャイル開発」は単なる開発プロセスではなく、ビジネスとしての製品・サービスの提供の仕方、作り方、人材採用までを含めた大きな戦略といえます。
ウオーターフォール開発
・開発開始時点で何が必要か、定義が必要→変化に弱い
・誰かが全体構想を定義しきらなければならない→規模に限界
アジャイル開発
・変化やニーズが発見された時点で対応可能→変化に強い
・各所で自律的に判断→大規模化可能
以上、日経XTECH 2020年9月号より抜粋
過去に自動化設備、システムの開発を経験してきましたが、以下の取り組みは、ウオーターフォール開発とアジャイル開発の違いに通じるところがあると思います。
自動化設備を開発する時、早期に決めなければならない項目の1つに、集中制御にするか分散制御にするかがあります。自動化のシステムとは、ワークの搬送機構、パーツ供給機構、ハンドリング機構、組立機構、検査機構から構成されます。制御は、システム全体のシーケンスを制御するメインプログラムに、各機構のシーケンス制御(サブルーチンプログラム)がぶら下がる形となります。
メインプログラムとサブルーチンプログラムとのやり取りは、レディー、ビジー、エラーの3つの信号で行われます。ここで、メインプログラムとサブルーチンプログラム全体を1つの大型プログラマブルコントローラ(PLC)で制御する方式を集中制御と呼ぶこととします。一方、メインプログラム、サブルーチンプログラムの数だけPLCを用意して制御する方式を分散制御と呼ぶこととします。
精密電子部品をワークに接着する自動化システムを若い時に開発したことがあります。ワークの搬送機、パーツ供給機、パーツハンドリングロボット(SCARA)、接着剤塗布機、加圧機から構成されるシステムで、メインプログラム、各機構のプログラムの設計にそれぞれソフト設計者をアサインしました。システム構成上何ら問題はありませんでした。が、ソフトデバッグ作業が非常に大変でした。なんといっても、PLCは1台しかなく、設計者がかわるがわるデバッグをする必要がありました。同じく、顧客先での立ち上げ、不具合対応などでは、かなりの時間(工数)がかかってしまいました。
後に、プリント板に数種類のラベルを貼付し、小型部品を搭載する多機能組立システムを開発しました。回転型プリント板搬送機、パーツ供給機3種、ハンドリングロボット(ゲンコツロボット)、ツールチェンジャーから構成されるシステムで、それぞれの機構には小型のPLCを搭載しました。以前と同様、それぞれの機構にソフト設計者をアサインしましたが、並行にソフト開発ができました。
PLCの小型・低価格化が分散制御にした1つの理由ですが、以前においても、顧客へのサービス、トータル工数などを考えた開発をしていれば、分散制御になっていたと思います。
ここで記載した集中制御がウオーターフォール開発、分散制御がアジャイル開発に対応していると思います。
0コメント