冥冥乃志

ソフトウェア開発会社でチームマネージャをしているエンジニアの雑記。アウトプットは少なめです。

follow us in feedly

ゴールに向かうためにサイドチェンジした

私の今までの取り組みと、このところの取り組みの変化を整理したエントリなので長いです。個人的な話なので、ソフトウェア開発全般に適用できる話を期待されている方にとっては読む価値が薄いエントリだと思います。
3年前に初めてすくすくスクラムに参加して以来、すくすくスクラム瀬戸内の代表として小さいながらも勉強会を開催したり、Agile Japanのサテライトを開催したり、自社の開発をアジャイルに方向づけていこうと小さな取り組みをしたりしてきましたが、最近取り組みかたというか自分の活動に対してフォーカスが当たっている個所が変わってきました。そして、その変化のベクトルが今までとは変わった気がしていて、ゴールが変わってしまっていないかと若干不安になっているところもありました。
変化の理由について自分でもいまいち整理がつかなかったのですが、あるエントリがきっかけで自分の中でも少し言葉になってきたのでまとめてみます。サイドチェンジとか言うとかっこよさげですが、実際のところは泥臭いだけの現実の話です。まだ言葉足らずな面もありますが、私自身の今後の活動内容にもかかわってくるので是非とも突っ込みを入れていただきたいところです。

きっかけ

先日、平鍋さんが アジャイルの「ライトウィング」と「レフトウィング」:An Agile Way:オルタナティブ・ブログ というエントリを書かれました。
平鍋さんがこのエントリを書かれたそもそものきっかけは、

"最近、「アジャイル」といっても中にいろんな要素があるために、「あなたのアジャイルは何のことを言っていますか?」と聞くことからはじめないと、話がかみ合わない"

アジャイルの「ライトウィング」と「レフトウィング」:An Agile Way:オルタナティブ・ブログ

という会話があったとのことですが、エントリ中でアジャイルな開発のゴールに向かうための要素のセットを二つのカテゴリに分けて、以下のような図で説明しています。

平鍋さんが説明されている通り、これらはたどる道筋は2方向あるが両方が満たされないとうまくいかないものです。
この図を見たときに、最近の自分の取り組みやフォーカスの当て方の変化は単なるサイドチェンジであり、向かうゴール自体は変わっていないと思えるようになりました。

私の態度

今は「わかりやすいアジャイル」を志向しないことにしています。同時に「アジャイル」という言葉もなるべく使わないようにもしています。ここでいう「アジャイル」はスクラムやXPなどプラクティスセットと価値に名前をつけたいわゆるプロセスとしてのアジャイルで、「わかりやすいアジャイル」とはフルセットのスクラムやXPを適用している状態を指します*1

私がアジャイルを志向したきっかけというかスタートラインは、そのほとんどがレフトウィングにあるものでした。ふりかえりやイテレーションでチームの学習の機会を増やし、より力を発揮できるようにする。クライアントに対して、イテレーション毎にソフトウェアを提供して目指す価値から離れないようにする。そういうことに対して注力してきました。
Agile Japan 2011岡山サテライトを開催した時のコンテンツ構成にもそれが反映されていて、岡山独自コンテンツのテーマは「チームビルディング」と「Fearless Changeをより深く掘り下げる*2」でした。

ところが、最近の私の活動は、TDDBCの開催やTDDやCIの導入の検討、DDDやDSLへの強い興味などエンジニアリングに寄っています。レフトウィングに対する動機を失ったわけではないのですが、ライトウィングへの動機の方がより強いために優先順位が変わってしまっているのです。
なぜこのようになったか、という背景について少し説明します。

一見すると矛盾する「守破離」と「コンテキスト依存」

私がサイドチェンジをした背景の一つに習熟の過程と現実のプロジェクトで選択してしまうチェリーピッキングやプラクティスの改変についての課題があります。
本来は相互に矛盾した話にはならないと思いますし、私よりも前を行っている方々にとって既に過ぎ去ってしまった議論だと思いますので、これは私の個別の問題としてとらえてください。

習熟過程としての守破離

守破離」とは物事を習熟していく過程です。詳しくは 守破離 をご覧いただきたいのですが、それぞれの字が習熟の過程そのものを表しています。

  • 「守」とは、教わったことを忠実に守り身につけていく過程
  • 「破」とは、教わった形だけでなく他の流儀も取り入れて自らの形を作り上げていく過程
  • 「離」とは、守や破からも離れて独自のものに発展させていく過程

習熟過程としては非常に納得感があります。和田さんが推奨している「写経」もこの守破離の過程を踏襲していると思います。
「守」の過程で得られるの感覚は個人が習熟の過程を踏んで成長していくためのよりどころになるため、この時期にどれだけのものを身につけて積み上げていくかは非常に重要です。そして、私自身の過程としてはまだ「守」の段階にあると認識しています。

現実のプロジェクトでの選択

その一方で、アジャイルについてのセッションや議論などで頻繁に出てくる言葉に「コンテキストに依存します」というものがあります。
これは、言われたことを巻物にせず自分の頭で考えて何に取り組むべきか決めなさいという意味だと理解していますが、同時に、今日初めて道着を着た初心者がいきなりブルース・リーに「Don't think, feel.」と言われているのと同じようなインパクトを感じます。アジャイルの議論自体は10年を超えていますし、特定のプロセスに従うことがアジャイルではなくプロセスを成長させていくことだという意見には賛成するのですが、よりどころとしての「守」はどこにあるの?と感じてしまうのです。

結果として「守」の過程を十分に経ないまま、自分たちの状況*3に合わせようとしてチェリーピッキングやプラクティスの改変に走ってしまうということを何度か経験しました。スクラムもどきとかそういうものが、現場で何度も立ち上がってきた訳です。そのたびに何かしらの失敗を積み重ねてきています。
レフトウィングの問題はチーム全体や組織のマインドにかかわるため課題領域が大きくなりがちで、いきなり守破離の「破」や「離」の過程に行ってしまうとよりどころがなくなってしまい自分たちが進むべき道は何なのか見失ってしまいがちでした。

私の師匠である前川(てつ。 @tetsu_m )さんは、スクラムを組織改善のためのフレームワークだと定義し人間の行動・振る舞いを規制・規定するアーキテクチャとしての特性をも持っていると書いています。そして、以下のようにも書いています。

これによって何が生まれるかというと、(ここは長くなるので話を端折りますが)フレームワークアーキテクチャに則った行動を習慣づけられることによる「意識」の変化です。

http://pub.ne.jp/Under_the_Bridge/?entry_id=3694529

この「意識の変化」は「守」で形を身につけていく過程ではないかと思っています。そして、多少感覚的な話になりますが、大きな組織では、組織やマインドの領域は「守」の期間を非常に長く見ておかなければならないと感じています。組織自体が変わる必要性を感じていない場合は特にそうでしょう。
そういう状況下で自身の行動を振り返ってみると、一人の取り組みではなかなか結果が出ない状況で焦って先に進めようとした失敗を繰り返している傾向がありました。そのうち、あんまり良くない精神状態というか考え方をするようになっていました。


「いつまで経ってもあいつら変わんね〜な」


自分の言動にそれだけの説得力がなかったことは、宇宙の彼方に投げ捨てております。昨年末あたりからしばらくこの状態が続き、さすがにこのままでは自分自身の成長すら止まってしまうことに気づいたため、まずは何も宣言せずにTDDを取り込むことから始めました。それが今年度に入ってからの話です。
私のサイドチェンジは、このような失敗を積み重ねてきた過程で、比較的自分の手が届く範囲から(具体的にはTDDなど一人でも始められるものから)ちゃんと守破離の過程を踏んで習熟していこうと思った結果発生したものです。

「コンテキスト」という言葉の力

個人的には非常に強い力を持った言葉だと思います。「文脈」。。。いろんな文脈があるんです。
今自分がいる組織の文脈、自分の今までの人生の文脈、仕事そのものの文脈、それぞれが状況に働きかけてくる中で「コンテキストに依存します」という言葉はちょっと刺激の強い言葉ではないかなあ、と最近思うようになりました。自分でも使いがちなので、ひと呼吸おいて本当にそれで良いのかどうか考えてから使いたいと思います。

具体的な取り組み方の変化

というわけで、今の具体的な取り組みは、

  • TDDを仕事で使い込んでいく
  • CI導入できるように準備する*4
  • DDDとDSLに集中して学習する

という三本立てです。自分がアジャイルに志向するきっかけとなったレフトウィングには敬意というか意識はちゃんと持ちつつ、今はライトウィングに集中することにしました。つまり、


個人としてライトウィング(とその周辺技術)を習熟 => 守破離の後半まで => チームへ伝達


という流れでチームへの伝達の際にレフトウィングに改めて取り組もうと思っています。その際にライトウィングで培ったものはゴールを見据えるためのよりどころになるはずです。
目的はサイドを突破するだとかボールを支配することではなくゴールを奪うことなので、このサイドチェンジは戦術的にもありかな、とは思ってます(というかそう思わないとサイドチェンジなんかできない)。

アジャイルに惹かれた本当の理由

一方で、アジャイルが私にもたらした最も大きなものへの憧れもあります。Agile Japan 2012開催に先立って、倉貫さんが以下のようなエントリを書かれています。

アジャイルはソフトウェア開発の現場で産まれました。プログラマたちから始まったムーブメントが、マネジメントの場面、顧客との関係、そして会社の組織変革へと広がって来ました。それに伴い語られる問題が、大規模なプロジェクトでどうすれば良いか、組織の経営者や顧客にどう伝えるのか、固い会社の中でアジャイルをするには、といった話題ばかりになってきたように思います。そういうの正直ワクワクしないんです。
そんな制約や体制の中でどうすれば良いかなんて考えるのではなくて、そんな前提をぶっ壊すようなアイデアやアクションをとるのがアジャイルだったと思いたいのです。モノ作りの原点に帰って、もっとしびれるようなソフトウェア開発がしたいのです。

アジャイルはロックだったんじゃなかったか〜アジャイルジャパン2012東京サテライトを開催します | Social Change!

アジャイルの本質が人や組織にあることに異論はないが、10年前にアジャイルが登場して感じたことは、もっと破壊的で混沌としつつも、それでいて本当に役に立つソフトウェアを創りだすことが出来る期待感だったはずだ。ソフトウェア開発は、実際に作ってみなければわからないことばかりだし、だからこそプログラミングを中心に据えるやり方が良いとモノ作りの現場から始まったのだ。
本来のアジャイルは既成概念や体制を批判し、新たなムーブメントを作ろうとするロックだったんじゃなかったか。だからこそ惹かれたんじゃなかっただろうか。

アジャイルはロックだったんじゃなかったか〜アジャイルジャパン2012東京サテライトを開催します | Social Change!

Agile Japan 2010に参加して、あり得ないくらいの高いテンションで帰り道にTHE BACK HORNの「覚醒」を聴きながら強く感じたものの正体はまさにこれでした。せっかく仕事をしているのであれば、わくわくしたい。その方向や基本的な姿勢をアジャイルの議論の中に見出したのも事実です。今の取り組みがどう転ぶかはわかりませんが、上記のようなわくわくする仕事をやれるようにはしていきたいと思っています。

まとめ

  • しばらくはサイドチェンジしてエンジニアリングプラクティスに集中します。
  • それは私個人のスキルアップのためのロードマップに依存します。
  • TDDBCとあーだCoderはそのための足がかりです。
  • 新たな展開があればまたサイドチェンジします。

あーだCoderについて

先日、あーだCoderという勉強会の立ち上げに参加しました。立ち上げには、いろふさんや京都アジャイルの前川さんなども参加されている設計とコードのための勉強会です。遠隔地からの参加も含めて、なかなか面白い試みができるのではないかと思っています。
エレベータピッチを作っていますのでご紹介します。

[独学の不安を実践で解消]したい
[プログラマ]向けの、
[あーだCoder]というプロダクトは、
[勉強会]です。
これは[独学ではできないような設計・実装上のチャレンジ]ができ、
[職場での実践]とは違って、
[参加者からの活発なフィードバック]が備わっている。
or [実践に近いところでの遠慮の無い失敗(とそれへのフィードバック)]が備わっている。

*1:議論の余地があることは承知していますが、このエントリで私が使う言葉の意味を定義したものです。

*2:基調講演の内容を受けてのものです。

*3:会社の決まり事として強制されるものも含めた状況です。

*4:ただし、これは実験ができる小さなプロジェクトに出会うまではプライベートでの活動になります。