Lento con forza

大学生気分のIT系エンジニアが色々書いてく何か。ブログ名決めました。

Webサービスのアジャイル論

と、まぁ、こんな大仰なタイトルを付けてしまって申し訳ないですが、僕はアジャイラーなわけでもないです。思ったことを書きなぐってみました。

アジャイル

アジャイルアジャイル、と結構もてはやされている気がします。僕が「アジャイル」と言う言葉を初めて聞いて、少し調べてみた時のイメージはこうでした。

ウォーターフォール?スパイラル?なんて面倒。仕様なんてどうせ書いたって読まないんだし、さっさとコード書いちゃえばいいじゃん。動く物が一番だよ。コードを書こう。Let's write more code!

結論から言うと、この認識は結構間違ってたわけですけど、少し、ほんの少しだけ本当のアジャイルを知り、まぁこういう所もあるよなぁと思ってきています。

ソフトウェアは誰のための物か

答えは簡単です、ソフトウェアは使う人のためにあります。業務系のソフトウェアであれば、日々の業務を少しコンピューターに肩代わりしてもらうために。TwitterFacebookのようなSNSであれば、日々の生活を少しだけ豊かに、楽しくするために。LINEのようなアプリは、もはやインフラと化していて、使う人に取っては必要不可欠なものになっています。
この、「使う人」即ちユーザーにソフトウェアを提供することによって価値を届けることが、僕達エンジニアの仕事でもあり、使命でもあるわけです。アジャイル開発宣言には、このように書かれています。

プロセスやツールよりも 個人と対話 を、
包括的なドキュメントよりも 動くソフトウェア を、
契約交渉よりも 顧客との協調 を、
計画に従うことよりも 変化への対応 を、
価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。

ここでいう顧客がユーザーは同じ事を指しています。
この開発宣言の左記と右記を比べると、左記は開発者目線で、右記はユーザー目線で利益になるような事が書かれているように思います。
アジャイル開発とは、 顧客(ユーザー)の価値を一番に考えた開発手法 と言っていいでしょう。ソフトウェアはユーザーのためにあるのですから、ここがちゃんとしていないといいソフトウェアができないのも頷けるし、時代がアジャイルの流れになってきた事にも頷けます。

Webサービスにおいては、開発者が最強のユーザー

僕の好きな漫画「電波教師」に出てくるキャラクターの漫画家である天上院 騎咲先生は、同書内で天上院先生が書いている漫画の「終末学園」について、「自分がこの漫画の最大の理解者で一番のファンだ」と言っていました。(ややこしい・・・。この漫画は本当に好きなので、是非読んで欲しいです。)
Webサービスにおいて、開発者は最強のユーザーです。しかし、業務改善系のソフトウェアだとこうは行きません。エンジニアが直接業務をする事はないからです。Webサービスの場合だと、普段から自分でサービスを使う事ができます(出来る場合が多いです)。気に入らない所があれば自分で直す事ができますし、最新版をいち早く使う事だってできます。一般ユーザーにはない開発者のメリットを上げ始めたらキリがありません。

ソフトウェアのゴールはユーザーに価値を与える事であり、ソフトウェアをユーザーに届けることではありません。

開発者自信がユーザーになることができるWebサービスの世界では、開発者がハードユーザーになることによって、更にアジャイルの効果を高める事ができるでしょう。まぁ、独りよがりになってはいけないですが・・。

アジャイルは全然適当じゃない

アジャイル開発」と聞いて、何を思い浮かべるか?
この答えは、僕は結構長い間、「テキトーな開発」でした。
この認識の人は僕だけだといいんですが、ちゃんと勉強すると全然違っていました。
今、「アジャイル開発」と聞いて、何を思い浮かべるか? という質問をされると、こう答えるでしょう。

「ユーザーに価値を届ける事を考え、その価値を最大化するための開発手法」

なんでこんな事を書いたか

本当はもっと書きたい事がたくさんあるんですけど、色々と足りません。主に知識と経験です。そうなんです、買ったけど読んでいない、買おうと思ってるけど買っていないアジャイルの本がたくさん積まれているのです。作りたいWebサービスも、アプリも、どんどん溜まっていくし、その割に土日は怠けているし。そんな自分へやる気を出させるために書きました。もっとちゃんとアジャイル勉強します。サービスも作ります。

結局これは、自分のために書きました。 このエントリは全然アジャイルじゃありませんでした。残念。