【アジャイル型開発】アジャイル型開発から見る“お国柄”

「アジャイル型開発」

耳にしたことはあるでしょうか?

アジャイル型開発とはソフトウエア開発における開発モデルの中の一つです。実はこの開発手法はソフトウエアは興味がないという方にも是非知っていただきたい考え方です。具体的にはプロジェクトの作成や何かの計画を立てて物を作る際に応用可能ですのでこの機会にぜひイメージだけでも掴んでください!

そもそもソフトウエア開発とは?

具体的な開発モデルについて述べる前にソフトウエア開発について、述べておきたいと思います。近年、急速なインターネットの普及や、デジタルネイティブと呼ばれる世代に移行しているため、”ソフトウエア”という言葉はどこかで聞いたことはあるかと思います。

ありとあらゆる電子機器にソフトウエアは導入されています。例えば、ある車の中には全部で300個のソフトウエアが導入されています。機械系のメーカーでもソフトを作る部門があったり、一見ソフトウエアと関係のない企業でもソフト開発をしていたりします。

では、その開発の現場はどうなっているのでしょうか。意外にも歴史は古く、ソフトウエアエンジニアリングの始まりは1968年10月に行われた「a Working Conference on Software Engineering」であるといわれています。

そのころはまだ、簡単なソフトウエアしか世の中になかったのですが、近年システムの大規模構造化複雑化に伴い、ソフトウエアの開発現場では品質や生産性を向上させる必要があります。さらには開発もなるべく短期で行う必要があります。時間がかかってしまったら、完成するころには環境が変わって、ニーズがなくなっているかもしれませんので。そこで登場するのがアジャイル型開発モデルです。次から具体的にアジャイル型開発モデルについて見ていきましょう。

アジャイル型開発とはなにか?

ここではアジャイル型開発について簡単なイメージがつかめるように重要な点をまとめたいと思います。

こちらはアジャイル型開発のイメージ図です。左から右に向かって時間軸が進んでいます。具体的な特徴を3点、以下にまとめました。

(1)短い期間の開発を繰り返す

アジャイル型開発モデルでは、短い期間で開発・確認が可能なものから開発を行います。この短期間で確認まで行うことで顧客の求めているものへの微調整を柔軟に行うことができます。一方で最初にすべて計画を立ててから、一気にすべて制作していくと時間がかかってしまうことに加えて微調整が加えにくくなってしまいます。

2)優先度の高いものから作る

ソフトウェア開発に限らずとも、何かを作るとなったときに最初に細かく計画を立ててしまうと、ついつい「いらないかもしてないけれど必要そうなもの」の作成も計画に入れてしまいますよね。

このようなものを計画に入れてしまうと作業工程が増えるばかりでではなく、結果的に不必要になる可能性が高いものまで開発してしまいます。

アジャイル型開発ではこのような無駄を省き、効率の良い開発を行っていきます。具体的には優先度の高いものから次々に開発し、形にしていきます。場合によっては当初予定にあったものでさえ、作らない場合もあります。

これによって求められていることに対して優先度の高いものは確実に制作され、途中で優先度の高い事柄が出てきても柔軟に対応して、その作成も進められます。

(3)実現範囲は定めない

顧客あってのソフトウエア開発です。重要な事項は求められているものの「実現範囲」・「品質」・「価格」・「納期」の4つです。もちろんこの全てを守るに越したことはありませんが、現実ではこれら4つの中からも優先するものを選ばなければなりません。アジャイル型解発では開発目標を流動的にします。つまり、4つの中から実現範囲は定めずに、その他3つを優先した開発を行います。

何かを開発する際に完璧なものを作る代わりに納期を延長してしまうことは多くあると思います。3月中の期日で4月1日に納入して「今日は3月32日です」というのは、現実的にはいい手法とは言えませんね。まずはできることを確実に形にしていくというのがアジャイル型開発手法の特徴です。

開発モデルと“お国柄”

ソフトウエア開発を少し話がそれてしまいますが、仕事のやり方に関して、日本と海外で似たようなことを考えたことがあります。

以前ドイツで仕事をしている方と話をする機会がありました。その際に日本人とドイツ人の仕事スタイルの違いはドイツ人は残業をほとんどしない割に、納期の延長をしないという話を聞いたことがあります。ただし、納められた仕事は100%の完成品ではないという欠点があるとのこと。一方で日本人は正確な仕事をこなすが、納期前には残業を行い、場合によっては納期の延長を行う場合もありますよね。

どちらにも良い点と悪い点があるので、一概にどちらの国柄がいいということは言えませんが、この両者の良い点を取り出してソフトウエアの開発という観点に立ち戻るとアジャイル型開発になるのではないでしょうか?

顧客とスプリント計画で話し合い、優先順位の高い事項から完成させていくことで顧客のニーズは次々に満たされていき、各スプリントでレビューを行うことで100%の完成品に近づけていく。これは上で書いた、ドイツ人の納期は絶対的に守り、日本人の仕事の丁寧さを組み合わせたものに見えてきませんでしょうか?

この例を通して、少しでもアジャイル型開発のイメージがつかめれば良いと思います。


今回は、本来はソフトウエア開発のモデルであるアジャイル型開発について、他の仕事にも応用が効きそうな点に着目して紹介しました。例えば複数の仕事を同時にやらなければならない場合、すべてを同時にやるように計画たてて、同時進行していくのはスマートなやり方ではないと思います。優先度の高いものから一つ一つ結果を出していくことで計画に柔軟性が生まれます。

アジャイル型開発を応用して、効率よく作業していきましょう!

コメント

タイトルとURLをコピーしました