メタエンジニアリングと管理技術と品質マネジメント

## 1. はじめに
[技術書典](https://techbookfest.org)17の新刊、[メタエンジニアリング 【第2版】 技術広報・採用・組織開発による個人と組織の支援](https://techbookfest.org/product/1Vu6ceKBjEWu6Bv4WcBhYs)（塩谷啓（[@kwappa](https://twitter.com/kwappa)）・著）を拝読し次のような感想をツイートをしましたがもうちょっと書き足したいと思います。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">QMファンネルにおけるQAエンジニアの「組織能力を高めるエキスパート」の役割とメタエンジニアリングは重なる部分があるなーと思いながら読みました。<br><br>河童書房 | メタエンジニアリング 【第2版】 技術広報・採用・組織開発による個人と組織の支援<a href="https://twitter.com/hashtag/%E6%8A%80%E8%A1%93%E6%9B%B8%E5%85%B8?src=hash&amp;ref_src=twsrc%5Etfw">#技術書典</a><a href="https://t.co/hNV0EP6P42">https://t.co/hNV0EP6P42</a></p>&mdash; ka’s (@pbjpkas) <a href="https://twitter.com/pbjpkas/status/1858079491693912292?ref_src=twsrc%5Etfw">November 17, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

## 2. メタエンジニアリング
メタエンジニアリング 【第2版】よりメタエンジニアリングの解説を以下に引用します。

> エンジニアの業務領域には、設計・開発や運用・保守といったエンジニアリングそのもののほかにも、さまざまなタスクや課題が存在します。「メタエンジニアリング」とは、それらのタスクや課題をエンジニアリングに関する知識や経験を活かして改善・解決することで、エンジニアとエンジニアリング組織の生産性を向上する取り組みのことです。（p.2）

> メタエンジニアリングの活動領域は、大きく「技術広報」「採用」「組織開発」の3つに分類されます。（p.7）

> エンジニアリング組織の技術的な取り組みや成果を外部に発信することで、組織そのものとそこに所属するエンジニア個人、さらには提供しているプロダクトやサービスへの認知を獲得し、信頼感を向上するのが「技術広報」です。（p.9）

> エンジニアリング組織にとって必要な技術と経験、そして人物像をそなえた外部のエンジニアを迎え入れることで、組織の力を高めていくのが「採用」です。（p.10）

> 「技術広報」と「採用」に含まれないが、エンジニアリング組織の生産性を向上するために必要ななにもかも、が「組織開発」です。（p.11）

> メタエンジニアリングは、エンジニア個人とエンジニアリング組織の生産性を向上するのが目的です。・・・エンジニアとエンジニアリング組織の成長に投資することでソフトウェア開発の質とスピードが向上し、その結果として事業に貢献する。これが投資としてのメタエンジニアリングの取り組みに期待される結果です。（p.38）

## 3. 管理技術と品質マネジメント
メタエンジニアリングの解説から「エンジニアリング―固有技術」、「メタエンジニアリング―管理技術」と対応付けられるように思いました。[基礎から学ぶQMSの本質　第8回　技術と管理のどちらが重要か(2016-3-14)](https://www.tqm9000.com/news/2016/03/14/qms_iso_skill_control/)より、固有技術・管理技術の解説を引用します。

> 「固有技術」とは、提供する製品・サービスに“固有な”技術という意味である。固有技術には、製品・サービスに対するニーズにかかわる知識・技術、製品・サービスの設計にかかわる知識・技術、実現・提供にかかわる知識・技術・技能、評価にかかわる知識・技術・技能などがある。
>
> 「管理技術」とは、固有技術を支援し、目的達成のための業務を効果的・効率的に実施できるようにし、またさまざまな運営上の問題を解決していくために有効な技術・方法のことをいう。組織運営の方法、品質マネジメントや原価管理などの仕組みと運営、標準手順やマニュアルの設定と運用、ＱＦＤ（品質機能展開）、問題解決法、統計的方法などの手法・技法は管理技術の例である。固有技術は「製品・サービスに固有の技術」、管理技術は「固有技術を生かすための技術」と言うことができる。

また、メタエンジニアリングは顧客満足や品質向上を直接の目的に掲げてはいないもののソフトウェア開発の質とスピードの向上を以って事業に貢献することをスコープに含めています。エンジニアリング組織において品質向上に取り組むのはQAファンネルやQMファンネルにおけるインプロセスQAが近いように思いました[^01]。

品質マネジメントシステム（QMS）のモデルの一つである[JIS Q 9005:2023 品質マネジメントシステム―持続的成功の指針](https://webdesk.jsa.or.jp/books/W11M0090/index/?bunsyo_id=JIS+Q+9005%3A2023)（以下、JIS Q 9005:2023）を参照しながらメタエンジニアリングと品質マネジメントを見比べていきます。

:::note
JIS Q 9005:2023は本文42ページ（表紙や目次、本文、付属書A～E、参考文献、解説など全部合わせて96ページ）とコンパクトなぶん高密度です。JIS規格票になじみがない場合は[JIS Q 9005:2023 解説と活用ガイド 経営・事業の持続的成功を実現する品質マネジメントシステム](https://webdesk.jsa.or.jp/books/W11M0100/index/?syohin_cd=330690)や[現代品質管理総論（飯塚悦功・著）](https://www.asakura.co.jp/detail.php?book_code=27566)から読み始めるのもおすすめです。
:::

:::note
JIS Q 9005:2023とQAファンネル、QMファンネルの関係は[QAファンネル・QMファンネルを読み解く](https://qiita.com/pbjpkas/items/4fe834b7768f1f8143a3)をご参考ください。
:::

### 3.1 技術広報
技術広報はJIS Q 9005:2023の次の条文を具体化したものといえます（強調筆者）。

> 6.5 コミュニケーション
> 組織は，品質マネジメントシステムの実施，維持，並びに継続的な改善及び革新のための，また，説明責任を果たすための，組織内外におけるコミュニケーションのプロセスを，次の事項を考慮して確立することが望ましい。
> （略）
> ― <b>顧客及びその他の利害関係者に対して，顧客価値及び社会的価値に資する積極的な情報発信を行う</b>とともに，リスクコミュニケーションを確実かつ迅速に行う。

技術広報のアウトプットの環境整備、活性化、促進、質の担保は、JIS Q 9005:2023の「6.6 学習」や「7.2.3 力量発揮の基盤」、「7.2.4 力量の開発」が関連すると思います。

### 3.2 採用
採用はJIS Q 9005:2023の「7.2.2 確保及び任命」に含まれる活動です。

> 7.2.2 確保及び任命
> 組織は，顧客価値及び社会的価値の提供ができる人々を確保し，必要に応じて力量を開発し，任命し，適材適所に配置するために，次の事項を考慮することが望ましい。

なお、解説表1で「旧規格では人材の獲得という表現が使用されていたが，採用段階だけに限定されるとの誤解を招き得ることから，確保に変更した。」とあり、あえて確保という用語を使用していることがわかります。

### 3.3 組織開発
組織開発はJIS Q 9005:2023の「6.2.3.2 価値提供のための運営基盤の整備及び推進」、「7.7 労働環境及び業務環境」、「7.8 財務資源」が関連するように思います。

2025/1/3追記
技術広報はそのプロセスに着目するとエンジニアによる固有技術の可視化、構造化とメタエンジニアリングによる標準化を以って組織開発をしているといえます。JIS Q 9005:2023の「7.4 知的資源」より標準化に関連する箇所を以下に引用します。

> 7.4 知的資源
> 7.4.1 一般
> 組織は，組織が必要とする情報並びに知識及び技術を認識し，獲得し，維持し，保護し，活用し，評価するためのプロセスを構築し，実施し，維持することが望ましい。
>
> 組織は，情報並びに知識及び技術を組織内外から獲得することに加え，個人がもつ情報並びに知識及び技術を共有化し，適用するための手順を確立し，実施し，維持することが望ましい。
>
> 組織は，デジタルインフラ（7.6 参照）を利用することによって，情報並びに知識及び技術の効果的かつ効率的な活用を促進することが望ましい。
> （略）
> 7.4.3 知識及び技術
> 組織は，知識及び技術を効果的かつ効率的に活用するために，次の事項を考慮することが望ましい。
> － 標準化，再利用及び共有
> （略）

標準化は現代品質管理総論 2.6 標準化―ベストプラクティスの共有や3.1.3 固有技術の可視化・構造化・標準化、[西康晴氏のソフトウェア開発における標準化に関するツイート](https://togetter.com/li/854602)も併せて読むと理解が深まると思います。

### 3.4 経営とメタエンジニアリング
品質マネジメントシステムはこれ自体が経営ツールです。以下にJIS Q 9005:2023の序文を引用します。

> 0 序文
> 0.1 一般
> 組織がその使命を果たし，競争優位を維持して持続的成功を実現するためには，組織の提供する製品・サービスの価値が顧客，社会及びその他の利害関係者に満足を与えることによって，組織の存在意義を高めることが不可欠である。
> 
> そのために，組織は，効果的かつ効率的に組織の総合的なパフォーマンスを継続的に改善し，顧客，社会及びその他の利害関係者のニーズ及び期待に応えて，価値を創造していくことが必要である。また，高い価値を創造し続けるためには，組織は市場のニーズの多様化，技術革新など組織を取り巻く事業環境の変化を迅速に察知し，対応することが必要である。
> 
> この規格は，変化する事業環境に組織が俊敏に適応するための品質マネジメントシステムのモデルを提供する。

## 4. 筆者の事例
### 4.1 技術広報
筆者が技術広報で思い浮かんだのは技報です。例えば拙著「[第一世代のQAエンジニア](https://techbookfest.org/product/9rxL2BNsWTXAFYBdK18m0G)」p.110でフロントエンドの評価項目の参考にさせていただいたのはシャープ技報第88号（2004 年4 月）の[地上デジタル放送におけるデジタル受信技術とフロントエンド評価技術](https://corporate.jp.sharp/rd/23/pdf/88-05.pdf)です。

○○評論、△△レビューなど必ずしも技報と銘打たれているとは限りませんがその企業の技術が論文形式で紹介されています（昨今は論文形式からWEBメディアへ転換を図る例もあります[^02]）。以下にいくつか技報を例示します。

- [日立評論](https://www.hitachihyoron.com/jp/)
- [東芝レビュー](https://www.global.toshiba/jp/technology/corporate/review.html)
- [三菱電機技報](https://www.mitsubishielectric.co.jp/corporate/giho/index.html)

筆者にとって技術広報は読み手の立場ですが、技術広報がその企業にプラスの印象をもたらすのは経験からもそう思いました。

### 4.2 スキルアップの支援、開発効率の支援
メタエンジニアリング【第2版】の5.1.1スキルアップの支援、5.1.3開発効率の支援として、第一世代のQAエンジニアの第16章、第17章で取り上げた静的解析ツールの導入・運用があります。

一般的に欠陥の摘出は工程が進むほど手間も工数もかかります。その点、静的解析ツールは実装工程で欠陥を見つけることができ、テスト工程で見つけるのと比べて開発効率の支援になります。また、欠陥摘出済みのソースコードを派生機種に流用することで内部品質が良い状態で派生開発をスタートでき、これも開発効率に貢献します。

スキルアップの面では、[ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2011.J02](https://web.archive.org/web/20221225181748/https://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf) p.39で静的解析の効果の一つに「開発中に学習することで欠陥を予防する。」が挙げられています。静的解析の主たる目的はソースコードの欠陥を見つけることですが、開発者にスキルアップをもたらし、以って欠陥の予防にもなります。

メタエンジニアリング【第2版】p.30でスキルアップの施策に必要なこととして制度の設計・運用、利用の周知・促進、予算の確保・執行が挙げられています。開発ツールに投資して成果を得るには開発者の継続的な利用が欠かせないため、開発プロセスにツールを組み込んだり毎年予算を確保して開発者が利用し続けられる環境を維持することに加えて積極的に利用してもらえるように働きかけるのも大事です。

「[「勝手に学ぶ人」と「期待されて学ぶ人」の差が埋められない](https://note.com/4bata/n/nf8fbcb832e91)」ではないですがツールを利用する機会をどう活かすかは開発者次第とはいえ、利用促進の一環でツールの勉強会を開催しベテラン開発者にどのように利用しているかをお話しいただいたときはベテラン開発者のスキトラも兼ねてよかったと思いました。

なお、メタエンジニアリング【第2版】p.38で「エンジニアの能力や成果を定量化することは難しく、その成長を定量化することはさらに難しい。つまりメタエンジニアリングの成果を定量化することはとても難しいのです。」とありますが、実際、学習効果の定量化は難しいです。開発中の学習でいえばツールに限らずOJTやコードレビューもあれば難易度の高いタスクを振られて急成長する、あるいは業務時間外のインプット、アウトプットなど様々な要素がありツールを通した学習が欠陥の予防にどれくらい役立っているかは定量的にはわかりません。とはいえツールを利用する機会がなければそういう話も出ず、学習の効果がわからないからゼロとみなすのは不適切です。

## 5. おわりに
JIS Q 9005:2023は顧客満足や品質向上のために取り組むと望ましいことが網羅・体系化されていますが抽象的でどのように実施するかはそれぞれの組織に委ねられています。一方、メタエンジニアリングは管理技術や品質マネジメントと重なる部分があり、かつ、JIS Q 9005:2023と比べると具体的で、自組織の品質戦略や品質マネジメント施策と見比べることで次のようなことがわかります。

- QA・品証部門で実施している、できている
- QA・品証部門では実施していないが組織全体では実施している、できている
- QA・品証部門、組織全体のいずれも実施していない、できていない

メタエンジニアリングを手掛かりにして重要ながらも手薄な施策を見つけて補うことで自組織の品質マネジメントシステムをより良く運用できる、そういう期待を持ちました。

[^01]: エンジニアリング組織とQAエンジニアの関係は「[QAエンジニアは社内の開発者から発掘するのも選択肢の一つ](https://qiita.com/pbjpkas/items/13fed0bc31865440c0a5)」や「[社会的価値への関わり方に現れるインプロセスQAとスプリットQAの違い](https://qiita.com/pbjpkas/items/9c6521ad134a37ad1d9a)」、「[グルーワークとQAエンジニア](https://qiita.com/pbjpkas/items/6a95dfbf67f210f4dee8)」もご参考ください。
[^02]: [『日立評論』冊子発行の終了について](https://www.hitachihyoron.com/jp/notice/20230825.html)