Agile

2021/07/23

心理的安全性は日本企業では実現しにくいかもしれない

「心理的安全性」という概念は、まだ、日本人には早すぎる。 | Books&Appsという記事がとても参考になったのでメモ。

【参考】
「心理的安全性」という概念は、まだ、日本人には早すぎる。 | Books&Apps

Masanori Kusunoki / 楠 正憲さんはTwitterを使っています 「日本で個人主義が根付いてないというのは、漱石の昔から言い古されてきた話題ではあるけれども、だから日本人には早すぎるなんて緩いことをいってると、いよいよオワコンに / “「心理的安全性」という概念は、まだ、日本人には早すぎる。 | Books&Apps” https://t.co/NPzz4gkmFs」 / Twitter

akipiiさんはTwitterを使っています 「良い記事。心理的安全性は人間関係のリスクを取っても率直に言える組織風土を指す。いまもいじめがはびこる日本では根付かないかもしれない。「心理的安全性」という概念は、まだ、日本人には早すぎる。 https://t.co/9Em4UXSWCe」 / Twitter

僕は心理的安全性という概念をきちんと理解できていなかったと思う。
「心理的安全性」という概念は、まだ、日本人には早すぎる。 | Books&Appsの通り「ハーバードビジネススクール教授、エイミー・C・エドモンドソンは、「心理的安全性」の定義を「対人関係のリスクをとっても安全だと信じられる職場環境」としている」ならば、対人関係を気にせず率直に意見を述べられる組織風土や組織文化を指すわけだ。

そういう心理的安全性の定義を踏まえると、特に日本の企業や学校では、心理的安全性はとても実現しづらい。
同調圧力、集団主義的傾向、権力者への従順さなどが日本人という個人を脅かすから。

日本人は、相手と話す時に彼との序列順位をいつも気にしている。
日本人は、年功序列、多重下請け構造という目に見えない社会構造をいつも気にしている。
気にしなければ、生活できない人が多いから。

でも、ソフトウェアを中核としたビジネスモデルで発展させていくには、優秀な人材を集めて、彼らが率直に意見をぶつけて、知的バトルの中から、規模の経済を打ち倒すアイデアや方策を生み出さねばならない。
だから、心理的安全性という組織文化は非常に重要なのだ。
「心理的安全性の低い組織には、賢く、有能な人間は集まらない。パフォーマンスが著しく落ちるからだ。」
たぶんそういうところが従来の既存企業には欠落しているのだろう。

とはいえ、特にIT人材は日本人だけでは今後不足していくので、早晩、海外のIT技術者を日本企業も取り込んでいかないといけなくなる。
そんな状況で、心理的安全性を自ら実践していけるのか?

昭和や平成初期の時代の雰囲気から抜け出せない人を外すしか解決できないのでは、と思ったりもする。

| | コメント (0)

値オブジェクトの設計がオブジェクト指向モデリングの最初の登山口

先日7/14に開催された「アジャイル開発におけるモデリング活用実践セミナー」のオンライン動画を見ていて、興味深かった。
羽生田さん、増田さん、原田さん達の会話が面白かった。
気になった発言をラフなメモ。
自分の感想も混じっていて、全くロジカルでない。

【参考】
「アジャイル開発におけるモデリング活用実践セミナー」(2021.07.14開催) - UMTP 特定非営利活動法人UMLモデリング推進協議会

ドメイン駆動設計が好きで、ベンチャー企業のWebサービスの開発で使っている

最近は、基幹系システムのリプレースでドメイン駆動設計を使いたい、という話も多く来ている
すごく難しいけど、やりがいもあるし面白い

オブジェクト指向モデリングのワークショップでモデルを書こうとすると、みんな、フレームワークが前提でモデルを書いてしまう
ドメインの外側ばかり話している
肝心のドメインをプログラミングしようとすると、意外に誰も書けない
まずは値オブジェクトから始めよう
みんな、値オブジェクトでプログラミングできない
増田さんのオブジェクト指向モデリング本「現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法」は、値オブジェクトから書こうとしているのでお勧め

intやStringのデータ型だけではトランザクションスクリプトみたいに書いてしまう
値オブジェクトが大事
オブジェクト指向では、Immutableな値オブジェクトから始まる
関数的プログラミングとも相性がいい
ドメインに特化してプログラムを書こうとすると、必ず値オブジェクトから始まる
値オブジェクトの設計がオブジェクト指向モデリングの最初の登山口

エンティティを重視するとデータモデリングになってしまう
手続き型プログラミングで、でかいエンティティを書いて、長いトランザクションスクリプトを書くと失敗する
書いていて怖い
データモデリングとオブジェクト指向モデリングは違うと考えた方がいい

エリック・エヴァンスのDDD本「エリック・エヴァンスのドメイン駆動設計」に出てくる例では、OODBを使っていた
昔はデータのストアはOODBでいい、という感じだった
OODBでは性能が出ないので廃れた

業務の複雑さに関するデータのモデリングは、データモデリングの方が一日の長がある

1990年代にモデリングが盛んだったのに、現代ではモデリングが廃れたのは、モデリングが伝承されなかったからではない
むしろ、現代的な課題に対して、長年知られていたモデリング手法のこの部分は今も使えるが、この部分は今は使えない、という交通整理された本がほしいね

2010年代にピアソン本が絶版されたので古いオブジェクト指向モデリング本が手に入らなくなり、エリック・エヴァンスのDDD本「エリック・エヴァンスのドメイン駆動設計」だけが唯一残った
そのために、オブジェクト指向モデリングの歴史に断絶がある

メソッドは3個まで
それができない人は、クラス化、カプセル化が分かってない
入出力処理は手続き型になりやすい

顧客との対話では、UMLを普通に使う
ただし、アクティビティ図、コンテキスト図、データフロー図を使う場合が多い
システム要件に落とす時は、UMLをガンガン使う

要件定義でモックを作るときはHTMLを使う
最近はいい感じですぐにモックデザインが作れる
実データを画面で見せた方が早い

プロダクトオーナーとの対話では、RDRA2.0を使って話する時が多い
システム設計では、UMLを使っている
図を書くのが目的ではなく、会話や意思決定のために使っている

DDDのエンティティはミュータブル?イミュータブル?
Webならイミュータブルが普通でしょ
setter, getterと無関係なモデルにしている
イミュータブルが普通
エンティティに状態は持たせない
void実行でなく、新しい状態のオブジェクト、エンティティを別で返す
Webならイミュータブルが普通
エンティティの状態をSetして変更すると、バグが出そう
イミュータブルだからFreezeしているのでCloneする必要もない

アジャイル開発プロセスとモデリング作業の事例は?

モデリングでも、概念モデルのレベルでプログラミングを書く
合わせてDFDやER図を書く
事業分野の可視化はシステムで書きにくいので、シナリオ、バリューチェーンを書く
バリューチェーンで、どこのプロセスに差別化要素があるか、強みがあるか、を分析する
ビジネスを理解するモデリングとシステムとして動かすプロトタイプの2つを行き来している

増田さんのドメインモデルのサンプルが分かりやすい
パッケージ図でクラス図を分割して、HTMLで一覧にしている
さらに、ユースケースのシナリオからパッケージ図、クラス図まで一気通貫でHTMLにしている
軽量で明快なモデリング
ビジネスモデルとDFD・ER図をつなぎつつ、パッケージ図・クラス図で方にしてHTMLで見せている
増田さんのクラス図は値オブジェクトが中心
取引日、貸し出しも全てクラスになっている
増田さんにとって、モデル駆動とはドキュメント駆動のイメージ
ソースコードとモデルを行き来していて、モデルが自然にドキュメントになっている

Scrumで開発する時に、ユーザーストーリーマッピングを使う場合が多い
このメソッドを実装する時、このメソッドはこの要件から来ていて、この要件はユーザーストーリーマッピングのこの部分に対応する、と辿れる

【感想】
エリック・エヴァンスのドメイン駆動設計現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法を読むと、ドメインのソースコードが値オブジェクトになっている場合が多い。
その理由は、ドメインをプログラミングに注力しているから、と見ると分かりやすい気はする。
オブジェクト指向でプログラムを書くと、状態を持たせるエンティティが頻出して、バグが出やすい箇所はたいていその部分であり、デバッグしないと追跡できない場合が多いのを思い出した。

| | コメント (0)

2021/07/18

規模の経済から個人の能力重視へビジネスモデルが変化している

製造業からソフトウェアのビジネスモデル変換の鍵に、規模の経済から個人の能力重視の観点があるツイートを見つけて、なるほどと思った。

akipiiさんはTwitterを使っています 「すごく参考になる。規模の経済から個人の能力重視への変化」 / Twitter

r.ishibashiさんはTwitterを使っています 「この例えは良いな。 https://t.co/xLQjAuij1m https://t.co/17u8ZF9jgM」 / Twitter

(引用開始)
"シスコはスキルがスケール(規模)に勝った唯一の例だと考えていたが、そうではないのだ、と。シスコがうまく活かしているのは、一企業、一産業の枠を超えた大きなうねりなのである。  従来コンピュータや通信機器の分野で成功するには、数十億ドル規模の大型プロジェクトで大量のエンジニアをとりまとめ、さらに大量の労働者を管理して複雑な電子機器を製造することが必要だった。それをやれる能力が備わっていたから、 IBMや AT& Tは繁栄し、日本は技術集約型の成功を収めることができたのである。だが一九九六年の時点では、成功のカギを握るのはソフトウェアになっていた。そしてソフトウェアなら、大企業でなくても、頭の良い連中が何人かそろえば書き上げることができる。規模の経済から個人のスキルへ──これが、大きな変化のうねりだった。戦争の主流が、正規軍の衝突からゲリラ戦に移ったようなものである。"
― from "良い戦略、悪い戦略 (日本経済新聞出版)"
(引用終了)

以前読んだ記事で、スクラムは組織の仕組みで駆動するのではなく、メンバー個人の能力を重視して、個人のパフォーマンスで駆動しようとする内容を思い出した。

アジャイル開発とウォーターフォール型開発の違いについて再考: プログラマの思索

アジャイルとウォーターフォールは文化や価値観のレベルで異なるという話 - たなかこういちの開発ノート

ソフトウェアビジネスが主流になる以前は、設備やリソースなどの資本を集約することで、規模の経済を実現し、コスト削減メリットを活用するのが戦略の基本だった。
一方、ソフトウェアビジネスでは、人月の経験則の通り、プロジェクトメンバーが増えるほど生産性は限界逓減する。
つまり、少ない優秀なメンバーでソフトウェア開発をやり抜く方が生産性が圧倒的に高い。
そのやり方を実現した方法の一つがアジャイル開発であり、スクラムである、と捉えた方が、より真実に近づける気がする。

ブルーカラー労働者主体、事務処理主体のホワイトカラー主体の社会では、設備や人員を大量にかき集めて規模の経済で圧倒する戦略がビジネスモデルの基本だった。
一方、専門技術職のホワイトカラー主体の社会では、メンバー個人の能力をいかに活用できるか、が鍵を握るし、そのための労働環境づくりが大事になってくる、というストーリー。

規模の経済については以前、色々考えていた。
今でも事業を発展させていくと、必ず規模の経済に即した経営戦略を取らざるを得なくなるが、一方でソフトウェアビジネスを生業にする場合は、スクラムのような個のスキルで駆動する開発スタイルを取り入れるべきという考え方も持っておきたい。

ビジネスの基本戦略には規模の経済があるのではないか: プログラマの思索

規模の経済と経験曲線効果のメモ: プログラマの思索

ソフトウェアの複雑性は本質的な性質であって偶有的なものではない: プログラマの思索

| | コメント (0)

2021/07/11

組込ソフトウェア開発のための3部作「構造化モデリング」「オブジェクト指向モデリング」「リバースモデリング」を読んでいて楽しい

組込ソフトウェア開発のための3部作「構造化モデリング」「オブジェクト指向モデリング」「リバースモデリング」を読んでいて、面白いのでメモ。
10年以上も前にかおるんさんは既に読破されているので参考にしている。

【参考】
読了・組み込みソフトウェア開発のためのオブジェクト指向モデリング - ブログ@kaorun55

読了・組込みソフトウェア開発のための 構造化モデリング - ブログ@kaorun55

【1】上記のブログでは、「組み込みとしては、やはりこちら(構造化)の方がしっくりくる。なんとなくオブジェクト指向の方は無理をしている気がしてならない。」という感想がある。
オブジェクト指向モデリング」よりも「構造化モデリング」の方がしっくり来るらしい。

一方、僕は、構造化設計の技法は、データフローダイアグラムとかSTS分割のような古い技法に違和感があって、むしろ、オブジェクト指向設計の方針でクラス図、シーケンス図、状態遷移図からモデルを作り出す方がしっくり来る。
だから、「構造化モデリング」よりも、「オブジェクト指向モデリング」の方が、読みやすく感じた。
なぜなら、オブジェクトで考える方がレイヤ化設計、状態遷移図などのモデルを自然に組み立てられる気がするから。

【2】たとえば、組込みSW開発の経験はゼロだが、組込みSWのモデルをユーザ視点の業務ロジック層と、物理法則やセンサーから検知した情報の制御を含む制御層の2つに大きく分けてモデルを組み立てる方針の場合、オブジェクト指向設計の方がパッケージでソフトェアを分割してレイヤ化しやすい利点があると思う。

以前、astah関西で、高井さんがSysMLを使う利点として、熱力学など自然科学の専門家、自動車や家電機器などの業務の専門家、ハードウェアの専門家、そして組込みSWを開発するプログラマの4種類の人達が、SysMLを通じてコミュニケーションできるようになった、という話もあった。

第2回astah関西の感想 #astahkansai: プログラマの思索

また、状態遷移図とは、一つのオブジェクトに着目してその状態が遷移した過程を表すので、クラス図で洗い出したオブジェクトから自然に状態遷移図で考えるように仕向けられる。

組み込みソフトウェアの根本問題~対象物の状態遷移を記述できれば、制御が可能だ: プログラマの思索

【3】興味深いのは、組込みSW開発の要件定義で重要な成果物として、ユーザ視点のユースケース分析だけでなく、イベントリストも挙げられている点だ。
たとえば、「構造化モデリング」「オブジェクト指向モデリング」の例では、電気ポットのソフトウェア要件定義で、ユーザがお湯を沸かすときのイベントだけでなく、ポットの水位やポットのお湯の温度の変化がトリガーとなるイベントも洗い出されている。
考えてみれば当たり前だが、アクターとして、ポットの購入者という利用者だけでなく、ポットという機械を構成するセンサー部品(水位の検知、温度の検知)もアクターになるわけだ。
つまり、組込みSW開発では、アクターの種類が多いので、コンテキスト図を最初に描くのが割と重要と気づいた。

【4】もう一つの「リバースモデリング」は読みかけだが、よくある事例な気がして、興味深く読んでる。
レガシーな業務システムと同じく、組み込みソフトウェアもレガシーになると、設計書はなくなっていて、動くソースコードが仕様そのものになっている。
しかし、数千行、数万行、数十万行のソースコードから本来の設計思想を汲み取って開発するのは至難の業だ。
たとえば、工場の生産ラインとか、長年使われている機械部品とか、そういう例があるのだろう。

リバースモデリング」では、レガシーと化したソースコードからリバースして、モデルを抽出し、本来のあるべきモデルを描き出し、そこから仕様変更や改修を手がけていく、というストーリー。
なかなかうまく行かないだろうが、色んな技法を駆使して、リバースしたモデルを洗練させていくのは面白い。
今なら、XDDPと組合せてやるだろうか?

【5】残念なことに、組込ソフトウェア開発のための3部作「構造化モデリング」「オブジェクト指向モデリング」「リバースモデリング」は、「構造化モデリング」以外は絶版になっている。
3部作全てが復刊されるといいなと思う。


| | コメント (0)

テストカバレッジの目標値はどれくらいの値が良いのか

テストカバレッジの現状について記事を漁ったので、リンクをメモしておく。

【参考】
Google Testing Blog: Code Coverage Best Practices

テスト駆動開発で品質は上がるのか。Googleの事例などを参考に考察。 - サックルMAGAZINE

Ericssonの『ユニットテストカバレッジの神話』を読んでみる - ソフトウェアの品質を学びまくる2.0

コードカバレッジでのブランチカバレッジとデシジョンカバレッジは何が違う?|Tsuyoshi Yumoto|note

ホワイトボックステストの必須知識! コードカバレッジをご紹介! | Qbook

カバレッジ(網羅率)分析とは | ソフトウェアの検証の種類 | テクマトリックス株式会社

カバレッジ - MATLAB & Simulink

過信は禁物!コードカバレッジの種類と落とし穴 | Qbook

グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか? - Publickey

テストカバレッジ100%を追求しても品質は高くならない理由と推奨されるカバレッジの目標値について - Qiita

Martin Fowler氏のテストカバレッジ

Analyzing statement coverage at Google

テスト自動化は品質向上に直接的に役立つ。
特に、既存機能への回帰テストでは重要な役割を果たす。

Redmineでは、テストカバレッジの一覧が下記で公開されている。
全てのソースが100%ではないが、いつでも回帰テストを実行できるからこそ、高品質を維持できて、10年以上も世界中の開発者に利用されてきたのだと思う。

Redmine code coverage

では、テストカバレッジの目標値はどれくらいの値が良いのか?
ほどほどによい目標値はどれくらいなのか?

GoogleTestBlogではこんな説明がある。

・Googleでは、60%を「許容可能」、75%を「推奨」、90%を「例示的」という一般的なガイドラインを提供しています。
・90%のコードカバレッジから95%に到達する方法に執着するべきではありません。
・プロジェクト全体で90%を超える目標は価値がない可能性が高いですが、コミットごとのカバレッジ目標である99%は妥当であり、90%は適切な下限しきい値です。

Analyzing statement coverage at Googleによると、
「C0(命令網羅, Statement Coverage) 目標値 85%+」らしい。

Martin Fowler氏のテストカバレッジによると、
「カバレッジ(C0?、C1?)の目標値 85% - 99%」らしい。

テストカバレッジ100%を追求しても品質は高くならない理由と推奨されるカバレッジの目標値について - Qiitaでは「クリティカルなコードではない限り、カバレッジ(C0 / C1)の目標値は 85%程度 に設定すべきである。」とあった。

85%程度が一つの閾値のようだが、定理や法則のようにどこでも使えるものではない。

テストカバレッジの目標値は高ければ良いわけでもない。
しょせん単体テストレベルなので、元々の機能設計のミス、要件漏れは発覚できない。
C2のコンディションカバレッジでは、禁則になる組み合わせも多いから、意味ある組合せだけを特定して、大量の組合せのパスをテストするのは、工数の割に無駄も多い。

今なら、テストカバレッジの目標値を指定したら、AIでテストコードを生成して、実際に回帰テストを実行して、目標値以上になるように実現してくれるのではないか、と勝手に夢想している。

AIを活用した次世代テスト自動化ソリューション「mabl」の 販売パートナーシップ契約締結のお知らせQA活動を効率化、サービスやプロダクトの品質向上を推進|ニュース|ソフトウェアテスト・第三者検証のベリサーブ


| | コメント (0)

2021/07/04

マッキンゼーの報告書「2030 日本デジタル改革」が手厳しい


マッキンゼーの報告書「2030 日本デジタル改革」が手厳しいと感じたのでラフなメモ。
【参考】
2030年に向けた日本のデジタル改革 | McKinsey
ホームページ | Digital Japan 2030
2030 日本デジタル改革~デジタル競争力と生産性を向上させるための大胆な一手
ソフトウェアの政治的影響力とは何だろうか: プログラマの思索
みんなのPython勉強会#65の感想~社会変革の鍵はIT技術者にあるのかもしれない: プログラマの思索
デジタル庁が解くべき課題とITエンジニアの役割の勉強会の感想~CTOの役割とは何ですか?: プログラマの思索
プログラマとスクラムが社会実装を変えていく #Findy_GovTech: プログラマの思索
デジタル庁が解くべき課題とITエンジニアの役割の勉強会の感想~CTOの役割とは何ですか?: プログラマの思索
【1】2030 日本デジタル改革~デジタル競争力と生産性を向上させるための大胆な一手によれば、日本と世界の対比は下記になる。
日本 → 世界
デジタル競争力 27位 → 米国:1位
デジタル人材割合 1% → 米国:3%
ソフトウェア関連プログラムを開講する大学の数 29 → 米国 117
行政: デジタル行政アプリを使用する市民の割合 7.5% → エストニア:99%
スマートシティランキング - IMD 79位 (東京) → シンガポール:1位
モバイルバンキング浸透度 6.9% → 中国35.2%
ITコストに占めるクラウド割合 3% → 米国10%
時価総額のスタートアップ割合 1% → 米国31%
ユニコーンの数5社 → 米国320社
(引用開始)
日本にとってデジタル化はもはや選択肢ではなく、必須である。最新の動向を見ると、日本のデジタル競争力が低下しているため、日本が世界第三位の経済的地位を維持することは不可能になるだろう。
2020年のIMD 世界デジタル競争力指数によると、日本の世界ランクは27位で、2015年と比べて4つ順位を落としている( 図表2)。
アジア経済において、日本のデジタル競争力は、シンガポール、香港、韓国、台湾、中国、マレーシアに次いで7位にランク付けされている。
他の国々は、デジタル化をいち早く推進するために懸命に取り組んできた。
香港はここ5年間で14位から5位に、韓国は18位から8位に、中国は33位から16位に、それぞれ世界ランキングを上昇させている。
(引用終了)
日本でもITを強化すべきだ、という議論は20年以上前からずっと言われてきた。
しかし、なぜ世界と比較すると、日本の地位は低いのだろうか?
ITコミュニティに参加している限り、日本のIT技術者も危機感を感じているし、実際に色々行動している人も多い。
ソフトウェアに関係する企業、従事者もそんなに少なくないはずだ。
この原因は知りたい。






| | コメント (0)

2021/06/26

PMBOKガイド第7版はアジャイルの観点へ大幅に内容が変わるらしい

PMBOKガイド第7版はアジャイルの観点へ大幅に内容が変わるらしい、という記事をメモ。
これが本当なら、昔のPMBOKで習得した知識は捨てて、新しいPMBOKで習得し直すくらいの激変と思う。

最新情報:PMBOKRGuide 第7 版 への変更について - JPSビジネスカレッジ

あきやま??さんはTwitterを使っています 「PMBOKの第7版が大幅に変更されるとTLで読んで、変更ポイントをググったら、プロセス重視からアジャイル的な方法へシフトしたということなのかな。よき。 https://t.co/aPO0o7siVG」 / Twitter

akipiiさんはTwitterを使っています 「PMBOKも10の知識エリアから8つのパフォーマンスドメインへ、成果物から価値へ変更されるのか。今までの知識は古くなるな。最新情報:PMBOKRGuide 第7 版 への変更について - JPSビジネスカレッジ https://t.co/Rq1ycVgO8i」 / Twitter

「PMBOKガイド 第7版への変更のポイント」を読むと、QCDのコントロールを基盤とした予測アプローチから、不確実性のもとで価値提供を重視したアプローチに変わるらしい。
気になる変更箇所は下記がある。

・これまでのようなプロセス重視ではなく、原理・原則(プロジェクト・マネジメント・プリンシプル)に基づいて再構成される。
・インプット・ツールと技法・アウトプットの記述がなくなり、大幅にコンパクトになる。
・成果物ではなく、価値(価値提供)に焦点が当てる。
・”10の知識エリア”が、”8つのパフォーマンスドメイン”に変わる
・”5つのプロセス群”が、”プロジェクトの提供における12の原則”に変わる

PMBOKといえば、5つのプロセス群、10個の知識エリアが有名だった。
それが全てなくなるらしい。どんな内容に変わるのか、結局本を読まないと分からない。

PMBOKといえば、有期限のあるプロジェクトのQCDをいかに守って、予実管理をベースに予測可能な状態へコントロールしていくPJ管理手法のイメージだった。
PMBOKの技法を読んで実践してみると、プロジェクト計画フェーズに感覚的に8割以上の労力を注いで緻密に計画して、そこから予実管理で差異分析しながらQCDを守っていく感じ。
だから、請負契約でソフトウェア開発を行う場合、PMBOKの手法は発注者のプロマネにはとても相性が良く、一連の知識体系が揃っていて役立っていたと思う。

しかし、コロナ禍の時代では、1年先、いや今ではオリンピック終了後の3ヶ月先の予測すら難しい。
いくらプロジェクト計画を緻密に作った所で、こんな時代ではすぐに現実に対応できなくなる。

だから、「第7版は、このような様々な変化に対応し、先を見越した、革新的かつ機敏な対応ができるような柔軟性を与えることを目的とし、プロジェクトに携わる人々が、予測的アプローチ、アジャイルアプローチ、適応的アプローチ、ハイブリッドアプローチなど、各プロジェクトに適したアプローチをより柔軟に選択できるようになります」という方向に変わるらしい。
PMBOKをまとめた人は本当にすごいと思う。
この記事だけでは当然全くわからないので、一度読み直してみたい。

特に直近1年間、自分が持っていた経験や知識があっという間に古くなっていると痛感する。
アジャイル開発もPMBOKも品質管理も、もちろん他の分野も急激に何かが変化している気がする。
この時代の変化に追随していくために、色々調べてみる。

(1) Yuji SakataさんはTwitterを使っています 「これ日本のPMの人、どうすんの的なところある」 / Twitter

(1) akipiiさんはTwitterを使っています 「@Bondra PMBOKから、今までのプロマネが習得したであろう、10個の知識エリア、5つのプロセス群が全てなくなります。PJ管理のバイブルの内容が一夜にしてガラリと変わってしまった感じなのですが、現場のプロマネはどうするのでしょう??」 / Twitter

| | コメント (0)

アジャイル開発で日本の品質技術をどこで活用すべきか #jasstkansai

JaSSTソフトウェアテストシンポジウム-JaSST'21 KansaiをOLで聞いている。
誉田さんの品質重視のアジャイル開発の講演がとても良かったので、ラフなメモ。

【参考】
JaSSTソフトウェアテストシンポジウム-JaSST'21 Kansai

akipiiさんはTwitterを使っています 「誉田さんの品質重視のアジャイル開発の講演は良かった。アジャイル開発の中で、日本の良さを活かせる箇所はあるしそこに特定して注力すべき、というメッセージを受け取った。日本はアジャイル開発が遅れているので、励まされる。 #jasstkansai」 / Twitter

【1】アジャイル開発が日本に浸透しない理由は、「多重下請け構造に慣れたおじさん技術者が多いのでそう簡単に変化しない」ことに尽きるのではないか。

akipiiさんはTwitterを使っています 「アジャイル開発は自己組織化を重視しすぎ、という意見は同感。日本の現場では「多重下請け構造に慣れたおじさん技術者」が多いのでそう簡単に変化しない。簡単なのは、人を入れ替えるしかないんじゃないかな。 #jasstkansai」 / Twitter

アジャイル開発のチームは、リーダーがおらず、全員が自律的に動く。
しかし、日本のSIは多重下請け構造が一般的なので、発注者、プロマネ、下請け開発者という階層構造が当たり前。
ソフトウェアの請負契約がそういう縦割りの組織文化をさらに助長させて、ソフトウェア開発に悪影響を与えている。

DXは組織論である」からには、組織文化を変えるだけでなく、その組織文化を生み出す組織構造を壊さなければたぶん治らない。
実際は、年を取るほど新分野を勉強して成長するのが難しいので、人が育つのを1年も2年も待つのは難しい。
今の時代で、ビジネスはそこまで待てるのだろうか??
人を入れ替えるしかないのかもしれない。

cobaltさんはTwitterを使っています 「新人だけで構成されたアジャイルチームが失敗するのは自明では? 成熟したチームに育成目的で新人を入れる方が将来的に良いと思う。 #jasstkansai」 / Twitter

【2】アジャイル開発に日本の品質技術をどこで活用すべきか、について、本当によく考えられていると思った。

akipiiさんはTwitterを使っています 「品質重視のアジャイル開発の肝は、Doneの定義=出荷判定とみなす点と思う。そうすれば、日本の品質技術を適用しやすいし、メトリクスによる定量化も可能になる。 #jasstkansai」 / Twitter

欧米発のアジャイル開発をそのまま取り入れても、たぶん日本ではうまく行かない。
アジャイル開発の肝は、マネジメント系プラクティスよりも技術系プラクティスをどこまで徹底させるか、にあると思う。
マネジメント系プラクティスはたぶん、日本人も理解しやすい。
しかし、実際にアジャイル開発の開発基盤がなければ、ソフトウェア開発で結果を出していくのは難しい。

誉田さんの講演では、Doneの定義=出荷判定とみなすことで、従来の日本が誇る品質管理技術を活かせるようにした点に意義があると思う。
そうすれば、バグの原因分析、なぜなぜ分析、レビューの徹底、XDDPなどいろんな技術をアジャイル開発に適用しやすくなる。
品質をプロダクト品質、プロセス品質に分解し、日本の品質技術がどこに当てはめられるか、どのような効果が得られるか、を明示したのもわかりやすかった。

XPが生み出したTDD、CI、CD等の技術プラクティスに、日本の品質管理技術を組み合わせれば、日本の独自性も生み出せるだろう。

アジャイル開発で日本の品質技術を適用できれば、データによる定量化と統計的予測、統計的品質管理の技法を活用できる。
アジャイル開発に統計的品質管理を当てはめられたら、色んな知見が得られそう。

【3】しかし、アジャイル開発に統計的品質管理を安易に適用しても上手くは行かない。
理由は、アジャイル開発のメトリクスは相対値が多いので、定量的に比較しようがない。
また、アジャイル開発の文化として、メトリクスを自分たちチームの会話に使うので、メトリクスを第三者への説明に使う発想がないし、メトリクスが独り歩きして自分たちの行動を縛るのは嫌う。

akipiiさんはTwitterを使っています 「ストーリーポイントは自分たちのチームの会話に使うものです、と言う回答は思わず膝を叩いた。そう、自分たちのためであり、第三者への品質保証のためではない。 #jasstkansai」 / Twitter

この辺りは、昨今のSaaSみたいに、開発者がソフトウェア開発を行っている行動を自動的にログとして透過的に採取する仕組みを使えばいいと思う。
現代では、ビジネスや人の行動のログは、自動的に採取して、その大量データをAIで分析して活用する仕組みが当たり前だから。

akipiiさんはTwitterを使っています 「メトリクス収集はアジャイル開発で嫌われる問題点はあるが、Webログ採取みたいに、開発者が普通に会社で働いていれば自然に取れるようにすればいい。労働時間、工数は必ず取るし。 #jasstkansai」 / Twitter

【4】アジャイル開発を日本のチームが取り入れたとき、もっと技術系プラクティスを重視すべき、というメッセージは非常に重要と思う。
なぜなら、従来の開発者はテスト駆動開発とか継続的インテグレーションとか、割と使っていないからだ。
特にテスト自動化の技術が疎いように思う。

そして僕自身もこの辺の知識が古くなっていると痛感している。
テスト自動化の技術はここ10年でかなり深化して広がっていると思う。

テスト自動化だけでなく、テスト管理ツールや品質管理ツールも急激に進化して変わっている。
この辺りはもっと調査していく。

TestRailの感想: プログラマの思索


| | コメント (0)

2021/06/23

DXとは組織論である

DXとは組織論である、と思った。
適当なラフなメモ。

【参考】
最近読んだ本 - ブログ@kaorun55

(引用開始)
3月、4月くらいからいろいろ本を読み始めました。
主に人、組織、技術の実装あたりです。
最近はHoloLensの土台としてのDXの必要性を感じているのですが、DXは実際には組織論だと考えていて、自分の組織含めて組織の考え方について触れるようにしています。
(引用終了)

DXとは「1980年代の呪縛」を解き放つこと|市谷 聡啓 (papanda)|note

(引用開始)
あるミーティングで、何気ない流れの中である人が言った「DXとは組織を変えることだ」と。その言葉が特に何の違和感も、言い過ぎ感もなく、その場で受け止められて、皆の血肉となるよう消化されていく。凄い時代を迎えたと思った。
組織を変える。経営からマネジメント層、現場まで、気負いなくその言葉があげられる。もちろん突きあげられるような危機感とともに、その言葉が口にされる組織もある。いずれにしても、単なるフレーズではない。大いなる共通の目標となっている。
(引用終了)

kaorunさん、市谷さんのBlogをたまたま読んで、2人とも同じような意見「DXとは組織論である」を書かれていた。
2人ともすごい方だが、同じような問題意識を持っている点に興味を持った。
たぶん、今のコロナという時代では、心あるIT技術者は、DXの本質は何だろうか、と考えているのではないだろうか?

僕は、「DXとは組織論である」という意見は2つのコンテキストを持っていると考える。
1つは、ソフトウェア開発に向いた組織構造は何か?という問い。
もう一つは、ユーザ企業の情報システム部門が、社内の業務システムを一括コントロールするためにはどんな組織形態や運用制度が必要なのか?という問い。

前者は、逆コンウェイ戦略の観点の話になる。
つまり、アーキテクチャは組織に従う、というコンウェイの法則によって、ソフトウェアはどんどん複雑化して肥大化して手に負えなくなるのだから、それを逆手に取って、ソフトウェア・アーキテクチャを開発チームが制御できるように、アーキテクチャに合った組織構造を作ってしまえ、ということ。
最終的には、スクラムチームを作ることと同義。
それは、単なるソフトウェア開発チームだけでなく、全ての部署がスクラムチームになることと同義。

逆コンウェイ戦略のメモ~望ましいアーキテクチャを促進するためにチームと組織構造を進化させる: プログラマの思索

マイクロサービスアーキテクチャはなぜ最近になって注目されるのか~マイクロサービスは組織論の側面も持つ: プログラマの思索

しかし、従来の製造業のビジネスモデルに適した組織構造では、ソフトウェア開発に適した組織構造がとても作りにくいのだ。
そして、ソフトウェア開発に向いた組織文化は、従来のビジネスモデルに適した組織文化と全く異なるので、そのまま組織を作っても、組織文化をトップダウンで適用してもうまく行かない。
「文化は構造に従う」「アーキテクチャは組織に従う」経験則に縛られてしまう。

だから、ソフトウェア開発に向いた組織を作るには、出島を作ったり、関連子会社で別会社にするとか、そういう携帯にならざるを得ない。

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

後者は、今の日本政府のデジタル庁で悪戦苦闘している問題点と同一と思う。
日本の大企業はどこも、皮を剥いで中身を見れば、事業部制組織という中小企業の連合体になっている。
だから、プロフィットセンターである事業部が利益に物を言わせて、自分たちの好きなように業務システムをどんどん社内に勝手に作った結果、数多くのメインフレームがまだたくさん稼働した状態で蛸壺となってしまって、コストセンターである情報システム部門はそれらを制御する権力もなく、社内のシステムが野放図になって、IT統制もできていない、みたいな感じ。

今まさに、もう一度、情報システム部門が全ての事業部から業務システムを取り上げて、決められた予算や今後の経営戦略に従って、システムの新規開発やリプレースのロードマップを計画し、セキュリティ面や個人情報保護、コンプライアンスも含めた観点で作り直そうとしている、みたいな感じ。
本来であれば、もっと以前から、メインフレームは撤廃して2025年の崖の問題はとうの昔に片付けて、オープンなアーキテクチャを元に、守りの業務システムよりも、ビジネスに直結するシステムを開発してどんどんビジネスを拡大させていく、みたいなイメージでやりたい。

しかし、デジタル庁の問題も同じく、今まさにそういうことを、地面0メートルの所から巨大なビルを作り出そうとしているわけだ。
たぶん、どこの日本企業も、レガシーなメインフレームの業務システム、あるいは、古すぎてセキュリティ上危ない業務Webシステムをたくさん抱えて、二進も三進も行かなくなっている。

僕は、DXとは、既存ビジネスを持つユーザ企業が、ソフトウェアを根幹としたビジネスモデルを構築して変革していくことと思っている。
そのためには、結局、古い数多くの社内システムを一括コントロールし、捨てるべきシステムは捨てて、システム保守に多額のコストを払うのではなく、売上拡大につながる新たなシステムへ投資できるように、経営判断を促す仕組みを作るべきだ。
そういうことが求められているのだろうと思う。

IPAがDXのパターン・ランゲージを公開している~新しい組織文化が新しい経営戦略を生み出す: プログラマの思索

「ソフトウェアが世界を飲み込む理由」「ソフトウエア、それが問題だ」の記事のメモ: プログラマの思索

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

デジタルトランスフォメーションとはソフトウェア企業になることを意味する: プログラマの思索

マイクロサービスアーキテクチャはなぜ最近になって注目されるのか~マイクロサービスは組織論の側面も持つ: プログラマの思索

ソフトウェアが世界を動かす時代: プログラマの思索

| | コメント (0)

TestRailの感想

人類よ!これがテスト管理ツールだ!テスト管理ツール天下一武道会がついに開催! - connpassを視聴してみて、最近のテスト管理ツールについて興味を持った。
ラフなメモ。

【参考】
人類よ!これがテスト管理ツールだ!テスト管理ツール天下一武道会がついに開催! - connpass

テスト管理ツール TestRail | ソフトウェア品質保証 | テクマトリックス株式会社

そうだ TestRail を使ってみよう。 - Qiita

TestRail 入門 [TestRail Documentation]

10年前にTestLinkを一通りいじくり倒した経験があるので、テスト管理ツールの良し悪しは知っているつもり。
今回のイベントで、有償のテスト管理ツールのTestRailに興味を持った。

TestRailの良い点は、UIがとても使いやすいこと。
マニュアルがなくても、テストケースを作ったり、テスト結果のOKやNGを登録したり、サマリを見る、とか、直感的に操作できる。
テスト管理ツールはどれも、複雑な操作が割と多くて使いにくい。
だから、使いやすいUIはとても重要。

もう一つは、TestRailは外部接続APIが豊富なこと。
デモでは、TestRailsでAutomation機能を有効にした後、mablで自動テストを実行させて、その結果をTestRailに登録し、結果がNGならBacklogに起票して、その通知をSlackに流す一連の操作が、全て自動化されていた。
TestRailのREST APIを使って、Pythonスクリプトで操作したらしいが、こういう一連の自動テストの実行と結果の記録、バグチケットの起票、チャットへの通知はよくある利用シーンなので、とても面白い。

最近は、テスト自動化がかなり当たり前になってきた状況もあるので、ビジネスロジックのxUnitをJenkinsで定期実行して、その結果をTestRailに記録させる、とか、UIテストの自動化ツールmablを使う、とか、色んな利用シーンがある。
テストでは、バグチケットの起票、テスト結果の通知はできるだけリアルタイムに共有したいので、こういう一連の操作が自動化できる方が断然良い。

開発プロセスの改善という観点では、チケット管理システムの分野は既に当たり前になってきているが、テスト管理の部分はまだ未開拓の分野が多いように思う。
だからこそ、数多くの有償ツールが出回って、いろいろアピールしているのだろうと思う。
この辺りは、調べて見る価値はありそう。

| | コメント (0)

より以前の記事一覧