Design It! プログラマのためのアーキテクティング入門

Design It! 読みましたか?(よい本ですよ!) Design It! ―プログラマーのためのアーキテクティング入門 ”設計スキルを成長させたいプログラマーに向けたアーキテクティングの入門書です。ソフトウェアアーキテクチャの基礎とデザイン思考の考え方から始まり、ソフトウェアアーキテクトとして、チームと共に優れたソフトウェアを作り上げていく方法を包括的に解説します。本書を読むことで、適切なステークホルダーを特定してニーズを理解する方法、アーキテクチャ上重要な要求に基づいて技術やアーキテクチャを適切に選択する方法、アーキテクチャを軽量かつ効果的に評価する方法、チームのアーキテクト力を高める方法などを学べます。モダンなアーキテクチャ設計のための実践的な手法が詰まった本書は、より良いプログラマー、技術リーダー、そしてソフトウェアアーキテクトになるために必携の一冊です。” ソフトウェア開発のアジャイル化が進み、ソフトウェアは生き物としてますます頻繁な変更にさらされるようになった。 アジャイルとアーキテクチャの民主化 アジャイル開発のアーキテクチャに対する基本スタンスは、最初に先読みをしすぎた設計(BDUF = Big Design Up Front)をしないということだ。設計に大きな先行投資をせず、動くソフトウェアを維持しながら進化させていく。アーキテクチャはこの繰り返しによって立ち現れてくるもの、実験と実装とユーザフィードバックの結果として「収穫」されるものである。中心となるユーザ価値から作りはじめ、イテレーションを繰り返しながら全体設計が現れてくる、というのだ。これは、これまでの大きな先行設計がかえってシステムを複雑にし、結局作らなくても良い汎用構造や複雑なメカニズムを作ってしまうというリスクを下げている。さらに、アーキテクトと呼ばれる神様が実装をせずに机上で架空のかっこよい構造を作り出してしまうことも避ける。アーキテクトとプログラマという構造ではなく、アーキテクチャを民主化した。ソフトウェアの機能は実装して動くとを確認しつつ、追加や変更を受け入れながら、リファクタリングによって内部の重複部分を取り除いていき、コードベースの成長にしたがって必要だった抽象構造が現れてくる、、、はずだ。 しかし、本当にそうだろうか?アジャイルとアーキテクチャ論は何度も議論になることがあった。特にリファクタリングの繰り返しによってのみ、アーキテクチャは本当に現れるのだろうか。それは現在意図している機能だけから作られるものだろうか。リアクタリングで扱い切れないような大きな変更はどう扱うのだろう。アーキテクチャは現在作ろうとしているソフトウェアの機能や非機能だけでなく、過去の経験や知見からもヒントが得られるのではないか。アーキテクチャは選択する、ものでもあるはずだ。BDUF は良くないとしても、NDUF(No Design Up Front)はあまりにもリスクが高い。私たちには、ENUF(Enough Design Upfront)をを作る活動、そしてそれを共有、維持、変更する活動が必要だ。 アーキテクチャとソフトウェア工学、パターン 本書は、この議論について現実的な視点で、アーキテクチャを作り出すための指針について書かれている。参考文献のリストやSEI/IEEEが定義するアーキテクチャへの言及を見れば、筆者が過去のソフトウェアエンジニアリングの要所を押さえていること、かつ、アジャイル方法論の発展の経緯や歴史についても造詣が深いことがうかがわれる。 本書の中で私が特に気に入っているのは、過去に特定され、名前が付けられているアーキテクチャーパターンが紹介されていること(7章)だ。アーキテクチャパターンを知っておくことは、最初の入り口を選ぶ時に大きな道しるべとなる。これらに縛られることは危険だが、発想の種を多く持つことはアーキテクトとして重要だ。そしてもう一つ、具体的になアクティビティが目的とともに紹介されていること(パート3全体)。このパートだけでも本書の価値がある。人の活動としてアーキテクチャづくりにアプローチしており、アーキテクトの道具箱として活動が具体的に紹介されている。アーキテクチャづくりはHow-Toとして書けるものではない。ステークホルダーとの必要なアクティビティを通して形作られていく。あるいは、それらのアクティビティそのものが創発的な合意形成であり、アーキテクチャだとも言えるだろう。 アーキテクチャとビジネス文脈 大切なことは、最良のアーキテクチャは、その文脈によって変わるということだ。文脈なしにアーキテクチャは成立しない。このことを強く思い出させる印象的なエピソードを1つ紹介しよう。Twitter は最初 Ruby on Rails で開発されたが、2009年ころからJVM(Java VM)ベースのアーキテクチャに移行し、レスポンスとスケーラビリティを改善した(O’Reilly OSCON Java 2011: Raffi Krikorian, “Twitter: From Ruby on Rails to the JVM”)。これは、大きくアーキテクチャを変更した商用アプリケーションの例だ。これは、最初のRuby On Railsの選択が間違っていたということではない。スタートアップでは、ビジネスとしてプロダクトが軌道に乗らない限り、資金は集まらない。twitter が最初からJVMを採用したとしたら、現在の成功はなかっただろう。スタートアップの段階では、Ruby on Rails の選択が素早いアプリケーションの構築とユーザーフィードバックに必要だったのだ。 アーキテクチャとコミュニティ(人) さらに、このアーキテクチャ変更に影響を及ぼしたのは、スケーラビリティなどの非機能要件だけではない。JVM 移行理由には、「より幅広いコミュニティからエンジニアを集められる」という「人」や「チーム」の観点も含まれていた。現在JVM上で動く言語が多くなっているため、様々な現代的言語が使えるようになり、このテクノロジをベースに使うことでコミュニティに発信し、それらが得意なより多くのエンジニアを参加できるようにするという狙いもあったのだ。アーキテクチャの設計もしくは選択には、こういった多様な視点の「文脈」が影響を及ぼす。スタートアップとして開発するのか、最初から多くのユーザーベースを扱うことが分かっているのか、では話が全く違ってくるし、実際に開発するエンジニアにはどのようなコミュニティに属するのか、にも影響される例だ。 […]

Read more "Design It! プログラマのためのアーキテクティング入門"

Scrum Interaction 2019 keynote by Jeff Sutherland

Scrum Inc. Japan主催のはじめてのカンファレンス、Scrum Interaction 2019が11/8東京で開催されました。当日はぼくが総合司会を勤め、300人のスクラム実践者が参加され、スクラムの父、Jeff Sutherland とスクラムの祖父、野中郁次郎先生が一つの場に会する場は熱気でいっぱいでした。 このブログでは3回に渡って内容をご紹介したいと思います。第1回目は Jeff Sutherland の基調講演です。 Jeff Sutherland の基調講演 産業のディスラプション DXによって産業がソフトウェアによってディスラプトされている現状の例。Amazonの縦産業相次ぐ参入は、ホントすごいですね。 金融: Amazon がドイツで金融に参入。3,300のスクラムチーム 運輸: Amazon が中国船をリース購入、航空機も購入して参入。NYでUberがFedExを凌駕 電力(Utility): 風力・太陽光が安価になり、家庭自家発電が広まる(彼自身の家では、自分の作った電力を近所に売買、教会に寄付。それも携帯のアプリで!) Agile BS(だめだめアジャイル) ところが、米国でもだめだめアジャイル(Agile BS = Agile Bullshit)がはびこっているらしい。例えば米国防省(DoD)では「ほとんどのプロジェクトがアジャイル開発をしていると宣言しているが、本当はそうなっていない!(Fake Agileだ)」という議論(ここに発見。redditで炎上してたらしい)があり、「Agile BSチェックリスト」が作られた。 ここまでの議論では、 DXがおこり、成功企業の多くの企業がスクラムを採用している。 米国ではアジャイルがソフトウェア開発はデフォルト(政府調達でも)。 ただし、名前だけのアジャイルにやっているとろこは失敗している。 さまざまな企業がスクラムを「組織改革手法として」導入しはじめている。 アジャイルをやるにしても、こんな形でやっていないか? さあ、失敗しないために組織的にアジャイルを取り入れないといけない。 そこで、Scrum@Scaleですよ。 Scrum@ScaleはScrum同様、薄いフレームワーク。スクラムを階層的に組むのだが、「スクラムマスターの階層」と「プロダクトオーナーの階層」の両方があり、組織がフラクタルに形成されるのが特徴でしょう。フラクタルであるということが、生命的ですね。さらに、これが組織に「実装」されたときの具体形はそれぞれに違うという点も面白い。創発的、自己組織化的というか、生身の人間のチームがその場で考えて成長・進化していく過程が構造に現れています。   だから、変化に強く、仮にこの構造を任意の場所で2つに切ったとしても生きられる構造を作ることができる、そう生命組織ににているんです。自立分散が集まって、一つの目的を満たそうとしている形なんです。

Read more "Scrum Interaction 2019 keynote by Jeff Sutherland"

Scrum Interaction 2019-3 Thank you

Scrum Interaction 2019その3です。 ワークショップ 各セッションの後にテーブルごとのディスカッションの時間をとり、聞いた内容を議論します。それぞれの議論を模造紙に付箋で残していき、最後の時間で、出た疑問を Scrum@Scaleを模倣するように、EAT=Executive Action Team(講師チーム)に集めて答えます。 Scrum Inc. Japan 社長の荒本さんが全体をファシリテートしました。 MSDのFraserさんへの質問の中に、「HowとWhat」そして「Why」についての議論がありました。Simon Sinek の Golden Cycle も連想させる質問だったかと思います。Whyについては全くその通りで、もっとも大切なもの。そして野中流では、Common Good がWhyが繋がることが重要。What/HowについてFraserが言いたかったことは実はぼくも野中先生と二人で書いた本に書いています。 what/how の話。Scrumは開点(1.sprint review, 2.retro.)を持った知識創造マシン。What知識はプロダクトとして(1)、How知識はチームのやり方(2)として蓄積される(by 野中+平鍋)。 — Kenji Hiranabe (@hiranabe) November 9, 2019 全体を通して感じたこと 今回は、ソフトウェア開発としてのアジャイルの話はほとんど出てきませんでした。組織変革の文脈(Jeff)、および、経営・組織論、哲学(野中先生)を基調として、事例も大企業での変革事例を中心に選びました。特に以下を2つの立場から感じました。 米国では経営レベルでのAgile組織変革が進んでいること、Scrum@Scaleの事例がでていること。それが日本でも起きようとしている。「アジャイルスクラム」側から見ると、ソフトウェアの話、チームの話からずいぶんと大人の領域に影響力が出てきた。 一方で、「野中スクラム」側から見ると、最初組織論だったものが、ソフトウェア開発の領域で再注目されていたのがアジャイル。今回は、それが一周してもともと先生の中心課題であった経営領域に進展し(あるいは経営がアジャイルを発見し)、さらに大きなムーブメントを形成していると見える。その中で人と人との「共感」が、経営論、チーム論、イノベーション論、ソフトウェアを貫いて、再度声高く謳われている。そのことは、野中理論がアジャイルを通過することによって、現代のイノベーション経営に見えてきたと言える。 ふりかえって自分ごととして考えると、この組織改革レベルは、経営のコミットメントがなければ進まない。経営を口説いていこう。 みなさん、ご参加ありがとうございました。今回のカンファレンスで、共感のエネルギーと、多くの事例を提供できていたら嬉しい限りです。ぜひ、自分たちの組織でどう実現できるか、考えていきましょう。。。。。難しいですが、やりがいあるじゃないですか!早く日本の事例を作りたい。その事例で来年また、Scrum Interaction 開催できることを願って。 レファレンス 他の方もたくさん、よいまとめを書いてくれています。ここに、ご紹介します。 野中先生の基調講演マインドマップ by Akapon (@Akapon2010) Scrum Interaction 2019で、なま野中先生とジェフ博士に会ってきた話(by YasudaTadahiro) https://www.creationline.com/lab/agile/30757 エンパシー(共感)ってなんなんだろう?(by kobase16 (id:kobase16)) http://kobase16.hatenablog.com/entry/2019/11/09/011305 エンパシーについて (by […]

Read more "Scrum Interaction 2019-3 Thank you"

AgileJapan2019-PFU-satellite

石川県宇野気(金沢近く)のPFU本社にて、AgileJapan 2019 のサテライトに参加してきました。 午後、ビデオ放映にはじまり、14:00から平鍋が講演をさせてもらいました。参加者は30名程度、横浜の支社とオンラインで繋いで、同時放映です。 ぼくは、アジャイルジャパン本家でやった Scrum の事例のお話をさせていただきました。参加者はテーブルごとにディスカッション、現場の課題共有、講演への質問などを討議、最後に私が各テーブルの質問に答えさせていただきました。 今回はほぼ現場エンジニア参加者です。草の根の会という意味合いが大きかったと思います。実は、2005年に一度 PFU にてアジャイルの講演をしたことがありますが、その時とは世代も変わっているようで、若い方の参加者多数。 横浜の舞台では、すでにScrumの採用も進んでいて経験者もいる、ということが(この場で)わかるなど、会社内部での情報共有と仲間づくりの意味も大きかったと思います。   会場からの質問には、ぼくの経験からできるだけの答えをしました。でも、ほとんどの質問への回答はみなさんの中にあります。いくら「正しいスクラム」の話を聞いても、そこには「あなたの現場の課題解決」の答えはないのです、、、ということが言いたかった。 一番印象的だった質問は、 仕事が楽しくなりますか? これに Yes と答えられなかったら、アジャイルなんて意味ないよ。誇りを持てるいい仕事をすること、そしてそれを楽しむこと。。。だよね? 全体を企画して頂いた柳澤さん、司会の中家さん、オープニングの和田さん、ワークショップのファシリテーション担当の敞田さん、横浜側をまとめて頂いた石原さん、会場づくり、社内調整、ありがとうございました。懇親会に参加されたみなさん、どうもありがとう!

Read more "AgileJapan2019-PFU-satellite"

Thank you Agile Japan 2019

今年も「アジャイルジャパン2019」に参加しました。ぼくとしては 2009年に開始したこのプロジェクトが、2019年にこんな形で拡大することはとても嬉しい! 今年のトピックス 900名弱の参加。うち、初参加が 70%。「スーツ」と「Tシャツ」が混在。 基調講演でGROOVE X 株式会社 の林社長から、アジャイルを超えてイノベーションを作る新しい組織や考え方をわかりみのある言葉でお話しいただいた。 グラレコ隊が参加!主要なセッションを豊かなグラフィックでレコーディングしていただいたことで、会のクオリティと拡散力がアップ。 新しい実行委員の参加で、会のあり方の議論が活発化、新企画とともに全体のムードがとてもよくなった。 ぼくの発表 ぼくは今回、Scrum Inc. Japan から発表しました。日本と海外の多くの事例を見ていただくことによって、みなさんの取り組みを後押ししたい、という思いです。 TRI-ADさんの事例や、auでんきさんのなどの事例を入れて、日本でもどんどん変革が起きていることを伝えたかった。また、海外では SaaB(戦闘機をスクラムで!) や Spotify の事例を紹介。複数のスクラムチームをまとめていくScrum@Scale や、さらに進んで、ハードウェアスクラムや組織全体を巻き込んだスクラム改革が起きていることも紹介しています。 とは言っても、日本のSIの現場にはまだまだ悩んでいる人がたくさんいる。という状況も分かっているつもりです。産業構造の特殊性、組織の硬直化、年次の予算や評価との関係などがアジャイルの阻害要因です。これらを超えて、ビジネスを変える技術とパッションを持ったエンジニアが直接ビジネスに貢献できる場を広げたい、という思いで、ベンダーとユーザの「共創・共育」という形が取れないか、ということを福井の Agile Studio Fukuiで考えています(アジャイル現場の見学受け付けています→こちら)。 esm福井からの発表 永和システムマネジメントからは、岡島さん、藤田さん、そして、NTTPC の井街さん、とで、ウォーターフォールからアジャイルへチーム改革の事例を発表しました。 お客様との協力のもと、受託開発の契約(一括請負)の中で徐々にアジャイルプラクティスを導入。最後にはお客様も巻き込んでガントチャートからバーンダウンチャートへと移行し、自己組織化チームを作った事例です。 ネットワーキングとアジャイル相談会 ネットワーキングパーティでは、彩奈さん(ボーカル)、テツさん(パーカッション)、平鍋(ギター)でアジャイルソングを披露させてもらいました(楽しかったです)。乾杯! そして、アジャイル相談会を。本当にいろんな悩みが聞けましたが、集まった人に意見を求めながら進めました。(※ 8/1 追記:コサカジュンキさんにグラレコ写真送っていただきました。) ぼくたちの秘密基地 実行委員コサカさんによる新企画!いろんなアジャイルラボのファシリティー、カンバンなどのビジュアル自慢大会です。こちらからぜひ! ぼくたちの秘密基地:https://note.mu/agilejapan/m/m5f9d025116ae 会社の全部門であじゃいる化(駅すぱあと) 開発チームにカンバンを導入した理由とその変遷(株式会社Timers) 居るのも見るのも楽しい部屋 ~ Agile Studio Fukui へようこそ アジャイルな開発・コミュニケーションを促進する新オフィスを作りました – Lean Agile Base(NTTコミュニケーションズ) …. 謎のハト ありがとうございました! ぼくは、「アジャイル=正しい」なんて思っていません。それは時代やそれぞれの環境で違うと思うのです。それより、「少しでもソフトウェアを、そしてチームを、現場をよくしていこう」という思いと活動が大事。 […]

Read more "Thank you Agile Japan 2019"

ついに、Scrum Inc Japan 設立! 社会変化をプログラマの力で。

ついに、念願の Scrum Inc, Japan が設立しました。永和システムマネジメントからのニュースリリースはこちらです。 永和システムマネジメント、KDDIと共同でイノベーション組織に変革するアジャイル教育プログラムの提供を開始 ~不確実なビジネス開発を成功に導くスクラムの普及を目指す~ 一昨年から、KDDI さん 米国 Scruminc社と組んでスクラムの日本での研修およびコーチングを提供し始めました。日本でも、イノベーションを企画する大企業からセミナー参加者が増え、コーチングにも声がかかるようになり、ビジネス側もアジャイルに注目する状況になってきました。 私の思いは、Scrum の Co-creator である Jeff Sutherland の会社と、永和でこれまで培ってきた現場のアジャイル導入実績、さらにKDDIさんがチャレンジしてきな内部変革の実績が合わさる形をビジネスとして作りたかったことです。 2009年にアジャイルジャパンを立ち上げ、エンジニア中心のアジャイルから一歩踏み出して、ジビネスを企画する方々も巻き込んで日本のアジャイルコミュニティを育てて行きました、2011年にイノベーションスプリントを川口さん前田さんと企画、野中郁次郎先生と Jeff を引き合わすことができました。 Scrum Gathering Tokyoの近年の盛り上がり、今年は大阪でも Scrum Fest Osaka2019 が大きく開催されました。現場でのスクラム熱がコミュニティベースで成長しています。 今年夏、アジャイルジャパン 2019 も 7/18 に開催が決まっています。これまでの SIに携わっていたエンジニアも、アジャイルに関心を持つようになり、ビジネス側も大きな期待を寄せるようになってきました。 私自身、SIビジネス出身です。納期に追われる大きな開発で苦しみ、顧客との交渉に腐心してきました。これが、顧客との共創、の形へ転化し、ビジネスとプログラマが直につながる開発のやり方に変化していくことを望んでいます。 日本の企業でのアジャイルを考えると、シリコンバレー的な資本とアントレプレナーによる「突発的な」イノベーションでなく、企業の中でどのように「持続的な」イノベーションをどう作っていくのか、がキーになると思っています。その辺りを野中郁次郎先生にエンドースメントを書いていただきました。 「Scrum Inc. Japanが提供するスクラムの理論と実践は、ビジネスの成長と人々の働きがいを両立させるものです。今後、日本企業が持続的イノベーションを生み出し、グローバル市場と社会変化を共創していく鍵となるでしょう。」 一橋大学名誉教授 野中郁次郎 先生は、日本の「働き方改革」という言葉には抵抗を持たれていたようです。「仕事に目的、社会的意味、そこに個人の思いとやりがいがなければならない」と。プロジェクトや企業の利益といった小さな目標ではなく、社会をどう変えたいか、そこに自分自身がどう参加していくのか。社会と個人の全人的な生きる意味が繋がる形で、それを経営、ビジネスとして作っていく必要があるのだと。   私自身、これから、新会社社長の荒本さんと共に、頑張っていきたいと思います。また、Sun Microsystems 時代からの友人として、今回のビジネスをKDDIで推進して頂いた、藤井さんにも大変感謝しています。エンジニアのやりがい、に最後までこだわってこれたのも藤井さんのおかげです。 永和システムマネジメントでも、福井の優秀なエンジニアの能力を、ビジネスの力に変えていける環境を作りたくて、アジャイルスタジオ福井を立ち上げたところです。Scrum Inc, Japanとも協力しながら地方エンジニアの時代へと狼煙(のろし)を福井からも上げたいと思います。 さあみんな、もう一踏ん張りしていこう!  

Read more "ついに、Scrum Inc Japan 設立! 社会変化をプログラマの力で。"