携帯用機器や家電製品から自動車の制御用にも用いられる組込みプログラムの開発が脚光を浴びるようになったのは、それほど昔の話ではありません。もちろん、こういったプログラムで何らかの制御を行うしくみそのものは、ずいぶん前から使われています。おそらく、マイコン炊飯ジャーなどの名前でCMに登場してきたときが、一般消費者の意識に上るようになった最初期のことではなかったでしょうか。
しかし、その後、コンピュータ機器の性能が劇的な進化を遂げるのに伴い、組込みプログラムにも急速に、複雑な処理の実行力が求められるようになってきました。また、消費者の嗜好の変化が加速するのに従い、あらゆる分野で製品寿命は短縮傾向を強め、新製品が出るか出ないかのうちに、もう次の新製品の開発に着手するというような、開発者にとっては相当に無茶な状況が生まれもしました。
組織開発 ――コンピュータの黎明期から長らくその発展を支えてきた職人型の開発では対応できないような局面が生まれてきたことで、それまで必要性は認識されながらも先送りされてきた種類のプログラム開発体制が否応なしに現場の課題として浮上してきたのには、上述したような過酷な製品開発サイクルが現実のものとなったことが直接の原因として挙げられるでしょう。いまや「腕の良い誰か」が事実上一人で作り上げてくれるのを待っていられるような悠長な時代ではなくなりました。多人数が全体機能の一部ずつを分担して開発していくような、現代において他の製品分野では当然のごとく行われている開発手法が本格的に導入される素地は、このようにして用意されたのだと言えます。
出典:特許庁『技術分野別特許マップ』プログラム制御技術応用分野の広がり(http://www.jpo.go.jp/shiryou/s_sonota/map/denki09/frame.htm)
ところで、1つのことに多人数で取り組む場合には、メンバーの間に共通の理解がなければならないことは論を待たないでしょう。窓やドアのサイズや寸法がバラバラでは家が組み上がらないのと同じことです。作業に関わる全員が同じ図面を見て、手順を確認してからでなければ、着手は危険です。プログラム開発にも、まったく同じことが言えます。いや、半完成品から目視では問題箇所を探り当てるのが困難という点で、実際のところ、もっと条件は厳しいかもしれません。
そこで、この分野では、当のプロジェクトに関わる共通理解のみならず、プログラミングに際しての共通の流儀といったものも要求されることになります。それにはマナーに類することも含まれます(「暗黙の了解」と呼ばれることもある、関与する以上は当然知っていなければならない種類の事柄です)。プログラムの書き方ならば学校でも、また独学でも身に着けることができますが、この「共通の流儀」は現場でなければ習得は困難です。実際には現場ごとの流儀というものがあり、それらは微妙に異なってもいるのでしょうが、いずれの現場にも共通している暗黙の了解というものもあります。それに何かが上積みされたものが、現場ごとの流儀ということになるのでしょうか。
『組込み現場の「C」プログラミング 基礎からわかる徹底入門』24ページより
――本書『組込み現場の「C」プログラミング 基礎からわかる徹底入門』は、まさに、この部分を重点的に解説するものです。つまり、C言語の文法を学んでもらうのではなく、現場における暗黙の了解事項を習得していただくことを目的としています。本書の全体に散りばめられた「定石」と「格言」にその意図が凝縮されていることからも、目指すところは、すぐにおわかりいただけることでしょう。組込み開発に携わる前に、すでに携わっているがスキルアップしたいというときにも、ぜひ本書をお読みください。SESSAME(組込みソフトウェア管理者・技術者育成研究会)の手になる、実際の研修などでも使われているコンテンツというところもポイントです。