2026-04-08

AIとベテランの組み合わせが、ソフトウェア開発を変える


2025年6月に個人事業主として独立し、2026年1月に初めて確定申告(青色申告)を提出した。

組織を離れてつくづく感じるのは、サラリーマン時代には見えていなかったものが、独立するとよく見えてくるということだ。


会社はエンジニアの給料の「倍」を払っている

個人事業主になると、社会保険料を全額自分で払うことになる。健康保険、年金、それに消費税の申告まで。組織にいたときはほとんど意識していなかったが、これが想像以上に重い負担だ。

一般に、会社は社員に支払う給料の倍近くをさまざまなかたちで負担しているといわれる。月給50万円のエンジニアがいれば、会社の実質的な人件費は100万円前後になる計算だ。健康保険・厚生年金の会社負担分、交通費、福利厚生、オフィスコスト……それらをすべて合算すれば、社員一人を雇うコストがいかに大きいかがわかる。

ソフトウェア開発プロジェクトにエンジニアが10人いれば、それだけで月1,000万円が飛んでいく。1年続ければ1億2,000万円だ。

サラリーマンエンジニアはこの現実をほとんど知らない。自分の給与明細しか見えていないからだ。しかし経営者や独立した事業主の目線で見れば、人件費はプロジェクトコストの大部分を占める最大の変動費である。この非対称な認識が、後述する「なぜ組織はAI活用に遅れるのか」という問題の根っこにある。


ソフトハウスの利益構造はなぜ脆いのか

製造業と比較するとわかりやすい。

製造業は、設計・開発の投資を一度やり切ってしまえば、あとは設計図通りに量産するだけで利益が積み上がる。売れれば売れるほど一製品あたりのコストは下がり、利益率は上がっていく。もちろん、商品に魅力がなければ売れないし、営業も必要だ。しかし「仕組みが動いていれば利益が出る」という構造が製造業には存在する。

ところがソフトハウスは根本的に違う。利益を生み出す源泉はエンジニアそのものであり、エンジニアが手を動かさない限り、何も生まれない。受注が増えれば人を増やすしかなく、人が増えればコミュニケーションコストが増え、むしろ効率が落ちる。製造業のように「黙っていても利益が出る仕組み」が、ソフトハウスには存在しない。

メーカーはこれまで、製品を売ることで得た利益の一部を、新製品の開発費としてソフトハウスに支払うかたちで産業を回してきた。そのほとんどが人件費だ。ソフトハウスにとっても、エンジニアの稼働率こそが売上の源泉であり、人を増やすことが成長の唯一の手段だった。

この構造は長らく変わらなかった。しかしAIの登場によって、その前提が崩れ始めている。


大規模プロジェクトを、今やり直したら

前職では、大規模なクラウドサービスの開発を数年間にわたってPMとしてマネジメントした経験がある。プロジェクトの規模は相当なものであり、外注費の大半がソフトハウスへの人件費だった。

プロジェクトが大きくなるほど、打合せ・仕様確認・修正依頼のラウンドトリップが増える。関わるエンジニアやステークホルダが増えれば増えるほど、コミュニケーションコストが膨らみ、開発効率はどんどん落ちていった。これはソフトウェア開発の構造的な問題であり、当時はそれ以外の選択肢がなかった。

そのプロジェクトを、今のAIを使ってやり直せたなら——開発費は10分の1以下、期間は半分以下にできたと確信している。

これは感覚的な数字ではない。PMとして全工程を見てきたからこそ言える数字だ。もちろん、プロジェクトの規模や性質、ドメインの複雑さによって結果は大きく異なる。しかし少なくとも、コミュニケーションコストが支配的だった開発においては、この肌感覚には根拠がある。

実際、最近、個人事業として、データベース・バックエンド・フロントエンドを連携するWebサービスをClaudeを使って開発した。開発期間は約3週間、Claudeに使った費用は約300ドルだ。想定していた機能はほぼすべて実装できた。

このサービスを外部の開発会社に委託した場合の見積もりをAIに試算させると、「エンジニア1名体制で3〜5ヶ月、費用は約500万円」という答えが返ってきた。コミュニケーションコスト——打合せ・仕様確認・修正依頼のラウンドトリップ——が大きな時間的オーバーヘッドになるからだ。これが外注の現実だ。

ちなみに、WEBシステムのモックアップを作るのに、エンジニア数人で一ヶ月かかっていたものが、今ではAIに何を作りたいかをきちんと説明できれば1時間もかからずに出来上がる。これを実際に体験したとき、「この変化に対応できない組織は10年後に競争に負ける」と直感した。


AIを使いこなすのは「誰でも」ではない

ただし、誤解してほしくない点がある。

AIにコードを書かせるだけなら、確かに誰でもできる。しかしそれだけでは、システムはじわじわとデグレードしていく。修正指示を闇雲に出し続けると、AIは整合性を失い、コードは壊れていく。どれだけ優秀なAIであっても、的確な指示がなければデグレードは避けられない。

AIを使いこなすには、ソフトウェアエンジニアリングの基礎と、プロジェクト成功の経験が必要だ。要求仕様の定義、各種設計書の作成とアップデート、テスト計画、構成管理、チェンジコントロール——これらを的確に指示できなければ、AIは力を発揮しない。それどころか、指示の仕方次第でシステムを壊す存在になる。

デグレードを防ぐためには、設計書を作成し、常にアップデートしておき、AIに指示を出す前に「まずこれを読め、そのうえで進めろ」と釘を刺す必要がある。成功したソフトウェア開発のアプローチや、過去の失敗から得た教訓をAIにあらかじめ伝えておくことが、品質を守る唯一の方法だ。

つまり、人間のソフトウェアプロジェクトにおける成功と失敗の経験を持っていない人間には、AIへの的確な指示は出せない。AIは道具であり、使い手の経験値がそのまま出力品質に直結する。

逆に言えば、それがきちんとできていれば、開発効率は圧倒的に上がり、品質の高い設計ができる。AIは経験ある人間の思考を増幅させる道具として、これ以上ないポテンシャルを持っている。

ここで言う「経験」とは、単に年数ではない。ソフトウェア工学という、過去数十年にわたるエンジニアたちの叡智の結集を、どれだけ自分のものにしているかだ。

要求分析、アーキテクチャ設計、品質保証、リスク管理——これらはソフトウェア工学が長い試行錯誤の末に体系化してきた知識だ。AIはその膨大な知識を学習データとして取り込んでいる。しかし、AIが持つ知識を引き出し、正しい方向に使うためには、人間側がその体系を理解していなければならない。ソフトウェア工学を知らない人間がAIに指示を出しても、AIの能力の表面しか使えない。

筆者自身、30年以上にわたって組織の外のコミュニティで一流のエンジニアたちと交流を続けてきた。そこで培ったのは、特定の技術や言語の知識ではなく、「ソフトウェア開発とはどうあるべきか」という考え方の軸だ。その軸があるからこそ、AIへの指示が的確になる。AIは膨大なソフトウェア工学の知識を取り込んでいる。それを引き出せるかどうかは、指示する人間の側にかかっている。


AIと付き合う上での「失敗談」

AIを使った開発は順調なことばかりではない。実際に経験した落とし穴を一つ紹介しておく。

AIのコンテキストウィンドウ(一回のチャットで扱える情報量)は年々拡大しており、最新モデルでは数十万トークン規模になっている。しかし、開発が長期化するにつれて、膨大なやり取りの中から何が重要かをAIが適切に判断し続けることには、現時点では限界がある。不必要な情報が混在すると、肝心の指示への集中が乱れ、整合性の取れないコードを生成したり、すでに決まっていたはずの仕様を無視した実装をしてきたりする。

これを防ぐには、新しいチャットを適切なタイミングで始めることが重要だ。そのためには、これまでやってきたことのエッセンスを仕様書や作業ログとして記録しておき、新しいチャットの冒頭でそれを読み込ませるという習慣が必要になる。

これはソフトウェア開発における構成管理やドキュメント管理の重要性と、本質的に同じ話だ。人間のチームでも、引き継ぎ資料がなければ新しいメンバーはゼロから学び直すことになる。AIも同じだ。記録を残す習慣がないエンジニアは、AIを使っても同じ失敗を繰り返すことになる。


AIを過信してはいけない

AIの可能性を語ってきたが、同時にリスクについても触れておかなければならない。

AIはもっともらしい嘘をつく。これは比喩ではなく、LLM(大規模言語モデル)の構造的な特性だ。ハルシネーションと呼ばれるこの現象では、AIが存在しない関数を平然と使ったコードを生成したり、古いバージョンのAPIを正しいものとして提示したり、文脈を取り違えたまま実装を進めたりする。そしてその出力は、表面上は非常に「それらしく」見える。

経験のないエンジニアがAIのアウトプットをそのまま信じてしまうのは、この「それらしさ」に騙されるからだ。AIの出力を鵜呑みにせず、自分の経験と知識でクリティカルに検証できる能力が、AI使いには不可欠だ。

AIはあくまで道具であり、最終的な判断と責任は人間にある。この原則を忘れたとき、AIは強力な助っ人から危険な存在に変わる。


最強の組み合わせは「経験者×AI」である

では、誰がAIを使いこなせるのか。

それは、製品開発や事業開発の成功体験と失敗体験を持つ経験者だ。顧客ニーズを把握し、事業計画を立て、開発プロジェクト全体を俯瞰できる人間が1人と、AIおよびAIを扱えるエンジニアが1人いれば、かつての大人数チームを凌駕する開発が可能になる。その2役を1人が兼ねられれば、さらに強い。

ここで注目したいのが、リタイアしたベテランの価値が急上昇するだろうという点だ。

特定ドメインでの製品開発・事業開発を長年経験してきた人材は、もはやソースコードを書く必要がない。AIやAI使いのエンジニアに対して的確な指示を出せればいい。かつては「現役を退いた」とみなされていた経験者が、AI時代の最重要リソースになりうる。経験と知識こそが、AIを正しい方向に導く羅針盤だからだ。

そういった人材をうまく確保し、組織内のAI使いエンジニアをプロジェクトに参加させて経験を積ませることができる組織が、次の競争を生き残る。


AIにできないこと

ここまでAIの可能性を語ってきたが、AIにできないことも明確にしておきたい。

AIは、コードを書き、設計を考え、文書を作ることはできる。しかし、人と人をつなぎ、組織をまたいで合意を形成し、実行可能な提案を引き出すことは、AIには代替できない。

定年退職前の5年間、筆者が心血を注いだのはまさにそこだった。開発部門と品質部門、事業部門と技術部門、社内と社外——それぞれの立場と論理を持つ人間の間に入り、横串を刺して、「それぞれが納得でき、かつ実現可能な提案」を形にする仕事だ。これは、どれだけAIが賢くなっても、人間にしかできない。

AIは「答え」を出すことが得意だ。しかし組織の中での意思決定は、正しい答えを出すことよりも、関係者を動かすことのほうがはるかに難しい。その現場の政治、感情、組織の力学を読みながら動ける人間が、AI時代にもっとも価値を持つ人材の一つだと思っている。

ベテランの価値は、知識やスキルだけではない。人と組織を動かしてきた経験そのものが、AIには持てない固有の資産なのだ。


ゼロから新人を育てている場合ではない

日本ではいまだに新卒一括採用が主流だ。プログラミング経験ゼロの新人を数年かけてOJTで育て、一人前になるまで何年、場合によっては何十年もかかる。

一方、過去のソフトウェア開発の叡智を集積したAIエキスパートを、月数万円のサブスクで使える時代が来ている。

この非対称性は致命的だ。

スキルゼロの新人を何年もかけて育成しているコストと時間を、AIとベテランの組み合わせに投資した競合他社が先行すれば、価格でも開発スピードでも太刀打ちできなくなる。

ただし、AI使いとなるエンジニアもまた育成が必要だという点は忘れてはならない。AIの特性を把握したうえで、AIのアウトプットに対して的確に修正指示を出せるスキルは、一朝一夕では身につかない。

そのための育成方法として、筆者が有効だと考えるのはPBL(Project Based Learning)だ。無茶だと思っても、実際の製品やサービス開発を新人エンジニア複数人とAIの組み合わせでやりきらせる。途中でベテランが定期的にレビューを入れ、方向を修正する。教科書で学ぶのではなく、実際のプロジェクトで成功と失敗を経験させることで初めて、AIへの的確な指示が出せるエンジニアが育つ。

試行錯誤しながらもゴールを目指す自立したエンジニアでなければ、良いAI使いにはなれない。残念ながら、日本の教育環境はこの点で不利だ。知識詰め込みの画一教育では、創造性や自立した思考は育ちにくい。学校でそれができないのならば、企業側で育てるしかない。そのコストと時間を惜しむ組織は、AI時代の競争から脱落していくだろう。


エンジニア自身が損をしないために

このブログで一貫して言いたいのは、エンジニアがやり甲斐のある仕事をし、高いスキルを持って正当に評価される世界を目指してほしいということだ。

AI時代において、その実現を阻む最大のリスクは「AIに使われるエンジニア」になってしまうことだ。AIが出してくるアウトプットを検証もせずに右から左に流すだけの存在になれば、エンジニアとしての価値は急速に失われる。

逆に、AIを使いこなし、ソフトウェア工学の知識をAIへの指示に変換し、プロジェクト全体を俯瞰できるエンジニアの価値は、AI時代にこそ上がる。単純な実装作業はAIに任せ、自分はより高度な判断と設計に集中できるからだ。

AIを道具として使いこなすエンジニアになるか、AIに代替される存在になるか——その分岐点は、ソフトウェア工学の基礎を学び、実プロジェクトで経験を積む努力を続けるかどうかにかかっている。

AI時代は、スキルの高いエンジニアにとってむしろ追い風だ。問題は、その追い風に乗れる準備ができているかどうかだ。


ソフトウェア開発のサイクルが変わる

AIの活用が進むと、開発サイクルそのものが変わる。

これまで1つの機能を追加・修正・検証・バリデーションするまでに半年かかっていたものが、AIを活用することで1ヶ月程度に短縮できる感覚がある。ソフトウェアのアップデートサイクルが年1回から四半期に1回になれば、それだけで競合他社との明確な差別化になる。営業が顧客にアピールできる材料も増える。

開発費の削減よりも、むしろこの開発スピードへのインパクトのほうが、競争優位に与える影響は大きいかもしれない。製品開発には多くの人間が関わるため、コミュニケーションコストが劇的に減るわけではない。しかし、ソフトウェア開発の部分だけでも大幅に短縮できれば、製品全体の競争力は根本から変わる。


経営層が気づくかどうかが、生死を分ける

技術の話をしているようで、これは本質的には経営の話だ。

AI時代に対応できない組織は、10年後には競争に敗れ始める。問題は技術でも予算でもなく、経営層がこの変化に気づき、組織再編に踏み出せるかどうかだ。

少数精鋭+AI+ベテランの知見という組み合わせに再編できた組織が生き残り、旧来の大人数・長期育成モデルから抜けられなかった組織が淘汰される——そういう時代が、静かに、しかし確実に始まっている。

組織は永遠にベテランエンジニアをキープし続けることはできない。だからこそ、今この瞬間に、経験者の知見とAIを組み合わせる仕組みを作り始めた組織が、次の10年を制するのだと思う。


2026-02-26

RaspberryPi5を使ったリアル波形描画(3) Googleカレンダーを表示してみる


10.1インチ Raspberry Pi用 IPS タッチモニターとRaspberry Pi5 を購入したのは、リアル波形描画を Qt で作成し直すことだけでなく、仕事机の脇において Googleカレンダー を表示させる目的もあった。

仕事用に34インチのLCDディスプレイを使っているので、GoogleカレンダーはLCDディスプレイのどこかに表示させておけばいいのだが、大抵、いろいろなファイルを広げているので、カレンダーを見るにはいちいち再表示させないといけない。

そのため、机の脇に10インチのディスプレイでGoogleカレンダーが常時表示されている状態にしたかった。そういう商品も売っているようだが、ラズパイで自分用にカスタマイズしたものが欲しかった。

そこで、今回、Raspberry Pi5で10インチのモニターに google カレンダーを表示させるアプリを作ってみた。

Googleカレンダーを表示させた様子(完成系)

作ってみたといっても、自分では一行もコードを書いていない。最近、流行りのコード生成に優れているといわれている Anthropic 社の Claude を使った。

ChatGPTでもできたかもしれないが、この動画を見て Claudeの実力が見てみたくなった。


プロジェクトの概要

本プロジェクトでは、Raspberry Pi 5 上にGoogleカレンダーとGoogle Tasksを表示するウォールダッシュボードを構築した。ダッシュボードはGoogleカレンダーのUIに近いデザインで、月間カレンダービューにイベントをリアルタイム表示する。 

システム構成

項目

内容

ハードウェア

Raspberry Pi 5

OS

Raspberry Pi OS (Debian 12, Linux 6.12.62)

リモートアクセス

RealVNC Viewer (Windows PC から接続)

バックエンド

Python 3.13 + FastAPI + Uvicorn

フロントエンド

HTML/CSS/JavaScript (シングルページ)

認証

Google OAuth2 (デスクトップアプリ)

API

Google Calendar API + Google Tasks API

 大まかな仕組みとしては、Google OAuth で 仕事用の Googleアカウントを認証し、バックエンドのソフトウェアで Googleカレンダー情報を取得する。取得した情報を html でカレンダーとして表示する。これが可能なのは、Google が Google Calendar API と  Google Tasks API を提供しているからだ。

最近のアプリは、このようにクラウドサービスが提供するAPIとエンドポイント側のPCや組み込み機器が連携して価値を生み出すものが多い。これまでスタンドアロンで動いていた組み込み機器もネット接続して、このようなクラウド上のAPIと連携して新しい価値を提供するサービスが増えてきている。そううった傾向もあり、サイバーセキュリティも重要度が増している。

ChatGPTで医療機器ソフトウェア規制にこたえるチャットボットを作ったときは、壁打ちしながら約1週間かかった。

MSC Chat(医療機器ソフトウェアQ&A)

Claude での Googleカレンダーアプリ作成は約5時間。
Claude がすごいと思ったのは、問題が起こったときのリカバリーの良さだ。今回のサービスでは、ラズパイにPython のインストールが必要で、Python 3.13 のインストール作業の過程でつまずいた。Python 3.13 と pydantic==2.7.1 の互換性問題が発生した。

pydantic:**Pydantic(パイダンティック)**は、Pythonで「データの型チェック」と「データ検証」を簡単・安全に行うためのライブラリです。特に、API開発(FastAPIなど)や設定ファイル、JSONデータの扱いで広く使われています。「Pythonの型ヒントを使って、データの正しさを自動で検証・変換してくれるライブラリ」

pydantic-core のビルドにRustコンパイラが必要なためインストールに失敗した。pydantic==2.11.0 にバージョンを変更することで解決した。
 

パッケージ

バージョン

用途

FastAPI

0.111.0

WebAPIフレームワーク

Uvicorn

0.29.0

ASGIサーバー

pydantic

2.11.0

データバリデーション

google-auth

2.29.0

Google認証

google-auth-oauthlib

1.2.0

OAuth2フロー

google-api-python-client

2.127.0

Google API クライアント

こういう互換性の問題は、スクラッチで作っているときに発生すると原因がわからず 、暗い気持ちになりストレスが溜まる。ヒントをインターネット検索で探すのだが、解決した経験を誰かがアップしてくれていればラッキーで、そこにたどり着くまでにはそれなりの時間がかかる。

しかし、Claude は問題の状況をスクリーンショットで伝えると一発で原因を分析し、代替え手段を提示してくる。こんな感じで Claudeと壁打ちしながら、試行錯誤を繰り返していって、Googleカレンダーをラズパイで表示することができた。

完成した機能

機能

詳細

Googleカレンダー表示

月間カレンダービューでイベントをリアルタイム表示

カレンダー色分け

カレンダーごとの色でイベントを色分け表示

今日のハイライト

今日のセルを水色背景で強調表示

日時表示

右上に現在日時をリアルタイム表示

自動更新

5分ごとに自動リフレッシュ

Pi起動時自動起動

電源投入後に自動でダッシュボードが表示される

全画面キオスクモード

ブラウザのUI非表示で純粋なダッシュボード表示

ちなみに、ChatGPTは Pro の契約をしており、ChatBotを一週間かけて作ったときは、追加料金はかからなかったが、Claude はインプット、アウトプット量に対して、えげつないほどの従量課金になっており、結局 Googleカレンダーアプリ作成に6481円かかった。
使用料は毎日リセットされるので、一日の使用量まで達したら、翌日続きを行うようにすれば、月額使用料の中で完結できたのだが、一日で仕上げたいとなると、追加請求される。

前述の動画でも解説されているが、ChatGPTはオールラウンドプレイヤーで Claudeはビジネス用途の実績主義に特化しているとのこと。確かに判断が的確で試行錯誤が少ないが、効率がよいぶん、費用の請求もえげつない。

AIを使ったコード生成の感想

多くの識者が語っているように、今後ソフトウェアのコーディングは劇的に変わっていくことを実感した。経験の少ないソフトウェアエンジニアを一から教育する投資がもったいないというか、そこに疑問を持たずに続けていく企業はいずれ滅びてしまうのではないかという感覚がある。

現実に米国ではすでにソフトウェアエンジニアのリストラが始まっていると聞く。AIに置き換えられた分の人件費をカットする判断を経営層が下ししている。日本では簡単に社員をクビにはできないが、ソフトウェアエンジニアの採用が徐々に減っていく予感さえある。

何を作りたいか、何を提供すれば顧客に価値をもたらすことができるかさえ想定できれば、AIがアプリを作ってくれるところまで来ている。仮に作ったサービスが期待通りの実績を上げられなくても、ユーザーの使用状況のデータなどを収集してAIに分析させることで、どう改変すればよいのかも教えてくれる。

もちろんそのための費用もかかるが圧倒的に人件費より安い。

今後、生身のエンジニアに求めらるのは、コーディング力ではなく、価値創造の企画力や、人間同士のコミュニケーション能力ではないだろうか。それと、AIが出してきたアウトプットの是非を判断できる経験。

今回、Raspberry Pi 5 Google カレンダーダッシュボード プロジェクトが完成したところで、Claude に詳細なレポートを作ってもらった。

これをしっかり読み込むことで、AIが何を考え試行錯誤したのかがよく分かった。昔ならベテランの先輩に年単位で教えてもらっていたことが、数日で学習できる。

今後の技術者教育は、自分で企画してAIに作ってもらい、その開発過程をAIに説明してもらうことで、自分の経験として取り込むという教育が有効な感じがした。

どっちにしても、従来と同じようなソフトウェアエンジニアの採用や教育を行っていると、グローバルな競争に負けていく予感がしている。

便利だけど、生身のソフトウェアエンジニアには受難の時代になってきたかもしれない。



2026-01-20

RaspberryPi5を使ったリアル波形描画(2) Linux を使ってみる

 



RaspberryPiの OS は Linux である。RaspberryPi でアプリ制作をするにあたっては、Linux でコマンドを打つシーンが多くなる。コマンドを打ちやすくするために、VNC Viewer をセッティングする。

【VNC とは】

VNC(Virtual Network Computing)は、離れた場所にあるパソコンの画面を手元の端末に表示し、キーボードやマウス操作をそのまま遠隔のパソコンに送るためのリモートデスクトップソフト。

Real VNC Viewer(RealVNC Viewer)は、RealVNC 社が提供しているリモートデスクトップ用のビューアソフトで、離れた場所にある PC やサーバーの画面を表示して操作できるツールで、無償で使える。Home(無料)ライセンスでは、個人用途向けに台数制限付き(例:最大 5 台まで)でリモート接続が可能。

現在、RaspberryPi5 は Wi-Fi に繋がっているので、デスクトップPCに VNC Viewer をインストールして、RaspberryPi5 の画面を PC上に表示させる。こうすると、デスクトップPCのキーボードやマウスを使って、RaspberryPi5 をリモートで操作することができる。

(1) PCに「VNC Viewer」をインストールして起動。(こちらの note記事を参照)



これがRaspberryPi5のスクリーンをVPNでディスクトップPCに表示させた様子だ。下側に出ているのはタッチスクリーンのキーボード。RaspberryPi5にキーボードが接続されていないときにタッチスクリーンを使ってキーボード入力できる、親切な設計だ。ただ、VNCでは使わないので、左上のラズベリーメニュー→ Preferences→Control Centre→Display→On-screen Keyboard を Disabled にしておく


コマンドプロンプト画面は、左上のアイコンをクリックすると表示される。最初はかなり小さい画面になっているので、Edit → Style でフォントの大きさや画面サイズを変更した。

【RaspberryPiに登録されているユーザを確認する】

まず最初に、RaspberryPi5 に登録されているユーザーを確認しておく。

コマンドは cat /etc/passwd。結果は次のようになった。

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
 :
colord:x:107:111:colord colour management daemon:/var/lib/colord:/usr/sbin/nologin
hplip:x:108:7:HPLIP system user:/run/hplip:/bin/false
vnc:x:985:985:vnc:/nonexistent:/usr/sbin/nologin
xxsakai:x:1000:1000::/home/xxsakai:/bin/bash

前半はすべて Linux のシステムが使うユーザーで最初から設定されているものだ。vnc はVNCを使うために追加されたユーザーで、xxsakai は Linux のインストールイメージを作ったときに設定したユーザー(自分自身)である。

これで、システム以外のユーザーは 自分だけだということがわかった。

ちなみに、root ユーザーはすべての権限を持った特権ユーザーで、昔は、root ユーザーのパスワードを設定して、root ユーザーになることができたが、Raspberry Pi 5(Raspberry Pi OS)では root ユーザーのパスワードは「最初から設定されていいない」。

なぜ root のパスワードがないのかといえば、Raspberry Pi OS(Debian系)は、root での直接ログインを禁止し、通常ユーザーでログインして、必要なときだけ sudo で管理者権限を使うという設計になっているからである。

Linux のイメージを作ったときに、ユーザーを設定するので、そのユーザーは sudo を使えるようになっている。コマンドラインで確かめてみる。


sudo グループに入っており、sudo コマンドが使えることが確認できた。

【Linux のアップデートについて】

Linux をアップデートするには、次のコマンドを実行する。

sudo apt update
sudo apt upgrade

update:最新情報を取りに行く(変更なし)
upgrade:実際に更新する(変更あり)


update はリポジトリから最新のパッケージ一覧を取得する。update は何も書き換えない。upgrade コマンドで、最新のパッケージをインストールすることになる。

では、upgrade はどれくらいの頻度でやるべきか。推奨は、月1回程度で、何かの作業が終わった後がよい。避けるべきなのは、作業の途中や動作の確認中だ。

Linux は Windows Update のように定期的にパッチを当てるような仕組みがないので、脆弱性が発見されたときなど、手動で upgradeする必要があるが、upgrade することで、今動いていた機能が動かなくなるリスクもまったくないとは言えないので、頻繁にやることはない。

RaspberryPi5 を設置した直後に upgrage を行ったが、かなりの量の更新があった。アップグレードは節目節目、月イチ程度で行った方がよいだろう。

【Linux でよく使うコマンド】

📌 ファイル・ディレクトリ操作(最重要)

コマンド説明
lsファイル一覧表示
ls -l詳細表示
ls -a隠しファイル含め表示
pwd今いるディレクトリ
cdディレクトリ移動
mkdirフォルダ作成
rmdir空フォルダ削除
cpコピー
mv移動・名前変更
rm削除(注意)
rm -rフォルダ削除(注意)
fileファイル種別確認

📌 ファイル内容の確認・編集

コマンド説明
cat内容を全部表示
lessページ送りで表示
head先頭表示
tail末尾表示
tail -f追記をリアルタイム表示
nano簡易エディタ
vi / vim高機能エディタ
wc行数・文字数カウント

📌 検索・抽出(慣れると超便利)

コマンド説明
grep文字列検索
findファイル検索
locate高速検索(事前DB)
awk列処理
sed文字置換
sort並び替え
uniq重複除去

📌 システム・状態確認

コマンド説明
topプロセス監視
htop見やすい top
psプロセス表示
df -hディスク空き
du -h使用量
free -hメモリ
uptime稼働時間
uname -aカーネル情報
lsblkストレージ構成

📌 ネットワーク

コマンド説明
ip aIPアドレス
ip rルーティング
ping通信確認
ss -lntupポート確認
curlHTTP取得
wgetファイル取得
nmcliNetworkManager操作

📌 ユーザー・権限

コマンド説明
whoami自分
idUID/GID
groups所属グループ
sudo管理者権限
passwdパスワード変更
suユーザー切替
chmod権限変更
chown所有者変更

📌 パッケージ管理(Debian系)

コマンド説明
apt update更新情報取得
apt upgrade更新
apt installインストール
apt remove削除
apt autoremove不要削除
apt search検索
apt show詳細

📌 圧縮・展開

コマンド説明
tarアーカイブ
gzip / gunzipgzip圧縮
zip / unzipzip
xz高圧縮

📌 便利・覚えておくと楽

コマンド説明
history実行履歴
clear画面消去
alias別名
watch定期実行
time実行時間
which実体確認
manマニュアル

今回は、これくらいにしておく。

2026-01-13

RaspberryPi5を使ったリアル波形描画(1) イントロダクション


2018年にRaspberryPi3を使ったリアル波形描画の記事を10回に渡って書いた。7年半たって、RaspberryPiも進化し、ソフトウェアのプラットフォームとして使っていた Qt もバージョンが上がっている。

そこで、今回よりあらためてRaspberryPi5をベースにして、心電図モニタを想定したシステムを構築しつつ、どのようなソフトウェアアーキテクチャを医療機器に採用するとよいかについて解説していきたい。

RaspberryPi とは

Raspberry Pi(ラズベリーパイ)は、クレジットカードサイズの小型コンピュータで、低価格ながら本格的なPCと同等の機能を備えています。Linux(Raspberry Pi OS)が動作し、キーボードやモニタを接続すれば、Web閲覧、プログラミング、サーバ構築など幅広い用途に利用できます。最大の特徴は、基板上に備えられたGPIOピンを使って、LEDやセンサー、モーターなどのハードウェアを直接制御できる点です。これにより、ソフトウェアと電子工作を組み合わせたIoTや制御システムの試作が容易に行えます。省電力で常時稼働にも向いており、自宅サーバや実験用マシンとしても人気です。学習用途から実務のプロトタイプまで幅広く活用できる点が、Raspberry Piの大きな魅力です。

RaspberryPiを 使う理由は、ボードコンピュータとして汎用性が高く、安価で、LANや HDMI、USB、SDカード、Wi-Fiが標準装備されており、入手も容易なので壊れてすぐに交換が可能なのがよいからだ。ラズパイは教育やホビー、カスタマイズできるシステムとして広く普及していて、コンピュータプログラミングの入門機としても適している。

7年前にはRaspberry Pi 3 Model B+ をプラットフォームに使った。今ではRaspberryPiも、ずいぶんラインナップが増えた。

RaspberryPi が特によいのは、デフォルトで Wi-Fi を搭載しているところだ。Wi-Fi を搭載するには、各国の無線規制をクリアする必要がある。日本では技適(技術基準適合認定)を受ける必要があり、20~50万円の費用がかかる。各国で同様の認定が必要なため、世界中でWi-Fiを使えるようにするのは、かなり大変なことだ。RaspberryPi はそういった汎用インタフェースを世界中で同じ仕様で使えるようにしているところがすごい。

Raspberry Pi Foundation(ラズベリーパイ財団)は「未来のエンジニアを育てるために、世界一身近なコンピュータを作った教育団体」で、エンジニア教育への貢献は非常に大きいと思う。

Raspberry Piシリーズ 性能比較(主要モデル)

モデルCPUメモリ特徴・性能感
Raspberry Pi Zero 2 WQuad-core ARM Cortex-A53(1.0GHz)512MB超小型・超低消費電力。軽量な制御・IoT向け
Raspberry Pi 3 Model B+Quad-core Cortex-A53(1.4GHz)1GB入門用。Linux学習や簡易サーバ向け
Raspberry Pi 4 Model BQuad-core Cortex-A72(1.5GHz)2/4/8GB実用性が大幅向上。デスクトップ用途も可
Raspberry Pi 5Quad-core Cortex-A76(2.4GHz)4/8GB処理性能が飛躍的に向上。小型PC並み

RaspberryPi 5 は1万7千円とちょっと高めだったが、Raspberry Pi 3 Model B+ に比べてどのくらい性能が上がったのかも体感してみたかったので、RaspberryPi 5を購入することにした。


リアルタイム波形描画を行うには、LCDディスプレイが必要なので10インチのLCDディスプレイにRaspberryPiを背負わせることができるキットを選定した。これにRaspberryPi5とSDカードを合わせて購入した。


購入製品のリスト

RaspberryPiは、電源アダプタや HDMIケーブルなどは同梱されていないので、必要な電源アダプタなどの周辺機器がセットになったLCDキットなどはいろいろ販売されている。タッチパネル付きのLCDや電源がセットになっていたのでXBONFIRE のLCDキットを選んだ。


最初の組み立て

RaspberryPiは、前職で新人技術者教育に使っていたことがあって、汎用性は高いもののSDカードとの相性が悪いと立ち上がらないこともよくあり、「一発では動かない」というイメージがあった。そして、案の定、一発ではうまく動かなかった。

まず、RaspberryPiを起動させるためには、SDカードにLinuxのイメージを書き込む必要がある。このようなセットアップ手順はいろいろなサイトで紹介されているので、今回はこちらのnoteの記事を参考にさせてもらった。

「Raspberry Pi Imager」をRaspberryPi財団のサイトからダウンロードして、自分の Window PCにインストールして、Linuxの起動イメージをSDカードに書き込む。起動ディスクだから、コピペでは動かないので、専用のアプリでイメージを書き込む必要がある。RaspberryPiに挿入するSDカードはmicroSDだが、SDカードアダプタがついていたので、アダプタ経由でPCに刺してOSのイメージを書き込んだ。Raspberry Pi Imager では初期の設定を編集することができて、次のような項目を設定することができる。
  • ホスト名
  • ユーザ名
  • パスワード
  • Wi-FiのSSIDとパスワード、Wi-Fiの使う国(JP)
  • タイムゾーン(Asiia/Tokyo)
  • キーボード設定(JP)
これらをRaspberryPi本体で設定しようとすると、キーボードやディスプレイが必要になるので、この段階で設定できるようになっているのはとても親切だ。

そして、SSH(Secure Shell、ネットワーク越しに、別のコンピュータを安全に操作するための通信プロトコル)の設定(今回はパスワード認証)を行う。

RaspberryPiを立ち上げた後に Wi-Fi経由で自分のPCからSSHで通信する必要があるので、これをやっておく必要がある。

SDカードにイメージを書き込み、RaspberryPi本体にmicroSDカードを差し込んで、電源(USB TypeCから給電する)を入れると、RaspberryPiが立ち上がる。

今回LCDのキットがあるので、LCDキットの基盤にRaspberryPi5をセットして、電源を投入したのだが、LCDディスプレイには「No Input Image」が一瞬表示されて画面が消えてしまう。

「ああ、やっぱり一発では動かなかったか」と落胆しつつ、LCDキットの取説の一番後ろに書いてあったユーザサポートにメールしてみる。12時間以内に返信するとあった。

状況の説明と写真を送ったところ、ていねいな返信がきていろいろアドバイスを教えてくれた。困った時にはAIがヒントをくれるが、生身の人間のサポートがあると安心できる。

RaspberryPiをネジ止めする4箇所のネジ穴があるのだが、ネジ受けの頭に薄い茶色のフィルムが貼られていてそれを剥がせという指示があった。実際、RaspberryPiの基盤をネジ止めしようとしたらネジがうまく入らなかったのでネジ止めできなかったのだが、そういう理由だったようだ。老眼になると細かいところがよく見えないのでフィルムがあることに気が付かなかった。

このLCDキットは、USB-TypeCコネクタとHDMIコネクタに変換アダプタを接続して、LCDキットの基盤のコネクタに刺すような構造になっている。基板側のコネクタがロックのない2列のコネクタでよく見ないと一列ズレて刺してしまう。どうも、最初にうまくいかなかったのは一列がズレてコネクタが刺さっていたからのようだ。RaspberryPiの取り付け位置もフィルムのせいでピタッと合っていなかったこともズレの原因だった。

茶色のフィルムを剥がして、慎重にコネクタの位置を確認しながら接続し、電源を投入したところ、RaspberryPiの初期画面が表示された。

その後、Wi-Fiの接続ができず、タッチパネルを使って、RaspberryPiのWi-Fiをオンにしたり、Wi-FiのSSIDやパスワードを再設定したりし、sshの設定をやり直したりした。

chatGPTに現状の症状を伝えながら、一つずつ問題をクリアすることで、PCからRaspberryPiにWi-Fi経由で接続することができた。

最初の段階ですんなり行かなかったが、焦らずに少しずつすすめていこうと思う。


2026-01-06

会計ソフトとの7ヶ月間に渡る格闘

2025年3月に定年退職して、2ヶ月の準備期間を経て、6月に個人事業主として起業した。

青色申告して60万円の控除を得るために、会計ソフトの freee会計 を契約して日々の入出金を記録して、先日2025年の会計を無事閉じることができた。


ここに至るまで、複式簿記の知識がゼロだったので、いろいろとわからないことがあり、非常に苦労した。何が大変だったのかをここに書き留めておきたいと思う。


■会計の期間と起業日について

会計の期間は1月1日から12月31日の一年間が基本だ。しかし、起業日が6月1日だったので、1月から5月までの期間は起業前となる。このシチュエーションは起業の最初の年だけなので、そのような設定を freee会計上ですることができない。

起業前の開業にかかった費用は、開業費として経費計上できることは知っていたので、起業前に準備したPCなどの費用は集計して、領収書も全部取っておいた。

銀行口座とクレジットカードは、個人の口座と事業の口座を分けたかったので、素早く作れるfreee ライフカードと楽天銀行で、個人事業主としてのクレジットカードと銀行口座を作った。

開業費として買うものは freeeライフカードで購入して、楽天銀行の口座から引き落とされるようにした。楽天銀行には、元入金として事業資金を振り込んでおいた。

freee会計では、登録した銀行口座やクレジットカードから、API経由でデータを取り込んでくれて、その情報をもとにして複式簿記の取引を記録できる。

当然、freeeライフカードと楽天銀行は登録したので、データがfreee会計に取り込まれる。1月から5月の間に開業費として使ったカード情報も取り込まれてしまうのだが、起業前なので無視としていた。

ところが、この間に使ったクレジットカードの費用は、freee会計上、銀行引き落としとしての振替を登録しない限り、永遠に残ってしまう。これはとても気持ちが悪い。

後からわかったのは、1月から5月までに freeeライフカードで使った費用は、「開業費」として登録しておけばよかったのだ。結局、年が明けてから、1月から5月にfreeeライフカードで購入したものは無視ではなく、開業費として登録して、freee ライフカードの登録残高はゼロ円にすることができた。

開業費としてリストしてあったもののうちfreeeライフカードで購入したものの金額は削除した。

■クレジットカードと銀行口座について

クレジットカードでサブスクリプションの支払いなどをすると、クレジットカードと利用履歴は数日遅れて登録され、一ヶ月くらいおくれて銀行口座からまとめて引き落とされる。

これはfreee会計上、非常に面倒くさい。クレジットカードの利用情報を一旦取引として登録し、未決済状態にしておいて、銀行口座から引き落とされたときに振替処理をして決済する。

タイムラグがあるのと、銀行の引き落としは一ヶ月のクレジット利用をまとめられてしまうので、記入漏れがあると会計上でズレが生じてしまう。ズレがあると、なんとも気持ちが悪い。

また、三井住友カードが個人事業主向けにビジネスオーナーズという、屋号付きの口座を作れることがわかった。三井住友カードではVポイントがつくので、クレジットカードはこちらに切り替えることにした。

また、三井住友銀行も個人事業主用に屋号付きの口座を作れることがわかったので口座を作った。

また、デビッドカードを使えば、銀行口座から即引き落とされて、すぐに取引登録できるので、ほとんどすべての購入をデビットカードにすることにした。これで取引と決済のタイムラグをなくすことができる。

ちなみに、デビットカードが使えないケースが稀にあって、その場合はしようがないので三井住友カードを使うようにして、三井住友カードの決済を三井住友銀行の口座から引き落とすようにした。

楽天銀行は口座を作るのは簡単だったが、月末月初にAPIが集中するためか、手動同期ができなくなるのと、PCでログインしようとすると、毎回、生年月日とメールアドレスに送られてくるコードを入力しなければならず、使い勝手が悪いので使うのをやめた。

Microsoft Office Businessをデビットカードで契約しようとしたら、どうしてもうまく行かず、Microsoftに問い合わせたところ、まず、セキュリティ強化のため、デビットカードの設定をNGにしていると言われ、解除してもらったのに、うかくいかず、銀行口座開設時に設定した屋号を正確に入力することでやっと設定ができた。

■開業費の減価償却

開業前に使った費用は、好きなときに減価償却できるルールらしいが、freee会計では何年かの均等割でしか償却ができなかった。

■日帰り出張時の昼食代

日帰り出張時の昼食代は経費にできるものと思っていたが、ChatGPTに聞いてみたところ、経費にはできないとのことだった。宿泊を伴う出張時の食事代は経費にできるらしい。

■家事按分

インターネット代など、プライベートと事業で共用する費用は、ちゃんと根拠を説明すれば、家事按分としてある一定の割合を事業経費にできる。

■請求と振り込み

毎月の事業契約では、月末に役務が終了して、翌月請求し、翌月末に振り込みされるというパターンがある。この場合、仕事をしてから、対価が振り込まれるまで最長二ヶ月かかる。この感覚がなかなかなれなかった。また、12月の業務については、1月に請求書を発行するのだが、会計としては、12月末時点で売掛金として登録する必要があることがわかった。役務が発生したときを基準にする必要があるのだそうだ。

■AmazonBusiness

AmazonBusiness口座をfreee会計に登録すると、何を購入したのかが詳細に登録されるので便利だ。AmazonBusinessの引き落としも、デビットカードにしておけば、タイムラグも少ない。ただ、AmazonBusinessは荷物が届いた時点で情報が登録されるため、デビッドカードでの引き落としの方が先に登録されることがある。AmazonBusinessで取引登録して、デビットカードの銀行口座で振替しないといけないので、一つ手間が増えるが、何を買ったのかの情報が詳細なので、AmazonBusiness口座は利用している。

■個人事業主借り、個人事業主貸し

プライベート資金を事業用に使った場合は、個人事業主借り、事業の資金をプライベート側に回す場合は個人事業主貸しになる。出張時にPASMOを使ったときなどは個人事業主借りとして取引登録する。

■セミナー講師実施時の交通費

リアルセミナーで講師をしたとき、交通費が実費精算だった。事前に交通費を調べて往復分を講師料と一緒に請求書で請求した。この取引登録が難しかった。

講師費用は消費税ありで、売掛金からの売上高になり、交通費は消費税なしで未収入金からの雑収入とした。ここに行き着くまで ChatGPTと何回もやり取りしたやっと腹落ちした。

■インボイス制度、消費税

以前は1000万円未満の個人事業主は消費税込みで受け取った費用に対して、消費税を納付する必要がなかったが、インボイス制度が始まって、消費税を納付しなければならなくなったようだ。そのためインボイス登録番号を取って、簡易課税の事業者として登録した。

■感想

freee会計を使ってみて、いろいろ勉強した。freeeや会計士の人のYouTubeの動画でも勉強したし、一番教えてもらったのは ChatGPTだった。ただ、ChatGPTはもっともよいアドバイスをしてくれるとは限らないので、一旦言われた通りにやってみて、後から修正することも多々あった。複式簿記の仕組みがやっと理解できてきたので、2026年はあまり迷うことなく、取引を登録できると思う。





 

2025-09-06

IEC 62304 実践ロードマップ ― 基礎理解から開発プロセス構築・運用まで ― (情報機構セミナーのお知らせ)

 


このたび、情報機構主催のセミナーにて、IEC 62304 に関する講演を行うことになりました。

  • 開催日: 2025年12月(詳細は情報機構の案内ページをご覧ください)
  • 会場: 東京・大井町
  • 時間: 10:30〜16:30
  • テーマ: IEC 62304 実践ロードマップ ― 基礎理解から開発プロセス構築・運用まで ―


セミナー概要

IEC 62304 は、医療機器ソフトウェア開発における国際的な基本規格であり、ソフトウェアライフサイクルプロセスを体系的に定義しています。
しかし実際には、

  • 規格条文をどのように開発現場に落とし込むか?
  • 他の規制要求(FDA、IMDRF、日本PMDAなど)との整合をどう取るか?
  • 中小規模の開発組織でどのように運用すればよいか?

といった課題に直面している企業が少なくありません。

今回のセミナーでは、単なる規格解説にとどまらず、実際の現場支援で培った具体的なアプローチを交えながら、以下のポイントを詳しく解説します。

主な内容

  • IEC 62304 の基本構造と条文の理解
  • 開発プロセスを構築・運用するための実践的な手順
  • リスクマネジメント(ISO 14971)との関係
  • 市販ソフトウェア(SOUP)の扱い方
  • 海外規制(FDA、IMDRF ガイダンス等)との関連付け
  • 実際の現場で起きやすい「つまずき」とその解決策

特に今回は、リアル会場開催となるため、オンライン動画では伝えきれない、現場ならではの生々しいエピソードや実体験もご紹介する予定です。


関連動画のご紹介

セミナーの予習や復習に役立つよう、私がこれまで YouTube チャンネル「Medical Software Consulting」で公開している動画もご覧いただけます。




これらの動画では基本的な解説をコンパクトにまとめていますが、セミナーではさらに踏み込んだ「規格をどう運用するか」という実践的な部分を扱います。


参加のご案内

セミナーの詳細・お申込みは、情報機構の公式ページからご確認ください。

現場で規格対応に悩まれている方にとって、必ず役立つ実践的なヒントをお持ち帰りいただける内容になっています。
東京・大井町の会場で、皆さまとお会いできるのを楽しみにしています。

2025-07-14

自動車業界と医療機器業界のリスクマネジメントの違い

 

医療機器ソフトウェアの国際規格を検討する国内委員会に長年参加していて、機能安全規格である IEC 61508(機能安全) を医療機器業界にも採用せよという圧力が度々かかり、その都度、医療機器業界側がその要求を跳ね返してきた歴史を聞いてきた。

なぜ、そのような圧力がかかるのか。

その理由のひとつは、IEC 61508(機能安全 Functional Safety)の認証ビジネスの市場は 2023年に55億ドル規模となっており、その中で自動車分野が最も高い 10%で成長していて、この認証ビジネスの市場に医療機器も含めようという思惑があるからだ。

図2024〜2032 年の機能安全認証ビジネスの年平均成長率(CAGR)予測。全体市場は年 7.5 % で拡大する一方、ISO 26262 への適合需要が牽引する自動車セグメントは年 9.9 % と最速で成長すると見込まれる(出典:Allied Market Research、Global Market Insights)


そこで今回、AIの分析も交えながら、機能安全を採用している自動車業界と医療機器業界のリスクマネジメントの違いを掘り下げてみたいと思う。

A. 筆者が考える自動車業界と医療機器業界のリスクマネジメントの違い

自分は自動車業界でのソフトウェア開発経験はないのだが、ずっと、IEC 61508(機能安全) や ISO 26262(自動車の機能安全規格)についてアンテナを張ってきた。

そして、出した結論がこうだ。

自動車はサプライヤーが提供する部品を、完成品メーカーであるOEMがアセンブリして自動車に仕上げる。OEMは サプライヤーに対して、ISO 26262 への適合を条件にすることで、自動車の安全性を高めたい。安全が規格によって担保された部品を組み合わせることでシステムの安全を確保するという、フォールトアボイダンスの考え方を採用している。

一方、医療機器は、医療機器の種別によって、基本性能や基礎安全がまったく異なる。例えば、人工呼吸器と画像診断装置では、基本性能も基礎安全も異なり、安全対策も代わってくる。そのため、医療機器の安全を担保するためには、医療機器メーカーが主導してリスクマネジメントを行い、ソフトウェアを含む各部品に不具合があるとい前提でフェールセーフやフォールトトレランスの安全設計を行う必要がある。

自動車業界のボトムアップのリスクマネジメントのアプローチに対して、医療機器業界はトップダウンのリスクマネジメントであるというのが、自分の考えであった。

参考: 日経ものづくり 2010年8月号 の特集記事『ソフトが揺さぶる製品安全』

また、自動車の基本性能は、「走る・止まる・曲がる」であり、医療機器と違って、その点は自動車というカテゴリーでは変わらないので、リスクマネジメントの方向性はどの自動車でも変わらず、OEMがサプライヤーに求める機能安全は保険のようなもので、基礎安全の確保の本質ではないと思っていた。その証拠に、医療機器業界では、規制当局が ISO 14971や IEC 62304 を規制要件としているの対して、自動車業界では ISO 26262 は規制要件にはなっていない。これは、ISO 26262 がストレートに自動車の安全に必要不可欠という要件ではないという認識だからだと考える。

そういう状況なのに、機能安全の認証ビジネスは、2023年に55億ドル規模となっており、機能安全の認証機関やコンサルティングファームは、機能安全への適合の必要性をさかんにアピールし、またサプライヤーも自分達の担当製品が ISO 26262 の認証を取ったことをニュースリリースする。

個人的にはその風潮は機能安全の認証ビジネスを増長させるだけであって、認証取得にかけたコストの全てが自動車の安全にストレートには寄与していないと感じていた。

だから、認証機関やコンサルテーションファームが IEC 61508 と ISO 26262 と IEC 62304 をひとくくりにして、各製品のサプライヤーはこれらの認証を取得しなければならないと主張するたびに、IEC 62304 は、医療機器製造業者にもとめられる規格であり、医療機器のソフトウェアを委託開発しているソフトハウスに対してIEC 62304の認証は要求していないということを説明し訂正を求めてきた。

国際安全規格の体系(ISO/IEC Guide51型) 参照:「安全設計の基本概念」 向殿政男 監修, 日本規格協会, 2007年


その効果があったせいか、ここ数年このような間違った主張をするインターネット上での記事は見かけなくなったように思う。

そもそも、機能安全(Functional Safety)ってなんだ?とずっと疑問に思っていた。「機能」と「安全」をくっ付けたことに強い違和感を感じていた。ISO 14971 の安全の概念は、医療機器がもたらすすべての危害を分析し、対策して残留リスクを受容可能にすることがゴールなのだが、機能安全のゴールは、安全関連機能が要求(SIL/ASIL)を満たし、故障しても安全状態になることとなっている。どちらも、安全を目指しているものの、本質が違うように思えてならないのだ。

医療機器はトップダウンでリスクマネジメントの本質を追究していて、自動車の機能安全はボトムアップで安全な部品を集めればシステムも安全になるという、フォールトアボイダンスの概念であり、それは、リスクマネジメントの正しい考え方ではないと感じてしまう。

下記に AIが分析した IEC 61508(機能安全)と ISO 14971(医療機器リスクマネジメント)の違いを示す。

B. IEC 61508 と ISO 14971の違い──“同じリスクマネジメント”では語れない理由(AIの分析)

医療機器の開発者や品質担当者にとって、IEC 61508(機能安全の基本規格)と ISO 14971(医療機器リスクマネジメントの国際規格)は、どちらも「リスクを下げるための規格」として耳にする機会が多いと思います。しかし両者は 守ろうとしている対象も、リスク低減の方法論も、本質的に異なる ため、単純に置き換えたり“どちらが上位”と序列化したりはできません。 以下にその違いを整理してみます。


1. スタート地点が違う

  • IEC 61508 は、電気/電子/プログラマブル電子(E/E/PE)システムが「故障しても人を傷つけない」ように設計する 機能安全 の総本山です。自動車、化学プラント、鉄道など各産業がここから派生規格(ISO 26262 など)を作ってきました。
  • ISO 14971 は、医療機器がもたらす あらゆる危害――電気的誤動作だけでなく、化学的暴露、使用ミス、サイバー攻撃など――を対象にした包括的なリスクマネジメントのフレームワークです。


2. “リスク”という言葉の意味が違う

  • IEC 61508 ではリスクを 定量的指標(PFH, PFDavg) にブレークダウンし、あらかじめ目標値(SIL)を設定して達成可否を判断します。言わば「○○ Fit/Hour 以下にしなさい」という 数値契約 が核心。
  • ISO 14971 ではリスクを 発生確率と危害の重大度の組み合わせ で見積もり、残留リスクが「受容可能か/ベネフィットが上回るか」を経営レベルで判断します。こちらは 医療上の価値と危害を秤にかける 思考法です。


3. リスク低減の優先順位が違う

  • IEC 61508 は「故障を避ける → 故障を検出する → 安全状態に導く」という 機能(機械的アクション) でリスクを下げる道筋を示します。冗長化や診断回路が主役です。
  • ISO 14971 はまず「本質安全設計(危険源そのものを除去)」を最優先とし、次に防護機構、最後に取扱説明書やトレーニングでカバーするという 階層防御 を採ります。医療現場では「ユーザー教育」も正式なリスクコントロール手段と見なされます。


4. ライフサイクルの捉え方が違う

  • IEC 61508 は開発~運用~廃棄までを “安全ライフサイクル” として工程管理しますが、フォーカスは 安全関連システムの信頼性確保 にあります。市販後のフィードバックよりも、設計段階の定量検証が重い。
  • ISO 14971 は 市販後監視(PMS) を含めた“ファイル”の更新サイクルを重視し、臨床データや苦情情報を継続的にリスク評価へ反映するよう求めます。市販前のリスクマネジメントも要求していますが、製品が市場に出てからが本番、という発想です。


5. コンプライアンスの位置づけが違う

  • IEC 61508 は法律で直接義務づけられていない国が多く、「契約条件」「業界慣習」「第三者認証」で守られていることがほとんどです。
  • ISO 14971 は EU MDR、FDA QSR、薬機法 など各国規制と密接にリンクしており、実務的には**“ほぼ必須”**。適合しなければ市販許可が降りない場合もあります。


C. 自動車は「走る・止まる・曲がる」だけではない。

AIから、こう指摘されたのでその論拠を示しておく。

1.「走る・止まる・曲がる」はクルマの“運動三本柱”

自動車の運動性能を語るとき、昔から業界や大学の講義、技術系メディアで必ず登場する切り口が「走る(推進)・止まる(制動)・曲がる(操舵)」の三つです。NSK の技術ストーリーや自動車教室の記事でも、この三要素を“車両運動の基本”と明言しています。行政サイドも同じ捉え方で、国土交通省は ADAS を説明するときに「走る・曲がる・止まるの基本操作を支援する制御」と表現します。 したがって 運動面に限定すれば、この三つをもって「自動車の基本性能」と呼ぶのは妥当 だと言えます。


2.“総合性能”を語るには三要素だけでは足りない

ただし、現代の自動車は走行ダイナミクスだけで評価されるわけではありません。事故後の乗員保護や衝突回避といった 安全性能、省エネ・排出ガス規制に絡む 環境/経済性、静粛性や HMI(ヒューマンマシンインタフェース)、コネクテッド機能といった 快適・情報性能、さらに耐久・整備性や OTA 更新まで含めた 信頼性・保全性――多面的な“商品力”が求められています。ISO 26262 をはじめ最新の車両規格は、こうした横串領域(セキュリティ、サービス性、サステナビリティなど)まで要求を広げています。

要するに「走る・止まる・曲がる」は土台であっても、それだけで車づくりの全体像を語り切ることはできません。


3.機能安全の視点で見る三要素

ISO 26262 の HARA(ハザード分析とリスクアセスメント)では、 走る・止まる・曲がる に関わる機能は最も高い ASIL、しばしば ASIL D に分類されます。理由は簡単で、この三要素が失われるとクルマは即座に軌跡を制御できなくなり、乗員・歩行者ともに致命的なリスクが生じるからです。

  • 半導体ベンダ(Tier-2) はロックステップ CPU や ECC などで「走る」機能をフォールトトレランス化。
  • ブレーキ ECU のサプライヤ(Tier-1) は冗長回路やフェイルセーフ機構で「止まる」機能を守る。
  • OEM はシステム統合層で最小リスク操舵(Minimum Risk Manoeuvre)を実装し、「曲がる」機能の残留リスクを受け持つ。

このようにサプライチェーン全体で三要素を多重に支え、単一点故障で人命に直結しないよう作り込む構造ができています。


4.実務での活かし方──“三要素+α”で考える

  1. まずは三要素を押さえる クルマを動かす基礎指標として「走る・止まる・曲がる」は不変のものさしです。
  2. しかし評価軸を広げる 今日の車両企画・審査・規制対応では、安全・環境・快適・デジタルなど“+α”を加えた多面的評価が欠かせません。
  3. 機能安全では最高リスク源 三要素は最も高い ASIL を与えられるため、OEM から半導体まで冗長化・診断カバレッジを分担して確保するのが実務のセオリーです。

D. 機能安全を深掘りしてみる

ちなみに、冒頭の 自分の機能安全に対する考え方について、AIに聞いてみたところ「ステレオタイプであり、そんなに単純化できるものではない」と怒られた。

特に、自動車の機能安全はフォールトアボイダンスで、フェールセーフやフォールトトレランスではないという考えについては、次のように反論された。また、サプライチェーンと認証ビジネスの関係についてもAIに聞いてみた。

1. サプライチェーンと「認証ビジネス」の関係を物語る4つの事実

まず押さえておきたいのは、ISO 26262 への適合が 法律で強制されているわけではない という点です。道路運送車両法や FMVSS など各国の保安基準には直接組み込まれておらず、「業界が自主的に使うベストプラクティス」という立ち位置にとどまっています。

ただし OEM(完成車メーカー)は車両全体の安全責任を負うため、部品やソフトを供給する Tier 1、さらにその下位サプライヤーに対して「ISO 26262 に従った開発プロセスを示せ」と契約で要求します。“客先要求”という形でチェーンの下流まで波及するのが実態です。

ここで大きな役割を果たすのが TÜV、exida、SGS といった第三者機関の認証サービスです。ISO 26262 自体は自己宣言でも構わないのですが、入札競争力や訴訟リスク低減を狙って「外部のお墨付き」を取る企業が増えており、認証は半ばマーケティング・ツールとして使われています。

結果として「機能安全」市場は 2023 年時点で約 55 億ドル、しかも自動車分野が年 10 %前後で伸びていると報告されています。――つまり、多数のサプライヤーが存在する構造と認証ビジネスの相互作用が ISO 26262 普及を後押ししているのは事実ですが、本質は“安全責任を証明可能に分担する”仕組みづくりにあります。認証はあくまでその手段にすぎません。


2. 規制当局が ISO 26262 を“強制しない”3つの理由

第一に、パフォーマンス・ベース規制という考え方があります。国連 WP.29(たとえば UN R157/ALKS)は「審査官は ISO 26262 の知識を持つべき」とは示しても、規格そのものへの義務的準拠は求めません。NHTSA や EU GSR II も同じく、「一定距離で自動緊急ブレーキが止まるか」といった結果を試験で示し、方法までは縛らないスタイルです。

第二に、民事責任との二重構造が機能しています。重大な欠陥があれば OEM は巨額リコールや PL 訴訟に直面するため、規格適合は「合理的注意を払った」ことを示す防御材料になります。強制されなくても自主的に従うインセンティブが働くわけです.

第三に、技術進化への追随性を確保したいという事情があります。ハード法規で特定の手順を固定すると、規格改版のたびに法改正が必要になりイノベーションを阻害しかねません。そこで当局は「成果を示せば手段は問わない」という枠組みを選びました。

要するに、「安全に直結しないから強制しない」のではなく、成果主義と民事責任を組み合わせて柔軟性と技術革新を両立させる――それが各国規制当局の基本スタンスです。


3. ISO 26262 の安全哲学は Fault Avoidance だけではない

誤解されがちですが、ISO 26262 が求める安全設計は 三層構造です。

  1. Fault Avoidance(系統的故障の未然防止) コーディング規約や静的解析、レビューといった開発プロセスで設計ミスを作り込まないことを徹底します。これはパート 2 とパート 6が詳述しています。
  2. Fault Detection と Fail-Safe/Fail-Silent(故障後の安全停止) 故障を完全にゼロにはできません。そこで高い診断被覆率で異常を検出し、規定時間内に安全状態へ遷移させる仕組みを要求しています。ブレーキ ECU なら「電圧異常を検知したら油圧を保持して停止」といった具合です。
  3. Fault Tolerance/Fail-Operational(故障後も機能を維持) 自動運転のように「止まること」自体が危険なケースでは、冗長系へ切り替えて走り続ける設計が必要になります。第2版ではこの Fail-Operational コンセプトが補強されました。

このように ISO 26262 は「故障を避ける」「故障を見つける」「故障に耐える/安全に止める」という 総合戦略 をライフサイクル全体に埋め込んでいます。Fault Avoidance だけに特化した規格ではありません。


まとめ

  • 普及ドライバー:OEM が契約でサプライヤーに要求し、第三者認証が市場競争力になる。
  • 規制の立ち位置:法的強制ではなく、成果義務と PL 法が実効性を担保。
  • 安全哲学:Fault Avoidance、Fail-Safe、Fault Tolerance を一体化した多層防御。

ISO 26262 を語るときは、「誰がどの層の安全責任を担い、どう証明するのか」という視点で見ると、サプライチェーンと規制の力学がクリアに見えてきます。

E. 医療機器は IEC 61508を義務にしていない

医療機器が IEC 61508を義務にしていないことを AI にまとめてもらった。

医療機器が IEC 61508 を「義務化しない」と決めてきた経緯──公式文書を手がかりに読み解く

「医療機器にも IEC 61508 を強制すべきだ」という声は過去に何度も上がりましたが、結局いまも“適用除外”のままです。なぜそうなったのかは、議事録を追わなくても 一次資料の本文 にはっきり書かれています。ポイントになる4つの証拠を時系列で追ってみましょう。


1. 61508 自身が “医療機器は対象外” と宣言している

最新の第2版(2010)Part 1〈Scope〉には 「IEC 60601 シリーズに適合する医療機器には適用しない」 という一節が残っています。汎用機能安全規格側が自ら線引きをしているわけです。iTeh Standards


2. 医療ソフト専用規格 62304 が「参考にするが要求しない」と明記

IEC 62304 第2版 CDV の Annex C.9 は、

61508-3 の手法は参考情報として使ってよいが、要求事項としては採用しない── と断言し、SIL ではなく “Software Process Rigor Level+ISO 14971” を採用する理由を説明しています。MLFP Content

3. 学協会ガイドでも「医療だけ例外」と総括

IET の 2020 Medical EMC Guide は、

61508 をベースにした機能安全規格は数多いが、医療規格だけは ISO 14971 が基盤 と繰り返し指摘しています。機能安全の専門家が書いたハンドブックでも同じトーンです。Interference Technology

4. 直近の専門家コメント(2025)も同じ見解

LinkedIn で公開された機能安全選定ガイド(2025/7)は、

医療製品(IEC 60601 系)は IEC 61508 の例外 で、現時点で明確にカバー外 とまとめています。業界側の認識がいまも変わっていないことが分かります。LinkedIn

どう読み取るか

  1. IEC 61508 側の注記は初版(1998)から一貫して削られていない。産業プロセス系 TC 65 と医療系 TC 62 が早期に合意した線引きが、条文という形で固定化されたと考えられます。
  2. TC 62/SC 62A が 62304・60601 系列を策定し、自前のリスクマネジメント(ISO 14971)を採用。SIL を持ち込まず、医療の「ベネフィット vs. リスク」思考を優先しました。
  3. 学協会や業界解説も「医療は 61508 例外」と繰り返し明記。これは単なる意見ではなく、IEC 本体の Scope 注記と Annex が一次根拠になっているため、業界全体がそれを追認してきた結果です。


結論

医療機器への IEC 61508 強制を業界が拒んできた ことを示す一次エビデンスは、

医療機器における安全規格の枠組みは、機能安全=61508 系 リスクマネジメント=ISO 14971 系 を明確に分離して進化してきた──これが公式文書から読み取れる歴史的事実です。

F. 最後に

AIの力を借りて、自動車業界と医療機器業界のリスクマネジメントの考え方の違いについて深掘りすることができた。

下記の図は、日科技連主催のソフトウェア品質シンポジウム2010(SQiPシンポジウム2010)で広島市立大学の大場充先生が、ソフトウェア品質論の歴史を解説した内容を図にしたものである。(解説記事はこちら

広島市立大学 大場充教授講演 「民主主義原理に基づくソフトウェア品質論入門」を参考に作成

「不良をなくすことが、究極的な品質の実現である」とする考え方は、古典的な統計的品質管理を極端に形式化した観念論的な品質論で、1960年代に主流であった ゼロディフェクト運動がそれに象徴する。しかし、その後、ソフトウェアの不具合をゼロにすることは不可能という考え方が常識になり、ソフトウェアの開発プロセスの中でソフトウェアの品質を高める考え方に変わりつつある。また、日本では古くから 製品の価値や顧客満足度を重視する「当たり前品質」や「魅力的品質」の考え方があった。

医療機器のソフトウェアライフサイクルプロセス規格 IEC 62304 は、プロセスアプローチであるとともに、ISO 14971のリスクマネジメントを要求するリスクベースアプローチを組み合わせた規格である。

その視点で、自動車の機能安全規格を眺めたときに、機能安全規格はサプライヤーにゼロディフェクトを要求しているのであって、OEMが主体的に自動車のリスクマネジメントを追究していないのではないかと感じてしまう。

今回 AI の助言もあって、そう簡単なロジックでは片付けられないと指摘されたわけだが、自動車に搭載されるソフトウェアの規模が増大する現状において、サイバーセキュリティも含めてソフトウェア起因のどんな障害が発生するのか予想も付かず、自動車の中でECU同士が通信し合う巨大なネットワークシステムが構築されている現状を考えると、医療機器業界が長年やってきたように、完成車メーカーであるOEMが主体となって、今後ソフトウェア起因のどんなリスクが存在しうるかをリスク分析した上で、トップダウンでリスクコントロール手段を設計する必要があるのではないかと感じる。

G. 参考

15分で分かる ISO 14971(17分)

ISO 14971 規格解説動画(47分)