書籍「アジャイルサムライ」を読んだ所感

Gakuです。

巷で話題の「アジャイルサムライ」を遅ればせながら読破したので、その所感を書かせて頂ければと思います。
[blogcard url=”https://www.amazon.co.jp/dp/4274068560/ref=cm_sw_r_tw_dp_x_ILFBybRKQSXZM”][/blogcard]

結局のところアジャイルって何よ?

かねてからこのことが疑問でした。
一種のバズワードかと思っていましたが、本書ではアジャイルのことをこう述べられています。

・イテレーション毎に成果が出ているか
・改善のために日々努力をしているか
→これらを満たしているプロジェクトは全て「アジャイル」

ふむ。なるほどわからん!

イテレーション毎に成果が出ているか

「アジャイル」ではイテレーションと呼ばれる小さな開発工程を反復して開発を進めていきます。
ウォーターフォールでの開発では途中でプロトタイプを顧客に見せることはあっても、完成版を見せるのは全ての機能が実装してからです。
しかし、「アジャイル」ではイテレーションを「1週間~2週間」のスパンで設定し、その間で都度、完成版を顧客に見てもらうということを行います。

こうすることで「顧客からのフィードバックを瞬時に頂くことが可能」となり、方向性を見失わないようすることが可能です。
また、完成版を開示するので、真実を隠すことができない点が一番の違いになります。

ウォーターフォール開発を従事していた際に思ったことは「真実を隠す人があまりにも多すぎる」という点です。
例えば、進捗に遅れが発生していたとしても、顧客にその状況を知られてたくないがため(進捗遅れが露呈すると始末書の作成を迫られ、さらに工数が圧迫するため[日本の悪しき習慣])に、「プロジェクトは順調である」と発言する行為です。

「アジャイル」では完成版を2週間単位で顧客に見てもらう必要があるので、プロジェクトのありのままを伝える必要が出てきます。
辛いという意見もあるかと思いますが、真実を隠して良いことなど何もないので、「アジャイル」は理にかなっていると感じます。

改善のために日々努力をしているか

PMやPLの上流工程だけではなく、下流のプログラマなども自ら責任を持ち「改善のために日々努力する」ことを「アジャイル」では求められます。
(本を読んでいると「明確な役割分けは存在しない」的なことが記述されていたので、そもそも「アジャイル」には上とか下とか言う概念は存在しないのかもしれません。)

たまに「見積もり精度が甘すぎたためにプロジェクトが失敗したんだ!」的なことを言う人がいますが、「アジャイル」ではそれは完全にお門違いです。
見積もり段階にその発言をしたメンバーが居たのであれば、何故その際に声を大きくして「見積もり」について言及しなかったのでしょうか。

その段階で見積もりフェーズがクリアしているのであれば、そのメンバーも一度は頷き承認したはずです。
全てのプロジェクト関係者が「改善のために日々努力する」ことを行っているのであれば、そのようなことを発言することなんて出来るはずがありません。
そんなことを言う前に目の前にある課題に対して「改善のために日々努力する」ことの方がよっぽど大切であると感じます。
(まぁ、見積もりなんて変わって当然の心構えでみんな居ようぜw とも書かれてました。)

アジャイル開発のメリット

結局のところ「アジャイルの最大のメリットは?」と聞かれたら、僕なら「アジャイルサムライ」の中で使われている言葉で

「顧客の期待をマネジメントするために有効な開発手法である」
と答えます。

ウォーターフォール開発では、プロダクトを見せるのは完成した時になるので、簡単なものでも3ヶ月、長いものであれば数年後に顧客に見てもらうということになります。
そのようになってしまうと、顧客は「正常にプロジェクトが進んでいるのか」「投資としては妥当なものだったのか」という点を完成までの数年、ヤキモキした気持ちで見守ることとなってしまいます。
その点「アジャイル」は数週間単位でその都度の完成版を顧客に見てもらうということを行いますので、「顧客の信頼を勝ち得やすい」と感じました。

この点以外にも「アジャイル」のメリットは「アジャイルサムライ」に詳しく掲載されているので、興味のある方は参照頂ければと思います。

おわりに

日本の考え方ではまだまだ普及するのが難しい点が多いとも思える「アジャイル」ですが、僕としてはこの「アジャイルサムライ」という書籍をプロダクト制作者だけでなく、様々なプロダクト制作に関わる人に読んで頂きたい書籍であると思いました。
ただ、「アジャイル」にするためには、エンジニアスキルも多分に必要になってくるので、きたる「アジャイル開発文化」に備えてもっと勉強しないといけないと感じた一冊でもありました。

正直な感想、「アジャイル開発が浸透すると、世の大半のエンジニアが技術不足で死んじゃいます。」
今の僕のスキルでは余裕で死んじゃいます。
ただ、それが世界では普通と考えると、現状の日本企業のエンジニア力というのが如何に衰退しているかが見えてきた一冊でもありました。

IFTTTで簡単なレシピを作成してみる

Gakuです。
あけましておめでとうございます。
今年もよろしくお願いします。

さて、新年早々ではありますが何やらIFTTTとかいうサービスが流行っているようなので、少し触ってみた感想を投稿させて頂きます。

IFTTTって何ぞや?

「新しいFFFTP(´・ω・`)?」
と思った方も多いと思います。(僕がそうでした。)

IFTTTとは「if this then that」の略称で、「もしこの操作を行ったら、この操作を実行する」ということができるサービスです。
具体的に言うと、「Wordpressで記事を投稿したらtwitterで通知する」や「fitbitで起床ログを取ったら、Evernoteでそのログを記載したnoteを作成する」といったことができる仲介サービスになります。
何かのアクションをトリガーとして何かのアクションが実行されるという、「自動化」に重きを置いた素晴らしくワクワクするサービスです。
今後IoT業界が発達することでさらなる発展が期待されているサービスになります。

簡単なレシピを作成してみる

IFTTTでは「もしこの操作を行ったら、この操作を実行する」という一つ一つの単位を「レシピ」という言葉で表しています。
今回は簡単な「wordpressで新しい記事を投稿したら、twitterへ通知する」というレシピを作成したいと思います。

ユーザ登録

何はともあれユーザ登録です。
下記リンクからメールとパスワードを入力しユーザの登録を行います。
[blogcard url=”https://ifttt.com/join”][/blogcard]

IFTTTレシピを作成する

レシピを作成するには上部のメニューを開き「New Applet」リンクから作成可能です。
1
そしたら以下のような画面になるので「this」部分をクリックし、トリガーとなる処理を登録します。
2
今回は「wordpressで新しい記事を投稿したら、twitterへ通知する」というレシピを作成しますので、トリガーとなる「wordpress」を検索しクリックします。
3
はじめての場合wordpressへの認証が必要です。
「connect」をクリックし連携を行うwordpressの情報を適宜入力し認証を行います。
4
認証が完了するとwordpressの操作を設定する画面が表示されます。
「wordpressへ投稿したら」という操作になるので「Any new post」を選択します。
6

これでトリガー部分の設定は完了です。
次にトリガーを引いたら実行するアクションを設定していきます。
以下の画面が表示されるので「That」をクリックします。
7
twitterに投稿するというアクションを設定したいので、「twitter」で検索後クリックします。
8
ここでも初回の場合、認証が必要なので「connect」をクリックし適宜認証処理を実施して下さい。
9
認証が完了すると、アクションを設定する画面が表示されます。
wordpressの投稿をtwitterでtweetしたいため、今回は「Post a tweet」をクリックします。
11
そしたら、tweet内容の設定画面に遷移しますので、どのように投稿を行うか設定し「create action」をクリックします。
ちなみに表示にはHTMLダグが使用できるので、改行を行いたい場合は「br」タグを挿入すれば改行し投稿することが可能です。
12
最後に作成したレシピに名前を付与します。
日本語も使用可能ですので、わかりやすい名前を入力しましょう。
13
これで終わりです。お疲れ様でした~

投稿してみる

このレシピを使ってtwitterに投稿した結果がこちらになります。
16
ちゃんとwordpressで記事を投稿するとtwitter上で通知してくれるようになりました。
これは感動です!
ちなみに、IFTTTでは通知に最大1時間程度遅延が発生する可能性があるようです。
強制的に通知するには作成したレシピの下部にある「Check now」をクリックすれば遅延なくレシピを実行してくれます。(テスト時などに使用すれば良いかと思います。)
14

おわりに

簡単にIFTTTレシピを作成することができました。
まぁ、これぐらいであれば「wordpressのプラグイン使えよ!」という声が聞こえて来そうですが、様々な自動化処理を簡単に作成することができ、かつ、それを一つのサービスで管理できるというのは素晴らしいサービスだと思います。
今まであれば、何かの自動処理を実装することも面倒でしたし、対象の自動化処理を廃止したいと思った際「あれ、何切ればいいんだっけ?」と迷うことが多々ありました。
IFTTTで全て管理すれば、IFTTTのサービスを見るだけで良いので管理が非常に楽です。

これからIoTやスマートハウス分野などが活発になってくることが期待されていますが、このIFTTTを使用することでさらに面白いことができるんじゃないかと思います。
今回紹介したレシピ以外にも、IFTTTには様々なレシピが公開されているので、「自動化」に興味がある方は一度触れてみるのはいかがでしょうか。