12 posts tagged “voxで自分語りかよ”
チャプター1の残りは主にプログラムの説明だったので、読んで終了。
一部理解できないところがあるが(もう!?)、何がわからないのかがわからないので、よしとする。
さて、チャプター2に入るかそれともプライベートプロジェクトを進めるか仕事をするか。
うちが何かを作ると工場が増えて、五十人も百人も雇用できるようになるなら、日本の将来はバラ色だけど、現実はそうじゃない。その反対だもの。こんなふうに先行きが見えると、本当に嫌になってしまうね。
俺が工場のシステム屋を辞めた一因はこれだったなぁと。
自分が書いたプログラムで早く帰れるようになるかわりに残業手当が減って、パートのおばさんはシゴトがなくなって辞めちゃって。
プログラマーの業から逃げた、そんな過去。
先日のCSS niteにてwithoutsugarさんにお会いしたときに、
「ズォーカーさん」と言われて気づいたんですが、やはり皆さん脳内では「ズォーカー」とか「ズョーカー」とか読んでしまいますよね。
特に読み方気にして無いんですが、もし対面することがあれば「ジョーカー」でいいですよ。
自分で「ジョーカー」って読んでるし、「ズ」で始まるとなんかすげぇ発音しづらそうで申し訳ないので。
以下どうでもいい話題。
- ZokerってのはVoxでしか使ってない
- 実はZa Binary Jokerの短縮形
- Za Binary Jokerも後付けで先にZBJという3文字があった
- 本名を中国語発音したZhen Ban Jiang(だったかな)の頭を取ってZBJ
今となってはすっかり聞かなくなった言葉だが、90年代は汎用機からUNIXサーバへの移行がトレンディなダウンサイジングの時代だった。
会社としては周辺システムを売り込まれるままに導入し、いくつかのUNIX系システムが動いていたのだが、当時のUNIXシステムって結構荒くれ者が多くて気がつくとパニック起こして止まってたりしていた。
以前も書いたように、周辺システムであろうが100%の稼働率を求まられる世界なので、コトが起きてからメーカーのCEに連絡を取っていたのでは復旧に時間がかかる、それ以前にUNIX系の知識を持つ人間がいなかったため、連絡の電話もトンチンカンになりがちであった。
そこで、「若いから」という素晴らしい理由により3つほどのシステム管理というか、おもりを業務に追加された。本来なら俺より若いヤツがいてそいつがやるはずだったのだが、数ヶ月前に退社していたのである。引継ぎはrootのパスワードだけだった。
また、この時期Nifty ServeのCUGという、なんつーか特定のユーザだけでNifty Serveのサブセットを利用できるものが全社的に導入された。ワープロ専用機のOASYSに1200bpsのモデムを突っ込み、電話回線で接続するという、今考えても内線,FAX,社内メール(勿論アナログ)の組み合わせのほうが早くて安いと思われるシステムだが、これを部長以上に設置するという無茶があった。
これの勉強会の資料(手順書)を作れというお達しがあり、ワープロも庶務担当に頼むという皆様向けにどう説明すればいいかと悩んだ挙句、「1:電源を入れる」というバカにしてんのかテメェレベルの手順書を作った。
そして望んだ勉強会、いきなり質問が飛んできた。
「電源ってどこや?」
すごい負けた気がした。
毎日ダム端末に向かい、ひたすらコードを書いていた俺も「一人で現場との折衝」を経験する時がやってきた。
最初の案件は経理課からの、月次帳票の新規作成依頼だったと思う。経理担当は同期入社のNだったが、これは俺にとって幸いだった。
なにしろ、仕様書どおりにコードを作るだけしかやってきていないので、自分の作った帳票がその後どう使われているかなど、まったく知らなかったのである。勿論経理用語もチンプンカンプンである。そこに来て相手は商業高校、専門学校、そして経理課と金勘定のプロフェッショナルだ。なにをどうしていいのかまったく分からない、というより相手の依頼通りに作るしかないのだ。
プログラマ時代であればそれでもいいだろう、だが今はSEとしてここに来ているのだという謎のプライドが出てきて、俺はなんとかSEらしいことをしようと必死になってきた。
相手はプロだ、とにかく質問しまくることにした。この数字は何を意味しているのか、どの帳票のどの項目と連動しているのか、主に見るのはどの項目か、そして何に困っていて依頼書を書いたのか等等。そんなことも知らないのか、と苦笑しつつ同期のよしみでか丁寧に一つずつ教えてくれるN。
これに味をしめて「とにかくその仕事のプロに聞きまくる」という作戦を実行するようになった。
この作戦は相手に大量に話してもらうことによって、本人も気づいていないシンプルな解決策を引き出すこともあるし、こちらも提案の材料を増やすことができる、また業務知識も少しずつではあるが得られて、有意義だった。また、話の聞き方、引き出し方のスキルもずいぶんこれで鍛えられたと思う。
今でも、新規プロジェクトの依頼が来たときはプロジェクトリーダーに話を聞きまくようにしている。
ただ最近はプロジェクトリーダー不在のプロジェクトが多いのでこの作戦はうまくいかないことが多いが。
なんだかいい話っぽくなってきた気がするので、やらかした失敗も書いておくことにする。
当時、いや今でも汎用機の世界はそうかもしれないが、夜間バッチ処理というのがメインだった。昼間オンライン処理で集めたデータを夜一気に処理して、朝の業務開始までに帳票を打ち出すのである。処理Aでできたデータを処理Bで使って、というふうにデータはバケツリレー式に渡されていくので、クリティカルパスとなる処理が落ちるとバッチはそこで止まってしまうのだ。
いやー、止めた止めた。テストデータを残したままのファイルダブり、書き出しファイルのファイル名間違い、古いバージョンのJCL(シェルスクリプトみたいなもん)をアップしていた等等、月に一回は深夜オペレータに呼び出されて白い目線を浴びながら復旧させるという状態だった。課長からはちゃんとチェックするようにとそのたびに釘をさされたが、しまいには何も言わずに異常報告書を受け取られるほどになっていた。
ここで俺はコンピュータに事前にJCL、ファイルの状態を検査させることはできないかと思っていたのだが、いかんせん手元にある武器はCOBOLとEASY+ぐらいであり、また汎用機のデータをPCに落とす手段も当時は無かった。いや、できなくは無いが運用担当の人に時間を割いてやってもらうことになり、頼みづらかったというのもある。たとえPCに落としたとしても、自分で構文解析までやるコードを書いたかと問われれば、まぁ、やんなかっただろう。
あの頃、Perlとかを知っていれば間違いなくやっただろうが。
さて、昨夜もよく似たチョンボをやってしまった。
結局のところ、俺は人的チェックが苦手すぎる。チェックリストにチェック項目を17個作ったとしても、いつかは絶対18個目でチョンボしてしまう。どうしたものか…。
研修を終えて鈴鹿に戻ってきた俺は、受注・設計関連システムの担当となった。
勿論、先輩のサポートとしての出発である。先輩というと一回り上ぐらいを想像するかも知れないが、俺が入るまで最年少は20代中盤の女性、その上はいきなり40代というよく言えばベテランぞろいの部署であり、向こうも何年ぶりかの新入社員をどう扱ったものかと困っていたのかもしれない。
最初に依頼された仕事は、COBOLのプログラムの修正だったかと思う。
基本的に仕事は現場から依頼書が来て、課長が振り分け、現場と相談して詳細をつめて、プログラムを修正して、依頼書に確認印を貰って終了、という流れであり、プログラマ時代は先輩が詳細まで詰めてきた情報を貰ってプログラムを修正するのが仕事だった。
最初の仕事を数時間で終わらせて先輩に報告すると、「もうできたのか?テストはOK?」と聞かれ「勿論です。」と答えてはみたものの、やっぱり不安があるので2人で出力結果をチェック。
「OK、問題ない。」
と言われたときに、初めて職業プログラマとしてのデビューをしたという、感動ではない、なんだか「後戻りできない不安感」のようなものを感じた。それは、今までフリースタイルでやってこようとしていた自分に「型」ができてしまった、という不安感だったのかもしれないが。
主な開発はCOBOLだったが、今は聞かなくなった簡易言語のEASY+というものが好きだった。
実行速度や、細かい制御はコンパイルしたCOBOLに劣るが、「データをソートして集計して印刷する」という依頼の8割を占めるものは、開発時間が半分以下ですむのだ。先輩たちは「EASY+はまぁ、どうしても時間が無いときにねぇ」といった感じであまり使いたがらなかったが、俺はガンガン使っていた。自分が楽なのもあるが、なにより依頼納期にかなりマージンを持たせて開発できるのである。
そう、納期。
プログラマ時代、最も叩きこまれたのが「納期厳守」である。
よく、「納期守るためにクオリティを下げる」という話を聞くが、製造業の、しかも作っているものは不具合出れば死人が出かねないものの工場のシステム屋である。クオリティの維持というものは、言葉にするレベル以前の常識で、下げられるものでは無い。
1日、いや、数時間帳票が遅れればその間、使う人はなにもできずに損失が出るのである。下げられないクオリティと、伸ばすことができない納期。叩き込まれたと書いたが、誰かに言われたわけではない。そういう世界だったのだ。
それでも思った以上に複雑な修正で納期に間に合わないときがある。
そのときは「間に合わない」と思った瞬間に先輩に相談し、依頼元に再調整をお願いしにいった。この「間に合わない」と思う時期が、慣れれば慣れるほど早くなる。
大抵の場合は理解して伸ばしてもらえた。が、そうはいかない場合もある。依頼元が意地悪なのではなく、ラインの業務と繋がっている場合だ。
例えば、月末処理の帳票が間に合わなくて1日遅れるから、一日月末処理が伸ばしてもらえるかというとそうはいかない。本社、銀行、関連会社等等とのデータ交換の締め切りは決まっているからだ。
こうなったらもう24時間コードを書くしかない。眠気で生産性は落ちるだろう、休んだほうが生産性はあがるかも知れない、ただ、納期見積もりを間違えた自分が、取り戻せるかどうか分からない時期まで気づけなかった自分が恥ずかしくてコードを書くしかなかったのだ。
幸いこんな経験は10年間のうちで1回しかない。というか1回やったらたいがい懲りる。
今夜はここまで。
寮生活、というかこの頃の私生活はどうだったか。
とにかく金を使っていなかった。貧乏性で金の使い方を良くわかっていなかったということもあったが。6枚入りの食パンと、1リットルのコーヒー牛乳を買ってきて朝1枚昼2枚夜3枚とかいう食生活だった。
最初の頃はヒマをもてあました同期と自動二輪の免許を取りにいったりしていたが、しばらくすると休日は神田の本屋を立ち読み行脚するようになっていた。
いもやで天ぷら定食を食い、神田で目に付いた本を片っ端から読み、そのまま歩いて秋葉原に向かって辛ラーメンを食って帰る、という休日がしばらく続いた。
この頃鈴鹿ではお目にかかれなかった「ガロ」を買って部屋において置いた所、同期のマコちゃんがそれを読んでショックをうけ、研修後何年かぶりに会った時に「まだダークな趣味しとんの?」という、知らない人が聞いたら間違いなく誤解されるような質問をされたこともあった。
寮だけに門限はあった。たしか夜11時だったと思うが、寮母のおばあちゃんはとっとと寝てしまうし、点呼がどうこうということは無かったので、たまたま渋谷見物をしていて門限に間に合わないな、こりゃという時間になってしまってやむを得ず門限破りをしてから、休日はほとんど寮に帰らなくなった。
だいたい池袋か渋谷で朝まで徘徊し、あっちでチーマーの喧嘩があるといえば見物に行き、こっちでチーマーの喧嘩があるといえば見物に行き、まぁ、この頃の池袋か渋谷なんて暇つぶしはチーマーの喧嘩ぐらいしかなかったのだが、夜遊び覚えたてのガキはそれだけでも楽しかったのである。
仕事以外のこと書くと際限がなくなりそうだから、私生活はこのエントリーだけにとどめることにしょう。
余計なことまで書きそうだし。
研修で汎用機の世界に初めて触れた。
歴史を知る、というようなことで1回だけではあったが、パンチカードでのプログラム入力も行った。SFでしか見たことのないパンチカード、ぐるぐる回るオープンリールテープ、目にも留まらぬスピードで用紙を吐き出す全長5mのレーザープリンター、走り回るオペレータ等、今まで自分が触っていた「パソコン」とは違った世界がそこにはあり、これぞコンピューターだ、と俺は興奮しまくったいたが同期の中にはハードな課題にキレつつあるものもいた。
季節は秋になり研修は後半に入った。
いよいよ俺が楽しみで仕方がないCの授業が始まった。勿論生まれて初めて触るUNIX(もどき)、そしてUNIXと密接な関係を持っているC、緑一色のTSSのターミナルも素晴らしいが、生まれて初めてコンピュータの実装に「アート」を感じた頃だった。
しかし舞い上がった俺はしばらくすると絶望することになる。
Cを学んだことのある人ならニヤリとするだろう。
「ポインタ」である。
教科書、ノートを何度見直しても理解できないのである。確かにコードは書ける、出力結果も間違ってはいない。
ただ、何故そうなるのか、理解できないのだ。自分のモノにならないのだ。これまでトップクラスの成績でやってきた自分が理解できないということが許せないのだ。
この時期、外見上は普段温厚な俺がピリピリしているのをおかしく思ったのだろう。ラフィンノーズとノリピーが好きな同期、ヨッサンが声をかけてくれた。
「理解できなくて、イライラしている。」
俺が答えるとヨッサンは笑いながら言った。
「え?今頃?! 俺なんか、研修始まった最初っからそうやで!」
言われた瞬間、気づいた。俺はプログラマとして優れていたわけではなく、たまたまガキの頃からプログラミングに「慣れていただけ」だったんだと。
俺は「ありがとう、気が楽になったわ」とお礼を言って、なんだかよく分からないといった顔のヨッサンに別れを告げK&Rを買って猛勉強を始めた...というようなことはまったくなく、「わからないものはいつかわかる」と問題を先送りにして、その後Cを触る機会も無く、いまだにポインタについては苦手意識を持ったままである。
研修生が宿泊する寮は川崎市にあった。
近鉄、新幹線、京浜東北線、市バスを乗り継いで、そろそろ夕方という時間に多摩川のほとりにあるその寮についたとき、出迎えてくれたのは入り口に無造作に置かれていた宅急便で送った俺の荷物と、寮長の部屋から流れてくる踊るポンポコリンだった。
寮には関西系の工場、事業所から集められた新入社員が入ることになっていたが、もとから寮に住んでいる川崎工場の先輩がたは一クセも二クセもありそうな人ばかりだった。本当かどうかは分からないが、集団生活に馴染めない系の人を押し込めておく場所だとの噂も聞いた。工場の近くの寮ではなく、バスで工場まで30分以上かかる場所にあり、やけに空室が目立つ寮だったこと、そしてよく言えば自由奔放な感じの住民のことを考えると、本当だったのかもしれない。
週が開けて、いよいよ研修初日。
バスと京浜東北線を乗り継いで、川を渡って蒲田にあるF社の研究施設兼専門学校に出勤、いや登校、どっちか良く分からないがやってきた。ここのオリエンテーションで説明をしてくれた世話係りのオッサンが、外見、声、言動全てにおいて「いやな上司」であった。オリエンテーションの終了後、ラフィンノーズとのりピーが好きという関西系の同期生は「いっぺんシメるか。」と憤慨していたが、俺は漫画に出てくるような完璧っぷりに感動し、自分がサラリーマンの階段を一歩上ったようでなんだか嬉しかった。
研修は主に汎用機でのプログラミング(COBOL,FORTRAN,アセンブラ)が中心で、PCでのプログラミング(zenixだったっけかな、unixクローン,C,LISP,Pascalやったっけかな...?)、情報処理工学みたいなの等、普通の学生さんは2年のコースを1年で履修するハードスケジュール。課題も出まくりだったが、小学生の頃から日常的にプログラミングをやっていた自分にとっては、言語が変わっただけで、それほど負担ではなかった。
この研修でダンディな声と容姿のCOBOL講師の話は今でもよく思い出す。
「コマンドの綴りとか覚えなくていいんです。間違えたらコンパイラが教えてくれるんだから。大事なのは自分のやりたいことをいかにコンピュータに伝えるかということ。問題の文章をコンピュータのために組み立てなおす力、それがプログラマの生産性を決めます。」
意識してはいなかったが、やはり俺も学生時代には「覚えていることが多いヤツはすげぇ」という価値観があったのかもしれない。
この言葉で記憶能力を高めることよりも、処理能力を上げること、複雑な問題をバラバラにして、クリティカルなルートを見つけることを目指すようになった。COBOLは今では使うこともないが、プログラマの生産性は、コードとは別の部分にもあるのではないか、ということを教えてくれたこの人には感謝している。
...長ぇな。