プロジェクトマネジメント

2025/12/31

Redmine AI HelperプラグインはRedmineをAI駆動プロジェクト管理に変える可能性を秘めている #Redmine

Redmine AI Helperプラグインの講演資料を読んで改めてアーキテクチャ構造がよく考えられているなと思った。
Redmine AI Helperプラグインを知っている前提で、理解したことをラフなメモ書き。

【参考】
Redmine AI Helperとそのしくみ

第29回redmine.tokyo勉強会

2025年の年始に読み直したいAIエージェントの設計原則とか実装パターン集

Building Multi-Agent Systems with LangGraph and Ollama: Architectures, Concepts, and Code | by Diwakar Kumar | Medium

【1】Redmine AI Helperプラグインのマルチエージェントモデルは優れていると思った。

Redmine AI Helperプラグインのマルチエージェントモデルでは、Issueエージェント、Wikiエージェント、Userエージェントなどの機能に特化したエージェント群と、GitHubエージェント、Slackエージェント、メールエージェントのようなMCPエージェント群が協調して、互いに会話しながら動作する。

その時に、マルチエージェントモデルのアーキテクチャとして、@haru_iidaさんは、Networkではなく、Supervisorを選んだ。

第29回redmine.tokyo勉強会

2025年の年始に読み直したいAIエージェントの設計原則とか実装パターン集

Building Multi-Agent Systems with LangGraph and Ollama: Architectures, Concepts, and Code | by Diwakar Kumar | Medium

なぜ、Supervisorを選んだのか?
redmine.tokyo勉強会の講演で聞いたときは、NetworkよりもSupervisorの方がエージェント同士のレスポンスがいいと話していた。

理由は色々推測できる。
おそらく、複数のエージェント同士で処理を実行するために会話させたならば、誰かが全体の処理を監視してコントロールしなければ、変な方向に行ってしまう場合が多いのだろう。
エージェント同士のコミュニケーションパスが多くなるほど、統制が効かなくなるはずだ。
つまり、人間集団や組織と同様に、コミュニケーションパスを減らし、1人の管理者がコントロールできる範囲に収めるようにしなければ、本来実施して欲しい処理の品質が悪くなるのだろう。

では、Supervisor型のエージェントモデルでは、どんなコミュニケーション構造を取っているのか?
@haru_iidaさんの設計では、仮想チャットルームを作り、Supervisorが必要なエージェントのみをチャットルームに召喚して処理を実行させている。
仮想チャットルームは、まるで人間のSlackみたいな感じだ。

第29回redmine.tokyo勉強会

つまり、Slack上でエージェント同士が、チケットを更新する処理のために、Supervisorがまずエージェント達にゴールを共有した後、SupervisorがUserエージェントやIssueUpdateエージェントと会話してるイメージ。
エージェントは仮想プログラムに過ぎないのに、人間のように振る舞う点がすごく面白いと思った。

実際の仕組みは想像になるが、Supervisorやエージェント同士が会話するログのテキストファイルがあって、そのログテキストにあるプロンプトからファンクションコールされてエージェントがキックされるのだろうと思う。
つまり、会話ログというテキストファイルが仮想チャットルーム、すなわち、Slackみたいなイメージになるのだろう。

そのSlackにプロンプトが書かれると、処理すべき機能に対応するエージェントがファンクションコールで呼び出されてキックされて、プロンプト通りにエージェントが実行するわけだ。

そんな仕組みを考えると、処理を実行するプロンプトの背景、ゴールを明確に定義する必要があるだろう。
つまり、AIでよく言われるコンテキストが重要になってくるだろう。
なぜならば、背景や前提条件、制約条件というコンテキストが明確でなければ、期待した結果が出てこないからだ。
実際、ChatGPTでも前提条件を細かく書かないと、欲しい結果がなかなか出てこない。

こういうエージェントモデルでは、各エージェントのフォルダにコンテキストを事前設定するプロンプトを配置して、エージェントを制御する仕組みがあるらしいので、おそらく@haru_iidaさんは事前プロンプトにかなりのノウハウを組み込んでいるのではないかと想像する。

【2】Redmine AI Helperプラグインのアーキテクチャ構造も優れていると思った。

内部構造では、ユーザ要求処理、ビジネスロジック、外部サービスの3層構造に綺麗にレイヤ化されている。
具体的には、Webアプリ層、Agent層、MCPサーバやLLMの層の3層構造に綺麗に設計されている。
これはすごく綺麗だ。
アーキテクチャをちゃんと理解できる人しか組めないような綺麗なアーキテクチャだ。

第29回redmine.tokyo勉強会

わざわざ、マルチエージェントモデルを3層構造で分けたメリットは何なのか?
オブジェクト指向設計に慣れている人ならば効果はすぐに理解できるはずだ。

ユーザがMCP Agentや各機能に特化したドメインのAgentへ処理を実行させたい時、その処理は中身は違っても操作としては共通のインターフェイスを持つはずだ。
つまり、ユーザ要求処理とビジネスロジックの間に、Agent抽象化レイヤーを入れて、Agentへ指示する操作をインターフェイスで抽象化すれば、ポリモルフィズムを使って制御すればいい。

同様に、MCP AgentがGitHubやSlackに連携させたい時、MCP抽象化レイヤで操作をインターフェイスで抽象化しておけばいい。
あるいは、IssueAgentがOpenAIやAnthropicのLLMを使いたい時、LLM抽象化レイヤで操作をインターフェイスで抽象化すればいい。
そうすれば、LLMのバージョンが上がって追加したくなる場合、ビジネスロジック層のプログラムを変えることなく、簡単に追加したLLMを利用できるようになる。
つまり、抽象化レイヤがあるおかげで機能追加や機能修正のプログラミングが非常に楽になる。

僕は、この内部構造のアーキテクチャを見て、AIエージェントの仕組みを理解できた。
さらに、最近、AIの機能を入れました~とあらゆるWebサービスやパッケージ製品で広告を見かけるが、おそらくそれらシステムも@haru_iidaさんのようなアーキテクチャ構造に似た構造になっているに違いないと思った。
そうでなければ、大量の人員とお金を投資した案件なので、今後のシステム保守を考えれば元が取れないはずだ。

【3】Redmine AI Helperプラグインの根本テーマに「プロジェクト管理にもAIを」がある点がすごくいい。
AIが当たり前の現代では、ソフトウェア開発であれ、ホワイトカラーの仕事であれ、経営戦略をねったり、プロジェクト管理することも全てAI駆動になる。
AIを使うだけでなく、AIでいかに価値を出すか?

Redmine AI Helperプラグインによって、RedmineをAI駆動プロジェクト管理に変える可能性を秘めている。
従来は、Excelによるプロジェクト管理からの脱却がメインテーマだったが、現代では、AI駆動のプロジェクト管理により、プロジェクトリーダーやプロジェクトマネージャは本来の意思決定に専念できるようになる。
そんな機能が沢山盛り込まれているし、今後の機能追加により、さらに発展するだろう。

Redmine AI Helperプラグインは、そういう機能追加がやりやすいエージェントモデル、アーキテクチャ構造になっているので、今後の開発にすごく期待できる。
今後もウォッチしていきたいと思う。

| | コメント (0)

2025/11/09

第29回東京Redmine勉強会の感想~今話題のテーマはJTC運用とAIによるプロマネ作業支援 #redminet

第29回東京Redmine勉強会に参加してきた。
今話題になっているテーマは、いわゆるJTCの中でRedmineをどのように運用しているのか、とAIによるプロマネ作業支援だった。
とてもホットな内容で興奮が翌朝も残っている。
感想をラフなメモ。

【参考】
第29回勉強会 - redmine.tokyo

2025/11/9 第29回勉強会 - redmine.tokyo #redminet - posfie

Jira ユーザー向け 入門ガイドブック | リックソフト株式会社

Jira と Confluence の活用: シームレスなコラボレーションの実現: Jira と Confluence をプロジェクト管理フレームワークに統合するための効果的な戦略 (プロジェクト管理, IT・テクノロジー) | R. Parvin

【1】いわゆるJTCがRedmineを運用している事例では、東芝や三菱電機の事例が発表された。
典型的な日本の大手SIがRedmineをどのように使っているのか、どんな目的で使おうとしているのか、そして、どんな効果や苦労があったのか、具体的な話が多くて面白かった。

発表 #1683: 第29回 講演: 2万人が利用するソフトウェア開発管理支援サービスのご紹介 - redmine.tokyo

発表 #1674: 第29回 LT: JTCでRedmine利用者2700人を実現した手法 - redmine.tokyo

Redmineは、日本ではよく使われているプロジェクト管理ツールと言っていいだろう。
なぜ、日本企業や日本人開発者はRedmineを好むのか?
その理由は以前たくさん考えてた。

僕が持つ仮説は、現場に直結した困りごとを自分たちが手作りでツールを作り込み、自分たち自身で改善していくというスタイルは日本人がとても好きだから、と思っている。
いわゆる現状に即したプロセス改善は、日本人の得意芸と思っている。
日本の製造業で出てくるQCサークル、QC7つ道具、デミングサイクルは、日本のソフトウェア開発にも根付いていると思う。

そこで、中小SI企業だけでなく、JTCのような大手SIの現場でもRedmineを使いたくなってくる。
では、JTCでRedmineを運用し始めると、どのような問題が出てくるのだろうか?

JTCになれば、案件の数は格段に多くなるので、単一のRedmineで全ての案件を管理し統制させるのは難しくなってくる。
なぜならば、案件の種類はスクラッチ、エンハンスメント、パッケージ製品導入、リプレース、PoCなど多岐にわたるために、1種類の標準プロセスでコントロールするのは正直無理があるからだ。

そこで、東芝のように、研究開発部門や品質保証部門がRedmineやGitlab、Jenkinsなどの開発支援ツールを仮想環境で作り、各案件に社内ホスティングサービスとして仮想環境を提供し、自由に使ってもらうような運用が多くなるだろう。
この運用のメリットは、社内案件で使われるプロジェクト管理ツールや開発支援ツールを社内標準として提供できるため、ある程度統制を効かせられること。
また、ツール類が共通なのでノウハウも蓄積しやすい。
実際、東芝の事例では、社内ユーザ会を年数回定期的に開いて、社内で事例を発表して共有したら、社内関係者にすごく評判が良かった、という説明があった。
つまり、ノウハウ蓄積により、社内の組織活性化、生産性向上にも繋げられる効果があるだろう。

一方、各案件ごとにRedmineインスタンスが乱立するために、Redmineのバージョンが古くなりがちで、最新版への移行が難しくなることだ。
東芝の事例では、200個以上のインスタンスがあり、Redmineの主なバージョンは4.2が多い説明があった。

本来は、AIヘルパープラグインやいいねリアクション機能が使えるバージョン6.1へ移行したいだろうが、大量のRedmineインスタンスをVerUpする一括移行は非常に大変だろう。
東芝の事例では、移行作業のためにスクリプトなどで自動化するなど運用上の工夫をされていたが、それでも各メンバーがそれぞれ各案件のRedmine移行作業を担当し、手作業でカバーしていると説明されていた。
おそらく実際は、Redmineのような年2,3回程度のVerUpに追随するように移行作業を実施することは、大量のインスタンスがあるために実現困難なのだろう。

つまり、社内ホスティングサービスでは、運用当初は良くても、その後のVerUp追随が難しく、次第に統制が効きづらくなるデメリットが増えてくる。
たぶんどこかで、損益分岐点が逆転するタイミングが発生するかもしれない。

他方、島津製作所のRedmine運用事例のように、単一Redmineで統制を効かせて、ナレッジ蓄積に効果を上げている事例もあった。
JTCでRedmineを社内展開するときの運用方法の選択基準、スコープ設定で違いがあると、どのような効果や問題点が発生するのか、考えてみたい。

Xユーザーのakipiiさん: 「JTC事例では、 @akahane92のような単一インスタンスによるナレッジDBで全般統制と、なおまえさんの所のような社内ホスティングによる乱立インスタンスによる標準プロセス適用の諸問題の対比が興味深い。この辺りは一度議論を聞いてみたい  #redminet」 / X

【2】Redmine AI Helper の講演では、AIを使ってRedmine上のプロマネ作業支援できる具体例や、AIヘルパーの内部構造の説明が非常に興味深かった。
興味深い点は2つある。

Redmine AI Helper とそのしくみ 第29回redmine.tokyo勉強会

1つは、チケットの要約機能は、もっと発展させれば、課題一覧から更新分の内容を要約させて、進捗報告書の一つの元ネタに割り当てる事ができること。
この機能を発展させて、健全性レポートという機能がAIヘルパーで提供されていた。
つまり、測定時点のプロジェクトのQCD、いわゆる進捗率の変化、テスト密度やバグ密度、課題件数の推移や優先度の割合、などを進捗報告書として自動生成してくれる。
したがって、経営層向けのプロジェクト進捗報告書作成という管理作業をプロマネはAIに委託できるメリットがある。

他にも、親チケットから子チケットへタスクを自動的にバラしたり、類似チケットを自動検索したり、チケットコメントの自動生成、チケットやWikiで文章を予測して自動補完、誤字脱字チェック機能などがある。
こういうAIヘルパー機能を使えば、顧客相手にチケットでやり取りするときの誤字脱字防止、チケットで即返答、類似バグ調査などにも役立てられるだろう。

Xユーザーのakipiiさん: 「AIヘルパーで健全性レポートを保存できる。さらに差分チェックもできてAIが比較報告してくれる。cronを使えば報告書作成も自動生成できる。プロマネの作業工数削減に繋がる。  #redmineT」 / X

2つ目は、AIヘルパーを実現する内部構造の解説だ。

Redmine に蓄積されたタスク、システム開発のナレッジを元に、AIがチケットの要約だけでなく、ストーリーチケットからタスクチケット分割を自動生成できたり、診断時点のプロジェクトの品質、進捗、テスト、レビュー状況を報告書としてまとめたりできる。プロマネの管理作業をAIが支援できる。

実際の仕組みはAIエージェントをロール毎に作ってプロンプトを渡して実行してるだけ。
具体的には、Redmine の背後に、AIエージェントが複数立ち上がり、リーダー役エージェントが仮想チャットルームを作り、そこにチケット作成エージェントやRedmineの機能に特化したエージェントを呼び込んで自然言語でやり取りして実行する仕組みだった。

Xユーザーのakipiiさん: 「AIヘルパー内部では、リーダーエージェントが仮想チャットルームを作り、チケットエージェントやリポジトリエージェント、ユーザエージェントなど必要なエージェントを仮想チャットルームに召喚して自然言語で会話しながら、要約したり子チケットばらしとかしてる。普通の開発チームみたい  #redmineT」 / X

この話を聞いて、別ニュースで、AIエージェントを集めて仮想スクラムチームを作ってシミュレーションした話と似てるなと思った。
つまり、スクラムマスター、プロダクトオーナー、チームメンバーという仮想AIエージェントを作り、仮想スクラムチームを形成して、プロダクトを出していくシミュレーションができるわけだ。

仮想スクラムチームとAIヘルパーのマルチエージェントモデルの違いは、対等なエージェントでチームを作ると人数が増える毎にコミュニケーションパスが増えて無駄があるので、リーダー役エージェントが一括管理する方が仕組み的に良い点になる。
AIエージェントでチーム形成する時、アジャイル観点と違ってマイクロマネジメントの方が優れているのだろうか?

現代ではソフトウェア開発だけでなく、あらゆるプロジェクトでもマイクロマネジメントではなくサーバントリーダーシップによるチームビルディングが推奨されている。
つまり、コマンダーのようなリーダーではなく、チームメンバー自身がリーダーの役割を持ち、自己組織化していく傾向が良いはずだという流れになっている。
しかし、マルチAIエージェントモデルでは、コマンダーが指示するマイクロマネジメントの方が処理性能が良く優れているという設計になっている。

現代のアジャイル開発の流れと従来のマイクロマネジメントスタイルを持つマルチAIエージェントモデルが違う点は何なのか、今一度整理したい。

僕の仮説では、ソフトウェア開発のように、深い専門性を持つメンバーから成り立つ案件では、人間であるリーダーが全ての専門知識をカバーできないため、サーバントリーダーシップを発揮して、意思決定権限をチームに移譲するやり方にならざるを得ない。
一方、単純な作業指示のような案件では、マイクロマネジメント方式の方が簡単で効率もいい。
さらに、AIの場合、リーダー役のAIエージェントは全ての専門知識を知っている前提にすれば、実際の作業実行ロールのエージェントに作業分担させた方が、遥かに効率がいい。

よって、AIがプロジェクト管理に浸透するほど、サーバントリーダーシップよりもマイクロマネジメント方式が優勢になるかもしれない。
サーバントリーダーシップは、情報整理力が劣る人間の集団で必要なリーダーシップに過ぎないのかもしれない。

また、AIヘルパーの内部構造では、
Rails MVC > エージェント抽象化レイヤ > 各エージェント > MCP抽象化レイヤ、LLM抽象化レイヤ >LLM、MCPサーバ
で設計されていた。
これを見て、エージェントの追加変更やモデルの追加が非常にやりやすいアーキテクチャだな、と感心した。
むしろ、LLMモデルを使った設計はこのような仕組みにならざるを得ないのではないか。

【3】僕は、JIRAによるチケット駆動開発の運用事例を紹介してきた。
久しぶりの講演で実は緊張していたが、話しているとテンションが上って、いい感じで話せた。

How We Operated Ticket-Driven Development in JIRA

たぶん、世界的にはRedmineよりもJIRAの方がよく使われているだろう。
僕は、JIRAは複雑すぎて使いづらく、Redmineの方が好きだ。

僕は、組み込みシステム開発では、タスク管理が複雑な階層化のために運用が難しく、それをJIRAにフィッティングさせて運用するのも難しい、という話をした。

一方、懇親会では、JIRAにアドバンスドロードマップやスキーマ機能を使うとさらに便利になる話を聞いて興味を持った。

Xユーザーのakipiiさん: 「懇親会でJira機能を話し込んだ。アドバンストロードマップがプログラム管理に使えること、スキーマ機能が標準プロセス適用に使える事が分かって収穫があった。JiraはRedmineと異なる機能がまた面白い。   #redminet」 / X

Jira Advanced Roadmapsは、製品企画のような計画作成で使う機能と思っていた。
どうやら、複数プロジェクトを横断したプログラム管理で使えるらしい。
JIRAのプロジェクトは階層化する機能がないため、Redmineに比べると不便だった。
おそらくその機能を補完するような機能かなと推測する。

Jira Advanced Roadmaps を使った計画策定を習得する | Atlassian

ChatGPTで聞いたら
「複数プロジェクトの計画・スケジュールを俯瞰的に可視化・調整できる上位プランニングツール です。
Scrum や Kanban チームのバックログをまとめて管理するのに最適です。」
とのことだった。

また、JIRAにおけるスキーマ(Schema)とは、ワークフローや権限、画面構成などをテンプレート化し、複数プロジェクト間で共通化する機能だ。
この機能はRedmineにはない。
アジャイルウェアのプロジェクトテンプレート、チケットテンプレートプラグインに似ているだろう。

JIRAのSchema機能を使いたい場面は、社内の標準プロセスを全案件に展開して統制できることだ。
JTCならば、社内標準の開発プロセスがあり、工程・手順・成果物が明確に定義されたV字モデルを持っているだろう。
すると、社内の全案件は、社内標準プロセスに従わせて、ドキュメントの標準化や作業効率化を目指したい。
そんな時にJIRAのSchemaで社内標準プロセスをテンプレートで実装すれば、各案件に展開すればいい。

運用プロセスに対して、こういうチケット管理ツールの機能フィッティングは面白いので、今後も色々探ってみたい。

| | コメント (0)

2025/01/01

チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する

チームトポロジー」を読んでみた。
ざっくり読んだだけなので理解が浅いと思うが、理解したこと、疑問に思ったこと、感じたことを書き残しておく。
ラフなメモ書き。

【1】「チームトポロジー」を読む前に、疑問を持っていた。

【1-1】1つ目は、「チームトポロジー」は大規模アジャイル開発の文脈で、どんな意義があるのか?
大規模アジャイル開発の書籍は、「SAFe 5.0のエッセンス スケールド・アジャイル・フレームワークによりビジネスアジリティーを達成する [ リチャード ナスター ]」「大規模スクラム Large-Scale Scrum(LeSS) アジャイルとスクラムを大規模に実装する方法 [ Craig Larman ]」などがあり、SAFeやLeSS、Scrum@Scaleなどの考え方もすでにある。
SAFeは官僚主義的だが実践的、LeSSはScrumをスケール化したものと理解している。
それらを踏まえて、「チームトポロジーは、大規模アジャイルの考え方の中でどのように位置づけられるのか?
従来の考え方を整理しただけに過ぎないのか、それとも、どんな新しい考え方をもたらしたのか、理解したいと思った。

【1-2】2つ目は、「チームトポロジー」はアジャイル開発にどんな新しい考え方をもたらしたのか? 
昔のアジャイル開発の考え方とどこが異なるのか? 
今の時代に即した開発チームや組織のあり方は何か? 
その時代に応じたアジャイル開発の文脈があると思っているので、若い人達がどんな考え方を持って感じているのか、理解したいと思った。

【2】チームトポロジーのテーマは、ソフトウェア組織はどのように進化させるべきか?と理解している。
事業を取り巻く外部環境はコロコロ変わる。
事業を支えるシステムも、コロコロ変わる外部環境や事業の発展速度、事業規模に振り回される。
そのような変化の激しい外部環境や事業環境では、従来のWF型開発ではついていけない。

コンウェイの法則は誰もが知っているが、実際に適用できる企業は非常に少ないと思う。
従来のWF型開発では、技術重視で層別に組織化されて、チームが分断されている。
インフラチーム、DBチーム、アプリチーム、UIチームとか。
1つのシステムをデリバリするのに複数チームが連携しないとデリバリできない、とか。

しかし、コンウェイの法則を適用できたとしても適用して成功できた期間は短いケースも多いと思う。
アジャイル開発を実践するチームが増えたとしても、事業が発展し事業規模が大きくなれば、業務が複雑化し、開発チームの増加やシステムの複雑性によって、じきに上手くいかなくなる。
本質的な複雑性をシステムもチームも抱え込む。

そこで、組織は、然るべきタイミングを見つけて、チームタイプを変えたり、チーム間IF(コミュニケーションスタイル)を変えていくべき。
チームトポロジー」はそういうストーリーと理解した。

【3】「チームトポロジー」で重要な概念は2つ。
チームタイプとチームインタラクションモード。

【4】チープタイプは4種類ある。
バリューチェーンを構成する主要業務は、Stream-aligned teamが担当する。基本は一般的なアジャイル開発チームと思う。
チームトポロジーでは、Stream-aligned teamが6~9割は占めるだろうと言っている。
やはり、Stream-aligned teamが事業を動かすエンジン。

Stream-aligned teamを支える補助チームが3種類ある。Enabling teamは、特定の技術領域やプロダクト領域の専門家集団。能力ギャップを埋める役割を果たす。Azure専門家チームとか、火消しプロジェクトに入ったPMOチームみたいなイメージだろうか?

Platform teamは、Stream-aligned teamが相当な自律性のもとでデリバリーを可能にするチーム。インフラ基盤を提供したり、APIを提供するチームと理解した。クラウド基盤チーム、IoT基盤チームみたいなイメージだろうか。

Complicated Subsystem teamは、特別な知識に大きく依存しているシステムを構築維持する責任を持つチーム。長年維持した既存の基幹系システムを担当するチームのイメージだろうか。他に、機械学習チーム、AIチーム、音声処理チームなどの特殊技術だけの開発チームもあるだろうか。

【5】チーム間のコミュニケーションをシステム間のIF設計と同様に扱う。
それがチームインタラクションモード。

チームインタラクションモードは3種類ある。
チーム間のコミュニケーションをシステム間のIF設計と同様に扱うイメージと理解した。会話スタイルをAPIやプロトコルで例えると理解しやすいと思う。

コラボレーションは異なるスキルを持つ2チームが一緒に取り組む。探索して学習できるが、認知負荷が大きすぎる。コラボレーション税と本では書いている。新規事業ではどうしても複数チームが共同で開発してデリバリーするケースも多いだろう。アジャイル開発なら一般的なケースと思う。

X-as-a-Serviceはシステム部品がサービスとして提供される。提供チームと利用チームに分かれる。利用チームは、提供された部品や技術を信頼できるのでその分デリバリーが速くなる。前提は、サービス境界が正しく実装されていること。API提供チームの責務が大きい。
Platform teamの主な職務遂行モード。AWSやAzureが普及しているし、マイクロサービス設計されていれば、APIから部品を組み立てる感じですぐにデリバリーできるはず。

一方、ファシリテーションは、他チームに支援と能力を提供する。プラクティスや新技術の導入とか。Enabling teamの主な職務遂行モード。他チームが学習すること、
問題や障害を発見して取り除くことに対応する。
コーチするチームとコートされるチームに分かれるだろう。プロセス導入と普及、品質向上活動、新技術導入とか色々ケースはあると思う。

【6】チームタイプxチームインタラクションモードのマトリクスで、チーム間のコミュニケーションスタイルを切り替える。たぶん製品ライフサイクル(PLC)で考えれば、チームタイプが変化するタイミングに気づきやすくなると思う。

たとえば、PLCの導入期は、単純な1チームのStream-aligned teamだけでいい。まだ新規事業を1個立ち上げたばかりだから、少人数のアジャイル開発チームで十分。
しかし、PLCの成長期に入ると、事業規模が拡大し、開発者も増えて管理職が管理監督するようになり、組織も複雑化してくる。

Stream-aligned teamの数が増えてチーム間IFが取れなくなる。例えば、Enabling teamが機械学習やAzureの技術やアジャイル開発のプラクティスをコーチングしたり、Platform teamがAPIやサービスを提供して、Stream-aligned teamが早期にデリバリーしやすくする仕組みが必要になってくる。
事業規模に応じて、チームを増やしていくが、チーム横断で支援する専門チームをアサインする必要があるわけだ。

そして、PLCの成熟期に入ると、複雑化した既存システムに対しComplicated Subsystem teamが専任してサービスを社内に提供し、他チームのデリバリーへの影響を避ける、とか。あるいは、機械学習、ロボティクス等の専門チームをComplicated Subsystem teamに割り当てて他チームにサービス提供するとか。

事業の主要業務に特化したStream-aligned teamだけではじきに対応できなくなる。最低限の共通基盤を抽出し、開発基盤やAPIを提供して素早いデリバリを支える専門家チームとしてPlatform teamが必要になる。

あるいは、業務が複雑化すれば、チーム間で能力のばらつきも出てくる。そこでコーチングして能力ギャップを解消するために、支援だけの専門チームとしてEnabling teamも必要になる。

【7】チームトポロジーは、大規模アジャイル開発で組織編成する時に、一つの指針になる。
いくら、リーン、スクラム、DevOpsが適用されてもまだ問題は残る、

安定して速くデリバリーするアジャイル開発チームを側面から支援したりコーチングしたりする専門家チームがやはり必要なのだ。
ただし、それは従来のWF型開発における層別に分けられた共通基盤チームと同義ではない。

【8】チームトポロジーを真に実践できる人のレベルは誰か?
CTOや事業部長クラスの人ではないかなと思う。
事業部制組織のトップが、担当するソフトウェア事業を成長させるために、どのタイミングでどのような組織構造に変えるべきか。

なぜなら、チームのメンバーもプロジェクトリーダーも、複数のチームを編成する権限を持っていない。
プロジェクトマネージャもせいぜい、大規模開発チームの傘下にある複数のサブチームを編成するぐらいの権限しか持っていない。
幅広く横断的にチームを統合したり、分割したり、新たな役割を割り当てることができるのは、CTOや事業部長レベルになるのではと勝手に推測する。

その意味では、チームトポロジーを習得する難易度は高いだろうと思う。
まず1つのチームでアジャイル開発を実践して成功できたうえで、大規模アジャイル開発も実践して、さらに複数のアジャイルチームをコントロールするノウハウが必要になるからだ。

【9】チームトポロジーを読む前では、大規模アジャイル開発の書籍では、コミュニケーションやモチベーションに関する組織文化に特化した話題が多い気がしていて、何か欠落している気がしていた。
たぶん組織構造の話題がなかったからだと思う。
チームトポロジーでは、組織構造のテーマを真正面に捉えている。その点は非常に有用だと思う。

チームの役割やチーム間のIFを種類分けし、「組織センシング」によって然るべきタイミングにチームタイプやチーム間のインタラクションモードを変えていくべき、という主張は非常に役立つ。
組織がしかるべき自覚を持って、チーム構造を進化させるタイミングに気づくべきなのだ。
組織構造を事業の変化やアーキテクチャの変化に合わせて変えていく手法として、有用な内容だと感じた。

モデリングの論点は、ソフトウェアをどんな観点で分割して整理すべきか。チームトポロジーのような組織論の論点は、デリバリーを安定して速くするためにどんな組織構造を割り当てるべきか。
結局、ソフトウェアの本質的な複雑性をいかにコントロールするか、その根本問題を巡って、その時代に応じた文脈で問題解決の方法が提唱されて、少しずつ変化していると感じた。

【10】
チームトポロジー」は大規模アジャイル開発の文脈で、どんな意義があるのか?
チームトポロジーの意義は、組織文化よりも組織構造に焦点を当てて、状況に即したチームタイプやチーム間IFを取るべきと主張している。

チームトポロジー」はアジャイル開発にどんな新しい考え方をもたらしたのか?
チームトポロジーがもたらした考え方は、Scrum、リーン、DevOpsなど、過去のアジャイル開発の発展を踏まえて、アジャイル開発チームの特性やチーム間IFのあるべき姿を提示した点にある。



| | コメント (0)

2024/03/31

「スクラムの拡張による組織づくり」のScrum@Scaleの感想

スクラムの拡張による組織づくり──複数のスクラムチームをScrum@Scaleで運用する」をざっくり読んだ。
ラフな感想をメモ。

【参考】
大規模スクラムはLeSSとSAFeのどちらが良いのか: プログラマの思索

SAFeの本質はアジャイルリリーストレイン、LeSSの狙いは組織のスクラム化ではないか、という仮説: プログラマの思索

プロダクトマネジメントの感想~プロダクトオーナーはもっとチームの外のユーザに寄り添うべき: プログラマの思索

認定スクラムプロダクトオーナー研修の感想: プログラマの思索

スクラムは境界を生み出す: プログラマの思索

文化は組織構造に従う: プログラマの思索

More Effective Agileは良い本だ: プログラマの思索

【1】Scrum@Scaleというアジャイル開発の大規模開発プロセスがどんな内容であるのか、に興味があった。
詳細は「スクラムの拡張による組織づくり──複数のスクラムチームをScrum@Scaleで運用する」に書かれているのであえて記載する必要はないと思う。

むしろ、既存のLeSSやSAFeと比較して何が異なるのか、が重要だろうと思う。

LeSSは1人のプロダクトオーナー、1つのプロダクトバックログから成るので、1個の製品を複数チームで開発するスタイルみたいなイメージを持っている。
たぶん、この形のスクラムが一番スケールしやすいと思う。
一方、プロダクトオーナーに負荷がかかりやすい弱点があるから、エリアプロダクトオーナーを設けたり、プロダクトオーナーを支援する人やチームを別途作るケースが多いように思う。

SAFeはアジャイル開発の官僚的組織、官僚的プロセスに近いイメージを持っている。
3つのレベルを持ち、開発チーム、リーダー層、経営層でそれぞれ役割分担したアジャイル開発を進めるイメージ。
大規模なシステム開発では、組織やプロセスを整備する必要があるから、SAFeのような仕組みは必要になるだろうと思う。
一方、RUPのようにテーラリングが必要なので、戦略的にカスタマイズを実施しないと難しいだろうと思う。

Scrum@Scaleは、スクラムチームのスケールだけでなく、プロダクトオーナーもスケールも実現する。
つまり、最低限の官僚的組織は持つが、開発チームだけでなくプロダクトオーナーも複数あり、協調動作するスクラムチームごとにプロダクトバックログを持つから、複数のプロダクトバックログを扱うように動く。
この点が他の大規模スクラムと違って、より柔軟な仕組みを持っているように思った。
EATやSoSのような組織を見ると、複数の開発チームやプロダクトオーナーが協調動作するように役割分担しているのに気づく。
レポートラインも最低限の官僚的組織としてうまく整備されている印象を持った。

【2】チャットサービスの開発現場で組織構造が変遷される内容がとても興味深い。
ChatWorkの開発現場だと思うが、最初はUI/UXのチームが重視され、途中で統合認証のような共通基盤の開発チームが入ってきて、最後は統合認証基盤チームは退出し、データマイグレーションなどのTeamsだけが残る。
つまり、チャットツールのビジネス発展に応じて、開発する機能が変わるので、それに応じた開発組織が必要になる。
そうした開発チームはチャットツールという製品の開発フェーズに応じて、新規に入ったり、退出したりして入れ替わる。
そういう組織の入れ替えを意識的に行っているのが味噌と思う。

また、こういう組織の入れ替えは、逆コンウェイ戦略の良い事例になっている。
なぜならば、製品の開発フェーズに応じて、重視される機能やアーキテクチャが変わるので、それに応じた組織を当てはめるべきであり、そういう組織を入れ替えるべきだ、という考え方になるからだ。

では、一般のユーザ企業の基幹系システム開発でも、こういうやり方は通用するだろうか?
たとえば、基幹系システム開発でも、機能追加やリプレース、法規制対応などにより、システムのフェーズは変わる。
基幹系システム開発でアジャイル開発を実践できているならば、Scrum@Scaleのような大規模開発も取り入れることはできるだろう。
つまり、基幹系システムのフェーズごとに開発チームを入れ替えて、逆コンウェイ戦略を実現することは不可能ではない。

しかし、一般の基幹系システム開発では、WF型開発が主流であり、アーキテクチャもインフラ層、データベース層、アプリ層などのように分割されて、それに応じた開発チームから成り立つ組織が多いと思う。
だから、Scrum@Scaleのように開発チームを頻繁に入れ替えるような逆コンウェイ戦略を実現するのは難しい状況が多いのではないか。

また、基幹系システム開発でスクラムを実践できていても、複数のプロダクトバックログを協調動作するように運用するのは、マネジメント上やはり難易度が高いと思う。

【3】「スクラムの拡張による組織づくり──複数のスクラムチームをScrum@Scaleで運用する」は日本の現場の事例もあって良い本と思う。
LeSSやSAFeとの違いについてはもう少し考えてみたいと思う。

LeSSは「大規模スクラム Large-Scale Scrum」の本がお勧め。
SAFeは「SAFe 4.5のエッセンス」の本がお勧め。

「More Effective Agile ソフトウェアリーダーになるための28の道標」では、SAFeが推奨されていたので参考にしている。

| | コメント (0)

2023/02/18

ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる

ストラテジストとプロジェクトマネージャの役割の違いは何なのか?
ITコーディネータ研修を経験して、IPAが定義するストラテジストとプロジェクトマネージャの役割の違いを自分なりに理解したことをメモ。
ラフなメモ書き。

【参考】
IPA 独立行政法人 情報処理推進機構:制度の概要:ITストラテジスト試験

IPA 独立行政法人 情報処理推進機構:制度の概要:プロジェクトマネージャ試験

【1】ストラテジストとプロジェクトマネージャでは、担当するプロセスのレイヤが異なる。

プロジェクトマネージャの担当領域は、個別プロジェクトのキックオフからリリースまでが一般的だ。
たとえば、SIerのプロジェクトマネージャであれば、請負契約でシステム開発を請け負っているはずだ。

一方、ストラテジストの担当領域は、複数のプロジェクトの内容が固まってRFPやプロジェクト計画書が完成するまでの企画フェーズと、プロジェクトが完了してリリースしたシステムが稼働した後の効果検証フェーズの2つだ。

たとえば、ユーザ企業の事業戦略に基づき、その事業を成功するためのシステムを構築したり、事業を支える業務を支援するシステムが必要になったとする。
事業の規模や業務の規模が大きければ、複数のシステムを構築する必要があるから、複数プロジェクトを並行で走らせる計画を作る。
そういう複数のプロジェクトではそれぞれ、どんなシステムが必要なのか、いつまでにシステムをリリースする必要があるか、を決める。
一般に企画フェーズで、事業戦略に基づくシステム化構想が練られることになる。

さらに、そのシステムをリリースした後、当初想定していた投資対効果が得られているか検証し、さらに改善していく必要がある。
それがリリース後の効果検証フェーズになる。

すなわち、ストラテジストの役割は、プロジェクトマネージャにプロジェクト計画書をお膳立てすることと、プロジェクトマネージャがリリースしたシステムが経営戦略の目標に合致しているか検証することになる。

ストラテジストはシステム化計画とシステムの効果測定だけであり、プロジェクトの実行フェーズはプロジェクトマネージャに委ねる。
よって、ストラテジストとプロジェクトマネージャの担当領域は明確に異なる。

【2】ストラテジストとプロジェクトマネージャでは、彼らの評価指標が明確に異なる。

プロジェクトマネージャは既に決められたQCDを元にリリースする責務がある。
たとえば、SIerのプロジェクトマネージャならば、ユーザ企業と握ったRFPを元に、初期投資予算、マスタスケジュール、体制図、システム要件が基本は確定した範囲内で、それを具体化してシステムとしてリリースする責務がある。
つまり、プロジェクトマネージャの評価指標は、当初決められたプロジェクトのQCDとの差異分析で決まる。

一方、ストラテジストは事業戦略に基づくシステムを構想したからには、そのシステムが事業に貢献したという投資対効果、つまりROIがストラテジストの評価指標になる。

たとえば、ユーザ企業が新規顧客を開拓するような新規事業を実行しようと決めて、ECサイトが必要になったと検討したとする。
ストラテジストは、そのECサイトは5カ年計画でどれだけの売上と営業利益を確保できるか、初期投資で数千万円や数億円をかけて投資してどれだけ売上を確保できるか、売上と営業利益のシミュレーションを計画する。
その売上を確保するには、ECサイトにはどんなシステム要件、業務用券が必要なのか、洗い出して確定する。
そして、そのECサイトの構築をプロジェクトマネージャに委ねてリリースしてもらった後、数ヶ月や数年をかけて、ECサイトの売上や利益を計測していく。
当初の計画と5カ年の実績の差異分析、つまり投資対効果がストラテジストの評価指標になる。

プロジェクトマネージャの評価指標がプロジェクトのQCDである事実より、プロジェクトマネージャへのプレッシャーはとても大きい。
しかし、ストラテジストの評価指標がシステムの投資対効果である事実を考えると、ストラテジストへのプレッシャーの方がはるかに大きいと思う。
なぜならば、プロジェクトマネージャの担当範囲は所詮、個別プロジェクトだけだが、ストラテジストの担当範囲は事業目標を達成するために平行に走らせるように計画された複数プロジェクトなのでとても広いからだ。

【3】ストラテジストとプロジェクトマネージャでは、利用するモデルや管理手法が明確に異なる。

プロジェクトマネージャは当初定められたプロジェクトのQCDを守るために、WBSとガントチャートによる進捗管理と課題管理が必須だろう。
もちろんそれ以外にも変更管理、品質管理など色々あるが、PJ管理手法のベースにはWBSとガントチャートがある。

一方、ストラテジストは、事業目標よりブレイクダウンされたシステムの投資対効果を達成するために、CSFとKGI、KPIのPDCA管理が必要になる。
事業目標を達成するために、BSCのように財務・顧客・業務・組織と人材の観点での中間目標(CSF)に分解したり、事業部内の各部署に業務分掌となる達成目標(CSF)が定められることになるだろう。

このCSFの考え方は、WBSみたいなものだ。

ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える: プログラマの思索

そして、CSFという中間目標を達成できたか否かを定量的に判断するために、KGI/KPIが必要になる。

たとえば、売上や利益の確保という財務レイヤの最終目標に対し、売上高や営業利益率というKGIが出てくる。
そのKGIを達成するには、顧客や市場の観点で、新規顧客獲得数や購買単価、顧客満足度などのKPIが出てくる。
たとえば、BtoCビジネスのECサイトで出てくるAARRRも該当するだろう。

それらを実現するためにさらに業務レイヤで、顧客訪問回数、受注獲得率、顧客提案回数、業務効率化につながる工数削減の度合い、作業時間の短縮度合いなどのKPIも出てくるだろう。
さらに、それらの業務を実行する人材や組織の観点で、有能な人材を示す専門資格者数、研修回数、社内教育、従業員エンゲージメント率などのKPIも出てくるだろう。

つまり、ストラテジストが計画した諸々のシステムは計画時点でそれらKGI/KPIの目標値が設定されて、リリースされたシステムが稼働している間、KGI/KPIをシステムで自動的に測定して、投資対効果を評価することになる。

【4】自分がJavaアプリ開発者だった頃、プロジェクトマネージャの仕事ぶりは実際に見ることができたから、彼らの役割や責務は想像することができた。
しかし、ストラテジストを実際に見かける機会はなかったから、彼の役割や責務を想像することは難しかった。

ストラテジストはユーザ企業の経営戦略や事業戦略をベースにシステム化構想を検討するので、MBAで出てくるような経営戦略ツールを使って、外部環境・内部環境分析を行い、経営課題やCSFを洗い出す技法が必要になる。
つまり、ストラテジストに求められるスキルには、経営課題を解決するためのシステムの骨格を生み出すためにシステムアーキテクトのスキルは必要な前提の上で、外部環境・内部環境分析と経営課題・CSFを確定するための経営戦略ツールも必要になってくる。

たとえば、外部環境分析なら5Fs, PEST分析、内部環境分析ならVRIO分析やバリューチェーンなどのフレームワークを使う。
たとえば、経営課題の抽出であれば、SWOT分析で各要素を洗い出した後、経営戦略の方向性や企業の制約条件を元にクロスSWOT分析から、あるべき姿という経営課題を洗い出す。
その経営課題をCSFへ置き換えたり因果関係にまとめてBSCに当てはめて、各レイヤや各部署のCSFとKGI/KPIに落とし込む。
そこから、どんなシステムが必要になるか、複数個のシステムを洗い出して、具体的なシステム化計画を策定していく。
たぶんそういう流れ。

よって、ストラテジストの所在はユーザ企業の経営層や経営企画部、事業企画部、情報システム部門の領域にある。
つまり、SIerの中の一人の開発者から見れば、ストラテジストははるか遠くのところに位置しているので、彼らの目に止まりにくい。

【5】しかし、アプリ開発の専門技術者とプロジェクトマネージャ、ストラテジストは役割が異なるだけであって、そこに優劣があるわけではない。

実際にシステムを構築するために、システムアーキテクト、ネットワークスペシャリスト、データベーススペシャリスト、エンベデッドスペシャリスト、セキュリティスペシャリストなどの各専門技術者も必要だ。
色んな専門スキルを持つ人達が集まって、彼らが一つのチームとして形成して初めて、一つのシステムのリリース、さらには事業目標が達成される。

現代のシステム開発は色んな領域の専門家集団が必要であり、彼らがチームとして成り立ち、協働することが必要になっているわけだ。

| | コメント (0)

2023/02/14

ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える

経営戦略企画書やバランススコアカードに出てくるCSFとは一体何なのか?
CSFの使い道は何なのか?
ITコーディネータの先生に教わってようやく理解できた。
気づいたことをラフなメモ書き。

【1】CSFという言葉は知っていた。
CSFはCritical Success Factorの通り、目標達成の成功状態のことだ。
しかし、CSFはどんな時に必要なのか、CSFは何のために使うのか、腹落ちしていなかった。

経営戦略企画書において、バランススコアカードを作る時に、CSFはよく出てくる。
バランススコアカードでは、財務・顧客・内部プロセス・組織と成長のレイヤで、CSFや課題を因果関係や先行後続関係でつなげて戦略マップを作る。
たとえば、研修して人材を育成することで、営業や製造の体制が安定し、業務が効率化されたり、営業活動が活発になったりして、顧客満足度も上がり、原価も削減できて、最終的に売上拡大、利益増大を達成する。
そういうCSFの因果関係ができる。

【2】まず自分が勘違いしていた点は、CSFは成功状態であるから「~できる」という状態表現で書かれることだ。
なぜなら、目標が達成されて成功されたのだから、以前抱えていた問題は解決されて、達成「できた」という状態になるからだ。

一方、問題は「~できない」「~が難しい」という否定表現、課題は「~のために~する」という行動表現で書かれる。
どうやら自分は、経営課題とCSFを混同していたらしい。
本来は、問題に対し、経営課題が抽出されて、経営課題に対応するという対応策を実行すると、最終的に問題が解決されて、目標を達成できた、というCSFに結論付けられる。

他方、CSFは中間目標とも言われる。
最終的な経営目標に到達するためには、いくつかのマイルストーンをおいて、それらマイルストーンを全て通過して初めて最終ゴールに至る。
すなわち、CSFという中間目標は複数個存在するし、CSFの因果関係や前後関係が付けられることで、最終的なゴールへの道筋が明確になる。

すると、CSFの因果関係を元に、複数個のCSFをつなげて時系列に並べると、その図は経営戦略のロードマップになる。

【3】この考え方は、プロジェクト計画書におけるWBSとガントチャート関係と同じ。
WBSはプロジェクト実行に必要な作業全てであり、先行後続関係を付けて階層化された構造を持つ。
そのWBSは、時系列にマッピングさせればガントチャートになる。

同様に、CSFは経営目標を達成するための中間目標であるから、複数個のCSFには必ず因果関係が発生し、それは先行後続関係になる。
CSFの先行後続関係を時系列にマッピングさせれば、経営戦略のロードマップになる。
あるいは、経営戦略企画書のマスタスケジュールとして作られる。

【4】CSFは何のために使うのか?
CSFは経営戦略のロードマップを作成するために使われる。

経営戦略企画書に出てくるCSFは、プロジェクト計画書のWBSみたいなもの
プロジェクト計画書にあるWBSからガントチャートが作成されるように、経営戦略企画書のロードマップ、マスタスケジュールはCSFから作成される。

【5】そう考えると、バランススコアカードに出てくるKGI、KPIの考え方もスムーズにつながる。
なぜならば、経営戦略の最終目標に至る中間目標を達成できたのか、評価するために、KPIという業績評価指標を使って定量的に評価するわけだ。
CSFは「~できる」という状態表現でかかれるので、評価指標に落としやすい。

たとえば、「顧客満足度が上がっている」というCSFであれば、顧客満足度をアンケートで収集して採点して、以前と比較して上がっているかどうか評価すればいい。
「作業時間が短縮して業務を効率化できた」というCSFであれば、作業時間や作業工数を毎日記録して、該当の作業の時間が以前よりも減っているか測定すればいい。

そういう中間目標をブレイクダウンしていけば、組織や人材の観点のようにより低レベルな業務のKPIで測定するし、ドリルアップすることで顧客や市場、財務という観点のKPIが達成されて、最終的には経営目標であるKGIが達成される。

KPIやKGIという定量的な業績評価指標があるからこそ、毎月、四半期ごとに定点観測して業務プロセスを健康診断のように診断できる。
KPIが順調であれば問題ないが、KPIが落ちていれば、その原因を探り改善策を立てて、業務を見直していくことになる。
いわゆるPDCAが自然に行われることになる。

【6】CSFという概念を使いこなすことで、経営戦略のロードマップやマスタスケジュールが生成されて、KGIやKPIで定点観測して評価するという流れがベースにある。
この考え方は、プロジェクトマネージャよりもストラテジストと言われる立場で必要であると思う。

つまり、個別プロジェクトを切り盛りするプロジェクトマネージャではなく、より経営戦略に近い立場にいるストラテジストが常に考えているはずだから。

ストラテジストとプロジェクトマネージャの考え方の違い、役割の違いについては別で考察してみる。


| | コメント (0)

2023/01/22

PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか

@sugimoto_keiさんのツイートを読んで、PM理論ではP志向の方がM志向よりも生産性が高いことを主張していることに気づいたのでメモ。

【参考】
杉本啓さんはTwitterを使っています: 「多くのひとは職場での人間関係を気にし過ぎる。その人が自分を支配しようとして色々束縛するなら、それは人間関係の問題だが、そうでないなら、人間関係は気にしないで自分がやるべき仕事をすれば、ほとんどの場合、解決する。人間関係が気になるのは仕事がうまくいってないから。その逆ではない。」 / Twitter

杉本啓さんはTwitterを使っています: 「昔の経営学で、課業志向と人間関係志向という概念があったが、これは課業志向の考え方。基本的には、課業志向でできることをまずやるのが先決だと思う。人間関係というものは答えがないし、根本的に解決することもできない。」 / Twitter

杉本啓さんはTwitterを使っています: 「多くのひとはたぶん、集団の中で自分の居場所を作ることが重要だと考えているのだろう。それが人間関係志向ということ。それはわかるのだが、そうではなく、何を達成するのか、そのためにどうするか考える。これが課業志向。そうすると人間関係は大して気にならなくなるし、却って良くなるものだ。」 / Twitter

【PM理論とは】歴史や特徴を事例からわかりやすく解説|リベラルアーツガイド

PM理論とは?理論とリーダー育成における活用場面をわかりやすく解説|人材育成・社員研修|ラーニングエージェンシー

PM理論でリーダーを育成する企業は伸びる『事例紹介』 | 識学総研

管理職に求められる能力はPM理論そのものではなかったのか: プログラマの思索

心理的安全性はPM理論のメンテナンスの発展形ではないか: プログラマの思索

組織論で紹介される学者はほとんどが欧米人だが唯一の日本人として、三隅二不二のPM理論がよく紹介されている。
昭和の時代にカイ二乗検定を使って統計的に有意な仮説としてPM理論を打ち立てたらしい。
PM理論の考え方は考えてみれば当たり前のように感じて、あまり気に留めていなかったが、@sugimoto_keiさんのツイートを読んで、PM理論が主張したかった本来の内容は違うのではと思った。

組織におけるリーダーの能力は、課業志向と関係志向の2つがあり、両方とも高いレベルを目指すべきとPM理論は言う。
しかし、実は課業志向の方が関係志向よりも生産性が高いことを言いたかったのではないか。
つまり、リーダーシップは結局成果を出して初めて認められるものであり、成果を重視せず関係ばかりに注力しても問題解決にならない、と。
特に、日本人のリーダーや集団は課業志向よりも関係志向を重視しすぎていて、生産性が高くないのではないか、と。

たとえば、リーダーシップとは成果主義が前提であるという考えは、「採用基準」にも記載されていたのを思い出した。
採用基準」では、成果を求められないリーダーシップに囚われすぎる日本人を批判している。

たとえば、野中先生の「失敗の本質」でも、日本軍という官僚的組織が実は成果主義よりも関係志向を重視していて、リーダー間で忖度し合うことで戦争に負けた経緯が詳しく分析されている。

たとえば、PM理論でリーダーを育成する企業は伸びる『事例紹介』 | 識学総研では、典型的な日本企業である日立でも、管理職のリーダークラスは優秀であっても課業志向ではなく、関係思考が強い傾向があるらしい。

こういう話を踏まえた上で考えると、日本人は集団でリーダーシップを発揮するという考え方や行動に何らかの問題があり、それがずっと弱点になっているのではと思う。

今の日本のアジャイル界隈では心理的安全性という概念がとても好まれているが、実は日本人のリーダーシップには関係志向が強すぎて課業志向が欠落しているのではないか、という考え方も心に留めておく。
たぶんコンテキストや環境によってはこの観点も必要だろうと思う。

| | コメント (0)

2022/12/23

現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ

採用基準」「生産性」を読み返したらいろんな気付きがあった。
ロジカルでないラフなメモ書き。

【参考】
「採用基準」の感想~日本の根本問題はリーダーシップの総量が不足していること: プログラマの思索

DXとは組織論である: プログラマの思索

Slack導入がDXに繋がる話: プログラマの思索

諸問題を組織論に持っていくのは目的を手段化していないか: プログラマの思索

ITの地殻変動はどこで起きているのか?~今後の課題はソフトウェア事業におけるエージェンシー問題を解決すること: プログラマの思索

失敗の本質―日本軍の組織論的研究の感想: プログラマの思索

プログラマとスクラムが社会実装を変えていく #Findy_GovTech: プログラマの思索

デジタル庁が解くべき課題とITエンジニアの役割の勉強会の感想~CTOの役割とは何ですか?: プログラマの思索

みんなのPython勉強会#65の感想~社会変革の鍵はIT技術者にあるのかもしれない: プログラマの思索

マッキンゼーの報告書「2030 日本デジタル改革」が手厳しい: プログラマの思索

【1】最近の日本のIT業界を見ていると、主に2つの現象が目につく。
一つは、DXに向いた組織を作ろう、という組織論の話。
もう一つは、DXを実現するためにアジャイル開発をもっと積極的に導入して運用しよう、という話。

この2つの話の背景には、2つの問題意識が真因として隠れていると思う。
具体的には、組織論の話題、アジャイル開発の話題の背後には、日本人はリーダーシップが不足していること、日本人は生産性の意識も言動も非常に低いことだ。

【2】今のビジネス界隈では、DXがバズワードだ。
DXを実現するには、既存の業務であれ、新規の事業であれ、ソフトウェアでコスト削減、さらには売上の創出が求められている。
DXを実現するには、ソフトウェア開発者、そしてそれを取り囲む組織という基盤が必要だ。

しかし、DXに関する組織論のテーマはすごくフワフワとしていると思う。
命令指揮系統ではなくフラットに風通しを良くしよう、心理的安全性が担保されるような組織風土を作りましょう、という組織文化の話題が多い。
だがそういう甘い言葉の背後には、今までの組織文化や事業スタイルを捨てて、新しい事業や新しい組織の関係を作ろうとする原動力が必要なのに、たくさんの壁にぶち当たる怖さが説明されていないように思える。
だから、何となく、現状を批判するだけで何も変わらない、という現象が出ているように思える。

実際は、既存の組織風土を変えるのは、今までの人間関係や組織との関係を変えることであり、自らリーダーシップを発揮して動いていかなければ何も変わらない。
ものすごく自頭の良い人やできる人に従ってやれば問題解決するわけではない。
自らチェンジ・エージェントになり、たくさんの困難な壁にぶち当たるごとに、一つずつ壁を壊したり乗り越えていくパワーが必要になる。

採用基準」では、問題解決には、問題解決スキルだけでなく、問題解決リーダーシップ(Problem Solving Leadership)が必要と主張している。
たとえば、目の前に起こったいじめの問題に対し、MECEやロジックツリーだと言っても何も変わらないし、実際に解決するように行動して初めて、問題解決の方向に動き出す。
それが本来のリーダーシップ。

すると、このリーダーシップの背後には、「自らリスクを取る」という概念が隠れていることが分かる。
自分の思いどおりに変わらない状況に対し、自分と異なる価値観を持つ人を説得して調整したり、自分が持っていない知識やスキルはそいうう専門スキルを持った人たちに働きかけてチームとして問題解決を図ることが必要になってくる。
そういう行動は、思い通りの結果にならないかもしれないリスクに自らチャレンジすることを求める。

しかし、日本人はリスクを取りたがらないと一般的に言われている。
すべてのリスクを回避してリスクをゼロにすることばかりに専念している。
だから、リスクを取ってリーダーシップを発揮するという行為、選択肢が取りにくい人が日本には多いのだろう。

実際、「採用基準」に記載されている通り、日本人はチームプレーでチームに貢献した成果を問われる経験が極端に少ない。
たとえば、小中高校生なら、受験という行動はその人だけの能力測定試験であり、個人プレーにすぎない。
社会人になっても、プロジェクトリーダーや管理職にならない限り、自分だけの仕事の成果しか問われない。
すると、一般職の日本人は一生、チームでの成果を求められる、というリーダーシップ経験を積まずに終わる人が多い。

そんなリーダーシップ経験のない人は、わがままな振る舞いが多い。
チームで成果を出すためにそれぞれの役割を認識せず、自分が一番成果を出しやすい行動に走ってしまいがちだから。
自分が成果を出しやすい個人プレーに走るのは、自分が苦手な場面に行動するリスクを取らないことにも通じる。

そんなことを考えると、リーダーシップ不足という弱点をごまかして隠すことで、組織論というふわふわしたテーマに流れてしまうのだろう。
そしてリーダーシップ不足という日本人論の問題点は、日本人はリスク許容度が低いことに真因があると思う。

【3】アジャイル開発は20年以上前から提唱されているのに日本ではなかなか導入すらされなかったが、ここ最近になって積極的に取り入れようとする流れが出てきた。

アジャイル開発の本質は一体何なのか?
僕は、アジャイル開発とは時間価値を最優先にしたソフトウェア開発だ、と一言で言えると考える。
WF型開発のように、時間も労力もかけて品質を作り込んで、高品質なソフトウェアをリリースするのではなく、小刻みにいち早くソフトウェアをリリースすることで売上もキャッシュも獲得していく戦略を取る。
1年間で1回のリリースではなく、5回リリースできるなら、5回分のフィードバックが得られて、その分、市場ニーズに合ったソフトウェアへいち早く開発できるようになる。
つまり、リリース頻度が5倍多いなら、ソフトウェアの価値も5倍高まるメリットが生まれる。

では、なぜアジャイル開発は日本で受け入れられなかったのか?
アジャイル開発の源流はトヨタ生産方式と言われていて、日本人にも馴染みがあるのに、なぜアジャイル開発は日本人にフィットしなかったのか?
たぶんその最大の理由は、ソフトウェア開発の生産性が低いことが問題だ、という意識が非常に薄いことだと思う。

官公庁みたいな縦割り組織の日本人は生真面目なタイプが多いので、決められたルールに従う方が重要であり、コストや期間を度外視したり生産性を重視する行動に行きやすい。
また、ソフトウェア開発者派遣のような人月ビジネスでは、たくさんの工数がかかるほど儲かるので、生産性を上げるモチベーションがビジネスモデル上生まれにくい。
今の日本の製造業では生産工程の改善により原価低減による付加価値向上を目指すが、3%の生産性向上よりも30%以上、2倍以上の生産性向上を目指すような、イノベーションを取るような行動が生まれていない。

なぜ米国企業は90年代に蘇ったのか~日本の手の内は完全に読み取られた~V字回復の経営の感想: プログラマの思索

生産性が低い現象が問題だ、と考えて、その問題解決を図ることにより、生産性をさらに大幅に向上させるという正のループを作り出せていない。
特に、3%の生産性向上のようなちょっとした改善ではなく、30%や2倍以上の生産性向上を図ろうとすれば、今までのやり方を捨てて、新たなアイデアを試す、といったリスクを取らなければ実現できないだろう。
しかし、今までリスクを取ったことがない人が、いきなりハイリスクハイリターンの選択肢を取るのは非常に難しいだろう。
なぜならば、仕事でもプライベートでも、そういうハイリスクハイリターンの練習を経験していなければ、実践で試すことは難しいだろうから。

日本人の生産性が著しく低い、という点にも、日本人はリスクを取りたがらない、という現象がその問題の背後に隠れている。

つまり、「ソフトウェア開発のように、時間価値が重要な意味を持つビジネスでは、生産性に比重をおいて時間戦略を取るべきだ」という考え方が日本人も日本企業も受け入れられていないからだ。
その真因には、日本人のリスク許容度が低いこと、土建業界やIT業界に限らず自動車業界においても日本のあちこちの業界で多重請負ビジネスがはびこっていることにあるのだろうと思う。

なぜ米国企業は90年代に蘇ったのか~日本の手の内は完全に読み取られた~V字回復の経営の感想: プログラマの思索

【4】リーダーシップ不足や生産性が著しく低いという現象には、リスクを取らないという日本人の気性が出ているのではないか。
あえてリスクを取ることで、大きなリターンを得る、というハイリスクハイリターンの選択肢を最初から捨てている場合が多いのではないか。

リーダーシップがあり、生産性が高い人は、いろんな問題解決に対してリスク許容度が広いので、かなり大きなリスクを自ら選択することができる。
つまり、リスク対応力とその人の問題解決能力は比例しているのだろうと思う。

【5】組織論やアジャイル開発をテーマにしている人たちは、日本人の弱点である「リーダーシップ不足」「生産性が著しく低い」「リスク許容度が著しく低い」という真因におそらく気づいている。
その真因をいろんな角度から、いろんな言葉で、いろんな手段で解決を試みようとしているのだろうと思う。
そういう観点を持って、今のDXにかかわるテーマを取捨選択して聞いてみたいと思う。

| | コメント (0)

2022/06/19

プロセス設計はどの範囲を指すのか?~プロマネの仕事はテーラリングにある

とある勉強会で、プロセス設計はどの範囲を指すのか、を議論した。
自分の考えをメモ。
ラフなメモ書き。

【参考】
デジタル庁が解くべき課題とITエンジニアの役割の勉強会の感想~CTOの役割とは何ですか?: プログラマの思索

ITの地殻変動はどこで起きているのか?~今後の課題はソフトウェア事業におけるエージェンシー問題を解決すること: プログラマの思索

ソフトウェアPJの企画フェーズの責任者は誰なのか?: プログラマの思索

みんなのPython勉強会#65の感想~社会変革の鍵はIT技術者にあるのかもしれない: プログラマの思索

プログラマとスクラムが社会実装を変えていく #Findy_GovTech: プログラマの思索

マッキンゼーの報告書「2030 日本デジタル改革」が手厳しい: プログラマの思索

DXとは組織論である: プログラマの思索

ソフトウェア・ファーストの感想: プログラマの思索

プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール: プログラマの思索

【1】プロセス設計とは何か?

「SEはプロセス設計する能力が必要」と清水吉男さんは言われていたと思う。
PJ計画時に、担当SEは担当PJでどんなプロセスが必要でどんな成果物が必要なのか、を明確にすべき。
なぜならば、システムの特徴、PJ特性に応じて、プロセスや成果物はどのPJでも微妙に異なるからだ。
それを不明確なまま進めると、じきにプロジェクトの運営がうまくいかなくなる。

イメージとしては、XDDPならばPFDというDFDを描いて、プロセスと成果物のデータフロー図を描くものと思う。

【2】プロセス設計の考え方は標準から各PJへのテーラリングが基本

では、プロセス設計とはどんな構造を持つのか?
きちんとしたSIであれば、社内に標準プロセスがあり、それを担当PJごとにテーラリングしたサブプロセスを定めることになる。
つまり、「プロセス」クラスと「サブプロセス」クラスという型が継承関係にある。

プロジェクト計画が確定すると、「サブプロセス」のインスタンセスが生成される。
PJ実行フェーズで、プロセスのインスタンスをもとに、具体的な成果物(たぶん、設計書などのExcel帳票)が作られていく。

つまり、プロマネは担当PJの特徴、システム特性に応じて、標準プロセスをテーラリングないしカスタマイズする自由度は許されている。
ここにプロセス設計の能力が必要とされる。


【3】プロセス設計の範囲は、PMO事務局とプロマネで異なる

では、プロセス設計の範囲はどこなのか?
(1)プロセス設計とは、プロセスインスタンスから標準プロセスへ抽象化する手法?
(2)プロセス設計とは、標準プロセスをプロセスインスタンスに具体的に実現する手法?
(3)プロセス設計とは、標準プロセスからサブプロセスへテーラリングする手法?

僕の考えでは、プロセス設計の範囲は、PMO事務局とプロマネで異なる。

全社横断的PMO事務局は、社内の案件に対し、標準プロセスを定めたガイドラインを定義し、その推進活動を担当する。
PMOの作業範囲は、「プロセスというクラス」の部分で標準プロセスの型をガイドラインで定義し、各案件のPMには、標準プロセスは守ってもらうことになる。
一方、プロマネには、PJ特性に応じて成果物やプロセスを取捨選択したりカスタマイズしてテーラリングする。

つまり、PMOが担当するプロセス設計の作業範囲は「プロセスというクラス」になる。
なぜならば、標準プロセスを定めたガイドラインの保守改訂はPMOの範疇だから。

一方、案件のプロマネの作業範囲は「サブプロセスというクラス」でPJのテーラリングを行ったプロセスを取捨選択ないしカスタマイズして決めて、PJ計画の活動で具体的なプロセスと成果物(たぶんExcel帳票)を確定すること(プロセスインスタンス)になる。
なぜならば、プロセスをテーラリングして詳細化する作業は、プロマネの担当だから。

【4】テーラリングはどのように評価されるのか

実際の現場では、PMOとプロマネの間で対立はある。

PMOは、ガイドラインがベースラインなので基本はPMに守ってもらうことが最優先であり、実際の案件とのギャップがあれば、それは吸い上げて真因を深掘りする作業を担当する。
テーラリングの自由度は許される範囲内でプロマネにあるから、プロマネの説明の根拠を一つずつ確認して、問いただしていく作業が必要がある。
実際は、そのテーラリングの妥当性で揉めることが多い。

たとえば、プロマネが案件の予算を申請する時、役員を含めた経営陣やPMO事務局が投資計画の内容を精査して、案件の予算確保と実行承認を決定するだろう。
その時に、会社標準のプロセスに即して投資計画を立案しますが、基本はテーラリングが必ず入る。

テーラリングの例としてはこんなものがある。

・標準では許されない工程の重複や統合、省略を許す
・標準化されていない開発方法、技術を適用する
・メトリクスの許容値を調整したり、代替メトリクスを計画する

たとえば、SAPのようなパッケージ製品の導入であれば、すでに開発プロセスがベンダ製品に埋め込まれている。
社内標準とは異なるベンダ製品のプロセスを社内の体制で実行できるか、などをPMが経営陣に説明する必要がある。

あるいは、機械学習の開発基盤を導入する案件であれば、標準化されていない開発手法を適用することになる。
開発リスクを見込んだスケジュールを作っているか、コストを見込んでいるか、をPMが経営陣に説明する必要がある。

あるいは、品質基準を変更してPJ用にテーラリングしたならば、品質基準を変更した妥当性の根拠をPMが経営陣に説明する必要がある。

プロマネが作った投資計画書やPJ計画書をレビューして、細かく精査すると、コストの妥当性、開発リスクの検討、品質基準の設定が甘い時も多い。
そういうレビューを通じて、投資計画の精度を高めるし、プロジェクト実行時の各ゲートレビューでPJの実行状況をPMOがモニタリングしてチェックすることになる。

【5】とは言え、プロセス設計とその評価プロセスの質は、SIであってもユーザ企業であっても、バラつきが多い。

システムの有効性を知りたい経営者、利用ユーザなどの第三者であれば、こういう仕組みがしっかりしていると、安心してシステム開発を任せられる。
たぶん、日本政府のデジタル庁が目指しているあるべき姿も、この辺りの内容に近いのでは、と推測する。
なぜならば、内製部隊を持てない場合、ベンダに委託する必要があるが、こういうプロセスの仕組みをしっかりすることで、ベンダから提供される成果物が標準化できるし、社内でもユーザ要求や仕様をまとめる能力が高まるし、最終的にベンダロックインを防いだり、プロジェクトの進行状況を適宜チェックする仕掛けができるからだ。

ITの地殻変動はどこで起きているのか?~今後の課題はソフトウェア事業におけるエージェンシー問題を解決すること: プログラマの思索

| | コメント (0)

2022/04/26

知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る

SECIモデルの状態遷移図を描いて、ようやくSECIモデルを理解できた気がする。
ラフなメモ。

【1】2014年頃に、SECIモデルでパターン言語を理解しようと考えていた。
確かにパターン言語と相性は良いが、SECIモデルのイメージがまだピンときていない気がしていた。

SECIモデルは、PDCAみたいなマトリクスよりも、知識・経験の状態遷移図で描く方が理解しやすいと考えた。
形式知=知識、暗黙知=身体による経験。

【2】知識を使って身体に落とし込むのが内面化。
スポーツ、楽器、お絵描きなどの訓練が相当するだろう。

一方、身体で経験した内容を知識でまとめるのが表出化。
一流のスポーツマン、学者、音楽家、宗教家、哲学者たちは、自分たちの体験を何とか知識として言語化し、みんなに広めようとする。
走る哲学者と言われる為末大さんみたいな感じかな。

他方、形式知を組み合わせて新たな知識を創造するのが連結化。
感覚的に情報を受け取って暗黙知を高めるのが共同化。

【3】知識は経験よりも大切なのか?
経験は知識よりも勝るのか?

僕は両方を経験している。

IT技術者であれば、たくさんのプロジェクトで新技術や業務システム開発を経験した後で専門書を読み直すと、ああ、そういうことだったのか、と気づく時が多い。
中島聡さんは、プログラミングとは、座学で勉強するものではなく、実際にアプリ開発して体験した後で専門書で答え合わせするものだ、と言われていた。
そんな内容と似ている。

実践した後に勉強するのがエンジニアの本来の道: プログラマの思索

僕がRedmineにハマったきっかけも、XPやアジャイル開発の本はたくさん読んだが、何か腑に落ちることがなくて、Redmineでいろいろ試して初めて分かったという事があった。
知識がいくらあっても、やはり体験しなければ、本当に理解できた、という感覚がない。
肌感覚では分かった気にならなかった。

一方、IT企業やプロジェクトという組織形態では、いつもイライラするものがあって、その原因がなにか分からない時があった。
組織文化はトップが作るのか、ボトムアップで作られるのか、いつも疑問に思っていて、アジャイル開発の影響から、組織文化は現場からボトムアップで生まれるのだろうと思っていたが、診断士の先生に聞いたところ「組織文化を生み出す責任は社長にある。もっと社長が汗をかけ!」と言われて、ハッと気づいた時があった。

制度的リーダーシップの考え方が何となくしっくりきた: プログラマの思索

組織文化はトップが作るのか、ボトムアップで作られるのか: プログラマの思索

同様に、組織論、経営戦略論、経済学などを勉強してみて、メンバーに応じた教育方法ならSL状況理論やPM理論を使ってみたらいい、とか、プロマネとPMOの微妙な対立関係はエージェンシー問題に似ているな、とか、知識を使って、自分なりに理解が進んだ気がした。

管理職に求められる能力はPM理論そのものではなかったのか: プログラマの思索

ITの地殻変動はどこで起きているのか?~今後の課題はソフトウェア事業におけるエージェンシー問題を解決すること: プログラマの思索

また、RedmineでRubyのソースコードは適当に触っていたがRubyはちゃんと理解できてなかった。
RubySilverやRubyGoldを勉強してみて、Rubyはオブジェクト指向言語を徹底しているんだな、と改めて理解し直した。

Ruby技術者認定試験の感想: プログラマの思索

そんなことを考えると、知識と経験の相互作用として、SECIモデルの内面化、表出化を行ったり来たりしながら自然に実践している。
そして僕はたぶん、実際に色々体験して、失敗を繰り返さないと腑に落ちないみたいだ。
そういう感覚はSECIモデルの状態遷移図で整理できるんだな、と改めて感じた。

| | コメント (0)

より以前の記事一覧