Agile開発は難しいか?

Silencejokerさんのコメント

Agileによる開発手法って最近よく聞きますがなかなかむずかしそうです。

  • Agile開発啓蒙活動でよく聞くのが「難しそうだ」という意見。
  • でも「難しい」にもいくつか種類がある。
    • 発想の転換が難しい
    • 始めるのに必要な基礎能力が高くて難しい
    • 習得の過程が難しい
    • 習得の到達点が高くて難しい
    • 習得しても、実践するのが政治的に難しい
  • まだあるかな? ま、こんなもんにしておこう。

発想の転換が難しい

  • これはあるかもしれない。
  • 「設計しないと実装できない」みたいな固定概念を、実は設計も実装もできない人達に捨ててもらうのは容易ではない。
  • 「ソフトウェアに於ける設計とは実装そのもの也」と言っても禅問答にしか聞こえない人達は少なくない。

始めるのに必要な基礎能力が高くて難しい

  • これは「プログラミングをしてみよう」という志を持ってる人なら問題ないのでは?

習得の過程が難しい

  • これは習得の方法次第と考えている。
  • 書物による自習はなかなか難しいかも。
  • 基本は練習・演習あるのみ。
  • もちろん、最初は失敗しても許されるプロジェクトで試すべきだろうね。
  • 戦争で兵隊を100%前線に投入したら、まず勝ち目はない。
  • 後方で訓練させることも重要。

習得の到達点が高くて難しい

  • 実はAgileウォーターフォールより到達点が低いのではなかろうか。
  • ウォーターフォールにおける「設計」ってのは頭の中でコードを書いて脳内テスト脳内デバッグして、いけると思ったら設計書に落とす、という作業でしょ?
  • これは難しいよ... Agileの方が楽だと実感できるはず。

  • もし画面とか帳票とかの見本を外部設計書と呼んだり、そこにある項目を抽出してデータベース設計ができたと思い込んだりしているのなら...Agileは難しいと思うかもしれない。
  • でも、設計が終わって実装が終わって、テストしているうちにどんどん問題点が浮かび上がってくる、という悲惨な状況は、Agileなら回避できる可能性が高い。
  • そしてそれは、「バグを残さず、ちょっとづつ仕事を片付けていく」という、ちょっとした基本動作の繰り返しで体験できる。
  • その「ちょっとした基本動作」は、脳内実装脳内テスト脳内デバッグよりはるかに楽ちん。

習得しても、実践するのが政治的に難しい

  • まあ、ここでしょうな問題は。
  • 特に開発が委託・受託の関係にある場合。
  • ここでも「発想の転換」が必要。
  • 委託側・受託側双方が「より良いものを作ろう」という目標を共有できていれば、ハードルは低いはず。
  • 委託側が「より安く早く作らせよう」「失敗させないように監視を強めよう」「とにかく言うことを聞かせよう」という態度だと、まあダメだろうね。
  • 受託側が「できるだけサヤを抜こう」「リスクを転嫁できるスキームにしておこう」「責任を押し付けられないようにしよう」という態度でも、やっぱりダメだろうね。