第17話 ハード屋とソフト屋
コンピュータ・システム開発に関しては、ハードウエアとソフトウエアの分業化が進んでおります。
ハードウエアを開発する人たちのことを「ハード屋」、ソフトウエアを開発する人たちのことを「ソフト屋」と呼び合っております。
ハード屋とソフト屋との間には埋めがたい溝があります。それはシステムを開発する上で利害が対立することが多いからです。
開発する上で厄介な部分をお互いに押し付け合うことがよくあります。しかし、ハードウエアが先行して開発されることが多く、ほとんどの問題点はソフト屋に押し付けられます。
ハードは出来上がってしまっているので、もうどうにもならないからソフト屋さんで何とか解決して欲しいなどど泣き付かれることが再々にしてあります。
私も大学卒業後はソフト開発会社に在籍しておりましたので、何度もこのような場面に出くわしました。そして、そのお陰で何回徹夜したことか。
しかしソフトでできないものはできない。こちらが散々努力してみたもののどうしてもソフトでは実現不可能であることを説明(論理的に説得)すると、「ではハードで検討してみましょう。」
ということになって、数時間後にはICを1個追加するだけでできることがわかり、翌日にはジャンパ配線で追加回路が組みあがっているなんていうこともざらでした。
優秀なハード屋さんであれば結構ソフトの事も理解してくれていて、「そこのところはソフトでは無理そうだ。」とか「ハードで実現した方が楽だ。」というように
最初からハード設計に盛り込んであるので、ソフト屋もスムーズに開発が進められます。
でもなかなか優秀なハード屋さんには巡りあえません。大体は先に書いたような経過を辿り「そんなに簡単にできるんだったら最初からやっておけよな!」と言いたいのを押さえて、ハード屋さんにひたすらお願いすることになります。
(ハード屋さんの中には、どんなにお願いしても聞く耳をもってくれない人もいましたが・・・。)
これらの原因は、お互いのことを良く知らないことにあります。ソフト屋さんもあまりハードのことを知りませんので、ハード屋さんの言われるままに何とかソフトで解決しようと努力はしてはみたものの時間は過ぎるばかりで、
結局は納期遅れという最大の失態を犯してしまうことになります。
ハード屋さんももう少し協力して、ハードの立場から何が問題点なのかを明確にすれば早期解決が可能なことがほとんどだと思います。納期が遅れればハード屋さんだって困るでしょうに。
ところが、ひょんなことから私自身がハード屋をやらされることとなりました。正確に言えばハード屋とソフト屋の両方を兼ねることとなったのです。
アマチュア無線で少しばかりカジッタ程度ですし、デジタル回路なんていうのは無線をやっていた当時は馴染みの薄いものでした。
四の五の言っていても始まらないので、ハード設計のノウハウ本などを大量に買い求めて一から勉強です。といっても、ある程度はハードウエアをソフト屋の立場から見ていましたので、
何がどうなっているのかは凡その見当がつきました。基板や筐体設計のノウハウを学べば何とかなるものです。
記念すべき開発第1号は、デジタル音声録音再生装置でパソコンの拡張スロットに取付けて録音データの保存や録音、再生、データ編集操作をパソコン上でできるようにしたものです。
今でこそCPUの動作速度が速いので、難なくできそうに思われるでしょうが、当時の主流は286とか386といったCPUでしたから結構苦労しました。しかし、最大の敵は何と言ってもノイズです。
デジタル回路はノイズの宝庫です。その真っ只中にアナログ回路が同居するわけですから問題を起こさないハズがありません。
案の定、増幅ゲインが高いマイク録音回路がCPUのバスノイズを拾っているようです。マイク録音時にデータを転送するタイミングで耳障りな雑音が混入します。
このとき解決の糸口を与えてくれたのが、岡村廸夫著「解析ノイズ・メカニズム」CQ出版社でした。さすがプロだなと駆け出しのハード屋は、只々感心するばかりでした。
お陰さまで何とか実用レベルまでノイズを低減させることができ、製品化されて世の中に送り出されていきました。噂では、某公共放送でも使用されていたそうな。
第2号がパソコンの画面を瞬時にコピーしてプリンタに印字する装置です。簡単にいえば、パソコンから出力される信号を途中でパクって、内部メモリに記憶して
後でゆっくりとプリンタに印字しようということです。
この装置では大量のデータ処理が必要になります。例えば、64行64列の行列の転置行列を求めるだとか8ビットデータのタスキがけ処理だとかが必要とされます。
当然ですがソフトでできないことはありません。但し時間が掛かってしまうのです。何せZ80をベースにしたワンチップマイコンでクロックが6MHzときてますから、ソフトのみで
実現したら1行印字するのに1秒位い掛かってしまいそうです。
ハード屋さんならば、「タスキがけは良いとしても転置行列は面倒くさいからこれはソフト屋に任せよう。」と安易に考えてしまったことでしょう。
この時ソフト屋のことを少しでも理解して、「ここのところがボトルネックになるから何とかハードで解決しよう。」と考えてくれればトラブルを未然に防止することができます。
同様にソフト屋も高価な部品を使わずにソフトで実現できることは積極的に協力すれば、コストを押さえたパフォーマンスの高い製品にすることができます。
このように思えるのも両方を経験しているからかも知れません。互いの領域をほんの少しでも理解すれば、それとほんの少しの思いやりを持てば・・・。
今日もどこかで無用の争いが起こっていることでしょう。
2008/06/04新規
2008/12/29更新
|