日に日にプロジェクトがきな臭くなってまいりました。
これから秋冬にかけていよいよ必死な日々が始まるかもしれません。
炎上するかどうか、今が踏ん張りどころな気がします。
今回もわが社のこんなところが、組み込みソフトウェアエンジニアはつらいよ、という話を書きます。
前回は「ソフトウェア品質というものが理解されていない!」という話を書きました。
組み込みソフトウェアの兵站
わが社の問題点として、
「デバッグ環境がまともに用意されない」
ということがあります。
例えば、3人の組み込みソフトウェア作業者がいたとして、デバッグで使用できる環境(わが社では試作中の装置)が2つしかない、ということはざらです。
さらには他の部門(メカ屋さん、電気屋さん)も同じ装置を使う場合もあります。
それによって装置を使用できる時間がどんどん減っていきます。
さらにはメカ部品や電気部品がいつの間にか奪い去られている、なんてことも!
(なんという治安の悪さ・・・)
しかも装置を使いたい人が複数人いても、まともに使用管理をしていない!
早い者勝ちか、力関係か、さもなくばずっと装置の前に居座る、といった感じです。
もちろん、組み込みの仕事は装置が必要なデバッグやテストだけではありませんが、装置が使えないということは設計、コーディングして作った成果物を試す機会がない、ということを意味します。
それによってなかなかバグが発見されない、気づいた時にはバグだらけ・・・。
でもバグを発見するために使用できる装置がない・・・。
という一種の悪循環にはまることが多々あります。
今の僕が所属しているプロジェクトはそれほどでもありませんが、お隣のプロジェクトは、大きい装置を多人数で開発しているので、試作中の装置の数も限られており、まさしくこの状況に当てはまっています。
組み込みソフトウェア開発という戦場において、兵站が全然整っていないというような状況です。
兵站の重要性を理解していなかったことが、日本の歴史的な失敗例としてもありましたね・・・。
無計画に突き進んでいき、破滅的な打撃を受けるというのはわが社のプロジェクトでもありありと実感できる。
現状に甘んじている
何よりも問題なのは、組み込み屋さんたちがその状況を、そういうもんだと受け入れてしまっていることです。
デバッグ環境が足りないのはしょうがない、できる範囲でやっていこう、といった感じです。
ですが、それによって最終的に不利益をこうむるのは自分たちです。
本来であれば自由にデバッグ環境を使用できたとしても、組み込み開発の仕事は、仕様変更や設計がうまくできない、などでスケジュールが遅延していく恐れがあります。
せめで自由にデバッグできる環境は、開発初期に必死の形相で勝ち取っていくべきです。
僕は今所属しているプロジェクトにおいて、自分のメンバー(4人ほど)が快適なデバッグ環境を得ることができているか、いつも気を配っています。
基板環境を確保しておいてよかった
ちょっと気を抜くとすぐにほかの部署の作業者に装置を取られていたりしますが、そのたびに「ダメだよ!」と注意します。
煙たがられても、割り切るしかありません。
それでも、「どうしてもお願いします!こっちのスケジュールが間に合わないんです!」と頼み込まれてなし崩しに装置を取られていってしまいますが・・・。
そういう時のために、一つ手はあります。
開発初期に使っていた、装置の基板環境(メカの筐体はなく、基板だけが配線されたもの)を使います。
今のプロジェクトの初期にこれを電気屋さんに作ってもらっておいて本当によかった。
装置使用の管理システムが機能しない
ところで、プロジェクトにはそれぞれ「装置管理表」があります。
エクセルで作成したもので、装置を使う前に使用期間と使用目的を記入して、みんなで情報共有できるようにしたものです。
今まで何度かプロジェクトに所属して開発に携わってきましたが、この装置管理表がまともに機能していたことは一度もありません(笑)。
みんな全然使わないんですよね・・・。
たぶん誰か一人がルールを破りだすと、みんな管理表が意味をなさないことを感じ始めて廃れていくんだと思います。
本当ならば各設計部門のリーダーなどが管理を徹底するべきなのですが・・・。
管理しないことによって装置の使用のバッティングが頻発するのですが、それによる時間的なロスを真剣に受け止める人がなかなかいない。
あといつの間にか装置の部品がどんどんなくなっていく・・・。
Teamsで管理することにした
今回のプロジェクトでは、エクセルによるマシン管理は最初からやめました。
かわりにmicrosoft Teamsを使用しています。
近年わが社でも導入されたのですが、なかなか便利です。
自由にメンバーを指定してTeamsアプリ上にチームを作って、コミュニケーションをとることができます。
このTeamsに装置管理用のチームを作成して、装置を使う人はみんなチームに入れています。
そして装置ごとのスレッドを用意して、装置を使いたい人はそのスレッドに書き込むようにしています。
これがなかなかうまく機能しています。
やはり、サーバに置かれているエクセルを開くよりも、Teamsによるチャット形式のほうが使いやすいですね。
目新しさもあるかもしれません。
それに、副次的なよいこととして作業者が装置を使用しているときに、その装置に関して気になる点があれば、そのこともチャットに書いて情報を共有することもできます。
これも今回Teamsを利用したことによる良い点になっています。
これによって誰が使っていたかは一目瞭然なので、部品を勝手にとっていくということも減りました!
完全にはなくなりませんが!