25

「コー……ディング、規約ルール……と、おっしゃいましたか?」

「そうだ。」


 取り急ぎ、ジェンのリワンゴのなかを占拠する「謎の模様パターン」を、頭の中から追い出して。BBLさんが持ち出すであろう、マリエル・ダイク氏D&Dの筆頭パートナー来訪ことへ、どう受け答えしようか?……に集中していたので。前触れなく飛び出た「コーディング規約ルール」という専門用語テクニカルタームに、すぐ付いていけず。反応の鈍いロボットみたいにリピートしてしまった。


(えーと……??)


 とにかく「チャンネル」を合わせようとして、まず思い出した……のは。

 ノヴァル側の専門家証人エキスパート:アンブレヒト・キーファー氏が、ミルク・チョコレート色の作業着ワークウェア姿で立ち寄っていた頃のこと。その作業着ウェアは、きちんと上・下がお揃いなのに、どんな機能を追求してるのか曖昧な仕立てで。ジェンに言わせると、ノヴァル社内のエンジニア部隊であること「だけ」を示すユニフォームなのだそうだ。

 エンジニアといっても、キーファーさんはコンピュータ技師、それも生粋の「ソフト屋」で。「だから」ということもないけど、その真新しい作業着ワークウェアは。この先、いっこうに汚れそうもない……ように見えた。実際すぐ(この日のように)スーツ姿しか見なくなったのだけど。


『メーカーがプログラマーに「御作法」を守らせる理由は、後任者でも保守メンテしやすいコードが出来上がるようにすることだ……とか、そういう供述を僕等にさせるつもりはないだろうね。そういうのは「規約」を決めた人がやらないと、伝聞hearsayだって言われるだけだしね?』


 なにか、そういう「牽制」っぽいことを言っていた気がした。

 僕はといえば、プログラムの書き方の「集」を規約ルール……つまり『御作法』として統一するのは、まさに「保守メンテのため」だと思っていたので、キーファーさんが何をほのめかして――というより嫌がって――いるのか、よく解らなかった。


 しかし、この日。

 BBL氏から尋ねられたことで――


「コーディング規約を使うような業務は、しておりませんでしたが……」

ノヴァルここの仕事はそうだろうが、それ以前も?」

「ええ、僕は8年前にこの業界に入りましたが、そのときからプログラム・コードを書いたりする仕事は、保守も含めて全くしておりません。」

「周りも?」


 その問いで、さらに思い出したのだ。

「α協会」が誕生した直接の原因……協会の「元」になった企業が、立て続けに「災難」に襲われて、壊れていった頃のことを。


「ご存じだと思いますが……α協会が出来るまで、僕は只のアルバイトでしたから。聞こえてきた範囲の話ですが――」

「ふむふむ?」

「業界内でも、コーディング規約の使用状況は……企業によってまちまちだった、と。」

「ほう。」

「ご存じだと思いますが、企業が自分の事業に合わせて作ったソフトウェアでも、その事業の変化に合うように『中身のプログラム』を直していく必要があります。」


 黙って頷き、先を促すBBL氏。


「開発した方ご自身で、その後の保守も担当できているうちは、あまり問題にはなりませんが……とっくに辞められていたりして、関われなくなったとき。を依頼された業者が困ることが多いのです。」

「どういったことで?」


 実際に「困った」のは僕ではなかったので、ちょっと言いよどんでしまった。


「そうですね、中がどういう仕組みなのかよく解らない……ということかと。」

「ソースコードがあっても?」


 なるほど、と思った。BBLさんの側でも「ソースコード」という用語について理解しているから……と、いうことなのだ。


 人間プログラマがキーボードを叩いて書いていくのが「ソースコード」で、これをコンピュータプロセッサで解るように編纂コンパイルしないと動かせない……ということ。逆に言うと、動いてるコンピュータを分解しても、人間で理解できる「プログラム」は出てこない……ということ。

 だから、業者に修正を依頼するにしても、元の開発者から「ソースコード」を入手していないと無理だということ。

 こういった事情は全て理解していますよ、と。

 成程、そうであれば――


「はい、ソースコードが無い状態で業者が受けることはありません。ソースコードがあることは大前提です……とはいえ。たとえソースコードがあっても、その中身を読んで分析したうえでないと直せない……ということが問題になるのです。」


 そんな苦労を自分でしたわけではないので、何かムズガユくなってきた。しかもの筈なので、余計に。


「とにかく、まず動くように……と開発されて。場当たり的に修正されてきたソースコードは、解読に手こずることが多いそうです。そこで、業者側としては『設計書ドキュメントがあるか?』の他に『何らかのコーディング規約に準拠してるか?』も、受注前に確認する……のだと聞きました。」

「コーディング規約に準拠していれば…?」

「少なくとも、読みやすく・理解しやすい筈です。」


 ――筈


「なるほど、システム修正の受注条件として。」

「つまり発注側でコーディング規約を使っているかは、だということで。」

「ふむ。」

「一人が開発して、そのまま保守してきたようなシステムは、『まったく使っていないことも多い』という話でした。」

「だが、ということは?」

「そういうのではない……大規模なソフトウェア開発で、パーツに分けて複数のソフトウェア・ベンダーに外注してるような会社は、『使うのが当然』という雰囲気だったとも。」

「それは、メンテナンスをやらせないから?」


 ちょっと考えた。外注であれば、ことなどない筈だろう。


「納入検査をきちんとやって、合格しないと支払わないからだ……と。」

「パーツが仕様どうりに動けば合格、ではなくて?」

「単体テストだけで検収している場合もあるかもですが、『コード自体を読んで確認する』と聞いたような気がします。」

「その場合もだが―――」


 BBL氏の目が、少し泳いでいる気がした。


「――最終的には、納入されたコードを自分で直すことが目的と考えてよいのか?」

「そうだと思いますが……?」


 このとき僕は、かつてのバイト先……消滅した会社で言い争われていたことを、朧気に思い出していた。

 受注条件とすることに反対はないのに、自分たちが従うべき…となった瞬間に「コーディング規約の根拠」を執拗に追求する社員たちの姿を。

 本当かどうか知らないが、「」のだそうな。

 でも、それなら「単純に反対」で良い筈では?と、アルに聞いてみたところ。


『つまるところ、「お前等には有無を言わせないぜ、俺は言わせてもらうがな」……っていうことなのさ。』


 あの、8年前の騒ぎ。

(やや古いものの)コーディング規約を遵守したコードであると。確認のうえで受注した筈の大型案件で。ブ厚い「逸脱文書deviations」の存在が、後になって発覚したこと。

 

 この「逸脱文書」とは何か?というと。

 厳しいコーディング規約であっても、「やむを得ない事情」があるときに、ルールに従わない選択も認めている場合がある。

 ただし、その場合は。守れない事情や、守らなくて良い理由を、全て文書に残さなければならない……とされているので。

 その案件では、そのような「逸脱文書deviations」があったのに、受注の際に発見できていなかったのだ。


 ソースコードの解析が始まったとき、が記入されているコメントが無数にあって。何れも、自動チェックでは引っ掛からないような規約違反が見つかったコードラインだったので。「これは何だ?」という話になって、追求していくうちに、クライアントの文書倉庫の奥の方から埃まみれの……逸脱文書deviationsが出てきたのだと聞いた。


 その内容は、アルによれば。

 要するに、言っていたのだという:


 『俺は有無を言いまくっておいてやったぜ!』


 

 ――こんなこと、BBLさんに言うべきなのだろうか。コーディング規約の遵守をうたっていても、な場合があったことを? 逸脱文書deviationsを参考にしても、解読のペースが納期に間に合わず、違約金を払って受注を解約したことを……? それが原因で、会社を畳んだのかもしれない……と?

 ちょっとだけ悩んだが、僕も本当のところは知らないのだし――どう言ったものか考えるのも面倒なので。いっさい口に出さないまま……にしたわけだ。


 しかし、この時点の僕は。

 BBL氏が意識を注いでいた別の要素に、全く気づいていなかった。


『その場合も……最終的には、納入されたコードを自分で直すことが目的と考えてよいのか?』


 言われたとき。表情などにもっと注意していれば、気づいたかもしれない。

 企業がコーディング規約を使用する理由。もっと単純な目的として、『の確保』も……あることに。



 そう、このとき。まだ僕は、知らなかった。


 自動車分野のコーディング規約である「GUCAS:自動車システムC言語利用ガイドライン」。その策定にノヴァル自身も係わっていながら、一部しか遵守していなかった……として、原告から攻撃されていたこと。


 これに対し、ノヴァル側は「GUCASは業界標準」……と、反駁していたこと。


 そして……


 GUCASが、自動車安全重要システムの『を確保すること』を、最重要の目的に掲げていることを。

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る