角谷信太郎のレビュー一覧
-
Posted by ブクログ
アジャイル開発の概要を理解したいときに読む本。
事例を踏まえて学びたいときは、次に「アジャイルな見積りと計画づくり」を読むとよい。
アジャイル開発は、実態を可視化しづらいウェブアプリを前提としており、実態やプロトタイプを作る組み込みの世界にそのまま適用できなさそう。
特に、エンドユーザが直接的に価値を感じ取れないデバイス系や、Tire2サプライヤの開発には適用が難しいと思った。
組み込みの世界に適用できないところ。
1.部分発注
2.途中からの機能ドロップ
3.ストーリベースの開発
ハードウェア上でソフトウェアが動くので、
どうしてもソフトウェア階層の下位から上位へ開発が進むので、エンドユーザへリリースできない。
組み込みの世界に適用できるところ。
1.インセプションデッキでプロジェクトの外観を知る
2.TDD 検証基準で顧客と合意しておく。 -
Posted by ブクログ
とても良い本でした。
ソフトウェア開発にたずさわる読者に、「アジャイルであること」とは何なのかを理解させ、アジャイルプラクティスの試行を大いに助けてくれる本です。
アジャイル(Agile)とは、直訳すると「機敏である」ということ。
ソフトウェア開発において、最終的な製品の仕様が開発段階であらかじめ完璧に決まっているなんてことはあり得ないんだから、当然完璧な要求仕様やスケジュールなんか最初から組めるわけない。エクセルで開発スケジュールを作り、スケジュールが変化するたびに(スケジュールは当然変化する)エクセルのスケジュールをちまちま編集する、そんな馬鹿げたことに無駄な時間と労力を費やすよりも、とにかく作ろうとするソフトウェアをモジュール単位に分割して、何かしら設計してみて、コーディングして、コンパイルして、テストして・・・のサイクルを機敏に繰り返して素敵な製品を作って進化させていこうよ、という設計姿勢が「アジャイルであること」らしいです。
開発段階では仕様が確定していないので、素敵な製品の定義というのもこの時点では曖昧です。アジャイル開発は、その曖昧さを解消するために、ソフトウェア開発者にユーザーと常に接することを求めます。作った(あるいはテスト中の)ソフトウェアをユーザーに見せ、ユーザーからのフィードバックを反映し、より良いアイデアを能動的にユーザーに提案し、再テストする。この繰り返しが、ユーザーにとっての素敵な製品とは何かを定義づけていくプロセスであり、この繰り返しのプロセスを設計者がアジャイルに(機敏に)できる環境を構築することが、アジャイル開発の肝であるようです。それは例えば、分割したモジュールのコンパイルが容易であるとか、自宅からでもモジュールのチェックイン/アウトができてどこにいてもソフトウェアが作れる環境にあるとか、競合(同モジュールをチームの複数人が同時に編集しようとする)が発生しにくい仕組みやチームワークを構築する、といったことです。
チームワークの重要さもよく述べられていました。現代のアプリケーションの規模を見たときに、そのソフトウェア開発をひとりで行うケースというのは現実的でなく、ソフトウェア開発は常にチームで進められるものであるから、そのチームワークは大切であるとのことです。その有効な方法として例えば、短いスタンドアップミーティングをチーム内で毎日実施して開発者同士の進捗を確認するとともに交流を深めたり、ひとりひとりがチームにとってのメンターになる意識を持って自分の知識をチームと共有する機会を設けたり、といったことです。自分の知識は思わぬところで他人の役に立つことがあるから、とにかくメモ書きでもブログでもなんでもいいから残して共有しておくと良く、またそれを継続するためには自分自身が常に勉強する意欲と他人から教えを請う姿勢が常に求められるので、結果として自分もチームメンバーも互いに向上し合える、というのが「メンターになる」ことのメリットだそうです。(実際、「アジャイル開発」という言葉を全く知らなかった僕がこの本を読むことになったのも、チームの先輩から教えてもらったことがきっかけでした。)
最後に、ソフトウェア開発における「設計」について述べられた文章が印象的でしたので、ご紹介します。
『設計とは、直面している問題それぞれに固有の解決策である。現場でそのまま使えるほど詳細に事前設計することは難しい。最初の段階では、まだ問題の背景も十分わかっていないし、フィードバックもほとんどない。設計は時とともに進化するのだ。アプリケーションの実態(そして実装)を無視して、新しい機能や機能の強化を設計することはできない。(著書より抜粋)』 -
Posted by ブクログ
ネタバレカンバンを使うことによる組織のコラボレーションと進化の仕組みであると理解した。
カンバン上に表現することで、コミュニケーションが発生し、問題が可視化され、カイゼンする文化が築かれ、枠を超えた信頼とコラボレーションが発生するのだ。
現在のプロジェクトで利用しているタスクボード上にも、エモーションチケットやKPT、割り込みタスク、やりたいこと、バッファなどが発生している。これもいわゆるカイゼンプロジェクトボードという形でスケールしているんだなぁ。
-引用-
プロジェクトメンバーを集めて、自分たちのコンテキストでの「理想」を見つけよう。...理想の探求は、進むべき道を示すコンパスになるはずだ。理想を達成することが必要なのではない。理想とはたどりつくべき場所のことではなく、ありたい姿に向かい続ける事なんだ。
優れたプロセスは、設計によって生み出されるものではない。進化の結果として表れるだから、現在行っているプロセスが重要なのではない。現在のプロセスを改善するためのプロセスこそが重要なんだ。
本当の失敗はひとつしかない。それは、失敗から何も学ばないという失敗だ。
結果が重要なのではない。人と結果を出せるシステムを育てるのが重要なのだ。
学びとは、ただ知る事ではない。知識は頭の中のものだが、学びとは手の中にあって、熱意によって行動に移されるんだ -
Posted by ブクログ
アジャイル開発のテキストとしては有名な本だったので、読んでみました。
内容はアジャイル開発とは何ぞやから始まって、プロジェクト発足からリリースまでにどのようなことを行うのか、その際の注意点などがみっちりと書かれています。
ただ、海外の技術書によくある回りくどい表現がとても多く、内容を理解するにはそこから要点を見出して頭の中で情報を整理する必要があります。個人的にはこの作業にとても疲労感を覚えるため、本書を読解するのにとても苦労しました。
オライリー本を抵抗なく読める人であれば重宝すると思いますが、私みたいにちょっと苦手という方は誰かが要点をまとめたサマリーを探す方が良いかも、なんて思いました。