東洋思想的にアジャイル開発する
こんばんは🌙
「アジャイル」っていう言葉をご存知でしょうか?
英語で書くと「Agile」で、直訳すると「俊敏な」とか「敏捷な」みたいな意味になります。
ドラクエやファイナルファンタジーのようなテレビゲームで、キャラクターのステータスに「AGI」っていうのがあったりするんですが、あのAGIです。「すばやさ」とか「敏捷性」ですね。
「アジャイル」はソフトウェア開発の文脈で使われることが多いです。
「アジャイル開発」とか「アジャイルソフトウェア開発」と呼ばれます。
ソフトウェアやITシステムの開発って、昔(2000年以前)は数年単位の多大な時間と労力を掛けて作っていたんですね。
でもITの世界って移り変わりが早くて、3年前に買ったパソコンが「古い!」とか言われるし、苦労して習得した最新の技術が半年も経てば「それ、新しいバージョンを使った方がラクだよ」とか言われてしまうように、年々変化のスピードが激しくなっています。また、ビジネスの世界も変化が激しくなっています。
数年かけてソフトウェアやシステムを作ったところで、いざ売ろうとしても「そんな古いのは要らないよ」っていう時代になっちゃったので、だったら最初は小さくてもいいからとにかくリリースして、市場の声を取り入れながら少しずつ改善していく開発がいいんじゃない?っていうことを「ソフトウェア開発界のレジェンドたち」が宣言したんですね。
これを「アジャイルソフトウェア開発宣言」といって2001年のことです。
ちなみに、この宣言をしたレジェンド的な人たちはみな外国(欧米)の方です。東洋人はいません。やっぱソフトウェアの本場・本流は欧米なんだなっていうのが分かります。(まぁ"欧米"っていう括りも主語が大きく雑ですが・・・汗)
ちなみにアジャイルソフトウェア開発宣言の日本語訳はこちらにあります👇
私もソフトウェア開発者の端くれですが、この「アジャイルソフトウェア開発宣言」はいま読み返しても「そうだよなー🤔」と思う示唆が多々あります。2001年に発表されたので20年以上昔のものですが、いまだに色褪せません。それほどこのアジャイルソフトウェア開発宣言は本質を突いており、普遍性を持っているということでもあります。
ただ、この「アジャイルソフトウェア開発宣言」はあくまでスローガンというか指針でしかありません。思想、マインドといってもよいレベルで、実際のソフトウェア開発の現場には当然このままでは実用に耐えません。
どうするかというと、この思想をもとに色んな実践(プラクティス)が提唱されています。例えば「スクラム」とか「テスト駆動開発」とか「XP」といったものがあります。マインドを基本に各プラクティスを自分たちの組織やプロセスに合うように取り入れていくのが「アジャイル開発」です。
私はこの「アジャイル」の思想を自分たちの開発に少しずつ取り入れていこうとしているのですが、1つだけ私にとって重要な点があります。
それは「アジャイルソフトウェア開発宣言」の最後にも書かれている
です。
「アジャイル開発」について解説されている書籍や記事の中には「変化への対応」について次のように書かれていることがあります。
これって、外界の「変化」を「脅威」と捉え、その「脅威」をいかに乗り越えていくか、言い換えれば「いかに変化を克服するか」という文脈でアジャイル開発の必要性を謳っています。
たとえば、暴れ狂う馬を制御して乗りこなそうとするカウボーイのように
あるいは、目まぐるしく変化する天候を読みながら頂上を目指す登山家のように
あるいは、荒れ狂う外海の中を進む航海者のように
「変化」なんて起きないに越したことはないが、「変化」が避けられない時代に突入してしまったのだから仕方ない。だったらその「変化」をどうやったら最も効果的に克服できるか考えようじゃないか。このアプローチ自体はごく自然だと思います。
自然なのですが、私たち東洋人がアジャイルソフトウェア開発をやるなら、せっかくなのでここに東洋人らしさを活かしたプラスアルファのアレンジを加えておきたいところです。
その東洋流アレンジのポイントは「牛」🐄です。
古代中国に「老子」という人物がいます。老子は「論語」でおなじみの「孔子」と同じ時代に生きた実在の人物です。時代区分は春秋時代なので「キングダム」の舞台より500年くらい前の人でしょうか。
この「老子」さん、広大な中国大陸を移動するとき好んで「牛」に乗っていたそうです。こんな感じで👇
って思いますよね。そこは馬ちゃうんかと。
ちなみにこの時代、乗馬はもちろんあります。何なら車(戦車)も当然あります。
牛は明らかに遅いです。歩くよりは多少マシでしょうけどモビリティの観点から言えば明らかに不向きです。
それなのになぜ老子は「牛」に好んで乗ったのでしょうか?
それは「変化を楽しむため」でした。
牛の背に乗りながら、移ろいゆく景色の変化を楽しむことが重要だと老子は説いてます。これが馬や車に乗ると景色があっという間に過ぎてしまいます。(まぁ、現代の自動車や新幹線の速度を知ってる我々からすれば何言ってんだって感じかもしれませんが…w)
老荘思想の教えは、世の中の変化を前提にしつつも、その変化を楽しもうとするところにあります。「A地点からB地点に移動できた」という「結果」よりも「A地点からB地点に至るまでの景色を楽しむ」という「過程」に重きが置かれているわけです。中国や日本の庭園が「回遊式」になっているのはこの思想が背景にあります。過程を重視する茶道などの伝統文化にも継承されていきます。
ということで、アジャイルソフトウェア開発に東洋流のアレンジを加えるとしたら「変化に対応する」のところを「変化を楽しむ」にするのはどうでしょうか!という提案です。
おしまい。