【Ultimate Agilist Tokyo 参加レポート】第1セッションB:アジャイルプログラマの定義は俺たちが決める。そして、最速でそうなってみる #uatagile #uatagileB



(写真:牛尾兄弟。)

登壇者

セッション内容

  • 今回のこのセッション、イベントの中でも一番ハードなセッションです!
  • スライド資料は全編英語です!
  • 喋るのも全編英語でやろうと思ってたけど、止められた!(笑)
    • (注:前日夜、Facebook上にて牛尾さんに資料完成後コメントしたところ、そういう流れになりましたw)
牛尾さん:セッション資料むっちゃくちゃ作るの大変やったけど、ごっついのが出来たと思うわ。
=========
私:超期待!
牛尾さん:期待して!というか、むっちゃ時間かけたし、楽しんでもらえるかと思うわ。ハードル高いでww
私:そっそれは…あの『スクラムバトルロワイヤル』よりもハードルが高いのでしょうか...?(; °Д°)
牛尾さん:違う意味でハードル高いですね。資料は私が作ったのに全部英語やしww
     まぁ公演は日本語でやりますけど多分ww 内容もガチ。相手は世界ですので。
私:なんと英語とは!もう日付変わって明日ですね。楽しみにしております。
牛尾さん:あざーす!頑張りますわ。事務局のいとうさんからは英語て公演してもらってもいいとも言われてますがww
私:そっそこは日本語でお願いします(>_<;) 最初の挨拶位なら英語でw
牛尾さん:ww そうやんねやっぱりww
  • 今回は今までやってきた講演の中で、一番準備に時間を費やしました。
  • 皆さんの中で、『アジャイルプログラマにはこういうものが必要なのではないか?』というのを議論してもらいます。
  • そして、ディスカッションした内容を世界公開しようと思います。双方向。ジャパニーズの成果を世界に。
  • 自己紹介(弟さん作)。赤枠線はこちらで追記したものですが、牛尾さん既に亡き人になってしまっております...(笑)
動くソフトウェアだけでなく、しっかり作られたソフトウェアを。
変化に対応するだけでなく、着実に価値を付加していくことを。
個人と相互作用だけでなく、プロフェッショナルたちのコミュニティを。
顧客との協調だけでなく、生産的なパタートナーシップを。
    • Alistair Cockburn のリードで設立、アジャイル教育の際の知識体系。オープン。
    • アジャイルプロジェクトマネジメント、コーチング、ソフトウェアデザイン、プログラミング。
    • 学習領域
<アジャイルソフトウェア デザイン+プログラミング>
1.デザイン&プログラミング
  1.1.テスト駆動開発
  1.2.良いデザイン
  1.3.技術的負債
  1.4.リファクタリング
  1.5.レガシーコード
2.テスト
  2.1.受け入れテスト
  2.2.テストをプログラミングする
3.チームと(チームとしての)振る舞い
  3.1.協力、共同作業
  3.2.集団的責任
  3.3.チーム活動
4.仕事の構造化
  4.1.機能ベースの開発
  4.2.プランニング
5.環境
  5.1.ツールの活用

これらを解説、分析したものが上記添付の要求分析ツリーであり、ポイントとなるのが以下の要素。

  • Five Objectives(5つの目標:"Principle"の列)
    • 顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。
    • 要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます。
    • 動くソフトウェアを、2〜3週間から2〜3ヶ月というできるだけ短い時間間隔でリリースします。
    • 最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。
    • 技術的に優れるため努力をしつづけること、良いデザインを目指し続けることでアジャイルさを高めます。
この部分で、”5つの原則”の箇所にてFive Objectives...(タイトル文)とprinciple(表内ヘッダー)で
単語が違うのは何故だろう?と気になり、こちらもまた牛尾さんに直接伺ってみました。以下そのやり取り。
----------
私:14ページのSkill Map、スライドの方で『Five Objectives』となっていますが、
その列が指し示しているヘッダ(ダウンロード可能な画像)は『Principle』となっています。
・objective(目標)
・principle(原則)
と言葉が異なっていますが、これは何か理由があってのことなのでしょうか。

牛尾さん:これは悩んだところなんですが、本来の意味ではPrincipleです。
というのもアジャイルの12のPrincipleからプログラマのスキル的な事に関するところを
ピックアップしたら5つになりました。

アジャイルプログラマからすると、この5つのprinciplesを満たす事が、
アジャイルの技術向上面では「目標」になるので、objectivesにしました。
ちょっとわすれちゃったのですがたしかprincipleという言葉がかぶる場面があったのかな。

つまり、agilemanifesto視点でみるとprincipleだし、programmerの獲得スキルという意味で、
12のプリンシプルとの混乱をさけるためにobjectivesにしただけです。
しかし、そっちのほうがよけいややこしかったねww orz


この後、それぞれのプラクティスや参考文献などについて牛尾さんの解説が続いたのですが、メモし切れなかったので割愛。^^; (スライドでは28ページ以降の内容となります。ここは1ページずつじっくり読み解いて行きたいところですね。)


セッションの時間も半分を過ぎた所で、残り時間はちょっとしたワークショップを行いました。以下の内容でチームを組んで、時間一杯までディスカッションを行いながら成果をまとめ。

当日参加していただいた方々にチームを作ってもらい、参加した人がどういうスキルがアジャイルプログラマにとって必要かをGolden Circle形式でまとめる...

私が参加したグループではこんな感じでまとまりました。他のチームでも、チーム毎に特徴のある結果となったようです。(※詳しくは牛尾さんのブログをご参照ください。)


セッション予定時間を少し押しつつ終了。時間内ではとても全てを把握し切れなかったので、これから細かい所については少しずつ読み解いて行きたいな〜と思います。


牛尾さんのセッションはどれも毎回興味深く、学び甲斐がありますね〜。参加出来て良かったです。ありがとうございました!


最後に:
牛尾さん本人によるブログエントリが日本語版・英語版でそれぞれ上がっております!これらブログエントリも熟読して、理解や見識を深めたいと思います。