わみてっく

主に技術のことを記事にします。

「アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング」を読んだ

この記事は

何であり

「アート・オブ・アジャイル デベロップメント ―組織を成功に導くエクストリームプログラミング」を読んだ私の感想を書き残すためのものです。

http://amazon.co.jp/dp/4873113954

何でないか

あくまで個人の見解、感想であり、批評、レビューの類ではないです。

個人が印象に残った箇所を備忘録的に書き残しておくものであり、本の内容を網羅するものでもありません。

また、アジャイル開発、エクストリーム・プログラミングそのものについての説明は部分的なものに留まることをご留意ください。

私は

以下、印象に残った箇所とその理由、簡単な感想をいくつか書き残しておきます。

印象に残った箇所

アジャイル開発は、個人的な成功、技術的な成功、そして組織的な成功を同時に達成することを重視している(1.4)

なぜ?

  • 個人的な成功が含まれると思っていなかった
    • 組織的成功、そして技術的成功には寄与すると思っていた
    • でもよく考えてみると、「アジャイル開発を実践する -> 楽しく開発する時間が増える -> 個人的なやりがい、成功につながる」と言うシンプルな図式かもしれない
      • 思い返すとそれができてたなと思うことがある
        • 前職ではアジャイルなどではなく常に全力疾走
        • 今の職場では持続可能なペースで計画を立てて開発を行っている
        • 結果的に自分の興味があるリファクタ、設計を重視した開発をできる余力が増えた

もう少し考えてみる

  • 従来のソフトウェア開発では3つのうちどれかしか重視/達成できていなかった背景がある?
    • 自分がソフトウェア開発に関わり始めたタイミング以後(2016)でも全てを重視/達成しているプロジェクトばかりとは言いがたかった
    • 全てを重視/達成するプロジェクトとそうでないものは何が違うのか?
      • 一つの要因が持続可能性

オンサイト顧客の役割(3.2.2)

  • オンサイト顧客には、チームが構築するソフトウェアを定義する責任がある。(中略)プロジェクトのビジョンをみんなに熱く語らなければならない。(中略)プログラマと調整して計画ゲームを進めることによって、達成可能な計画を作成する。(3.2.2)

なぜ?

  • 言葉からは「システムのエンドユーザー」であったり「そのシステム導入の意思決定を行う決裁権者」のようなイメージをうける
    • でもそれは部分的にしか合っていない(間違っているわけじゃない!)
    • XPにおいては、顧客はプロジェクトのビジョンを語り、計画ゲームを進めて達成可能な計画を作る

もう少し考えてみる

  • リモートワークする中でオンサイト顧客とどのような接点を持つべきか?
      1. デイリーイベントに参加してもらう
      1. 不定期で話せるようなインフラを整える
      2. オンライン会議ツール(Zoom, Google Meet, Microsoft Teams)
    • オンサイトと近い状態を作れるのがベストだがそうはいかない部分もある。オンサイト顧客と予めこのようにプロジェクトを進めたい、というコミュニケーションを取る必要がある
    • でも別にそれはオンサイトでやってた時と変わらないはず

「最終責任時点(3.3.4)」

  • 決定をギリギリの時点まで遅らせることにより、決定の精度を上げ、作業負荷を軽減し、変更の影響を減らすことができる -「決定を下し損ねると、重要な代替案がなくなる時点」で決断する

なぜ?

  • 遅らせることができるタイミングまでコミットメントを持った決定を遅らせる。結果的にそれまでに情報を集めたり、仮説を検証したり、より精度の高い結論にたどり着けるはず

「制約理論(3.3.8)」

  • どんなシステムにもシステム全体のスループットを決定づける1つの制約がある
  • プログラマをチームの制約だと仮定する
    • どんなにテスターや顧客が素早く働いても、プログラマがプログラミングするより早くプロジェクトを完成させることはできない
    • それ故にプログラマの見積もりが計画作りに使われる。
      • 故に持続可能なペースで計画を実現できるのか。
    • 逆にそれ以外の人はプログラマの障害を減らす役割を担う

*1:現職での経歴がそのまま当てはまる。現職に来る前も2年ほどエンジニアとして勤務していたが、その会社ではアジャイル開発と呼べるだけの開発体制が整っていなかった。

*2:どうでもいい話ですが私の周りには「アジャみつ」派と「アジャみけ」派がいました。