ソフトウェア開発の本質とは何か?
いつの頃からか、ソフトウェア開発という職業は「高学歴なホワイトカラーがスマートに行う仕事」というイメージをまとうようになりました。
しかし、元々の本質はそんなカッコいいものでも何でもありません。
1行1行泥臭くコードを書き、バグと格闘し、現場で動くモノを作り上げる――本来は「デジタルな工場作業」であり「職人の手仕事(ブルーカラー)」そのものです。
それなのに、高学歴なホワイトカラー層が大量に流入してきた結果、現場にはある大きな弊害が生まれることになりました。
「仕事を大げさにして価値を演出する」風潮
ホワイトカラーたちは、本来シンプルで良いはずのものを、無駄に大げさなシステムにし、仕様を肥大化させ、難解なカタカナ語でパッケージングして「大層な仕事」へと変化させてしまいました。
そうすることで自分たちの存在価値やプロジェクトの予算を膨らませてきたわけですが、その結果現場に残されたのは、肥大化した仕様と無駄な手続き、そして本質から遠ざかった巨額のコストです。
その象徴とも言える、数年前のコロナ禍で実際に目撃した「呆れるほどアホなオーバーエンジニアリング」のエピソードを紹介します。
7セグLEDをAI画像解析する大バカシステム
コロナワクチンが話題になっていた頃、保存用に「マイナス70度を維持できる超低温フリーザー」が導入されていました。
その温度管理において、あるチームがドヤ顔で提案し、大金を投じて構築したシステムがこれです。
「冷蔵庫の7セグLED温度計をカメラで撮影し、AI画像解析(OCR)で今何度かを読み取って自動監視する」
思わず耳を疑いました。
「AI」「画像解析」「最新のDXソリューション」といった流行りのバズワードを並べ立て、カメラを設置し、クラウドや学習モデルを動かし、巨額の予算を費やして構築された豪華なシステム。
まさに「車輪の再発明」どころか、宇宙経由で隣の家に行くような愚の骨頂でした。
現場のプロなら「フォトカプラ数円」で終わる話
電気回路やハードウェアの基礎を知っている現場の技術者からすれば、開いた口が塞がりません。
7セグLEDの表示温度を取得したいなら、基板の配線から「オープンコレクタ」で引っ張るか、「フォトカプラ」を噛ませて電気信号として直引きすれば良いだけの話です。
電子部品代なんて数円〜数十円レベル。(マイコン基板は別途)
電気的に信号を直接読み取れば、カメラの位置ズレも、照明の反射も、AIの誤認識も100%発生しません。確実・安全・安価・絶対に壊れない、最強の解法が目の前にあるのです。
しかし、泥臭い現場の基礎技術を知らない「頭でっかちな高学歴」たちは、そのシンプルな解法に気づくことすらできません。
結果として、流行りの「AI」というパッケージに飛びつき、大金をドブに捨てることになりました。
技術は「シンプルで確実」が最強である
「最新技術を使っているからすごい」「大げさで複雑なシステムだから価値がある」というのは、完全に本末転倒な勘違いです。
本当に優秀な技術とは、課題に対して「最もシンプルで、最も安く、最も確実に動く方法」を選択できることです。
大げさな仕様やバズワードで飾られたシステムに出会ったときは、一度立ち止まって問い直す必要があります。
「それ、フォトカプラ数個で終わる話じゃないのか?」と。
