試行錯誤で分かったスパゲッティコード撃退法:システム開発プロジェクトの現場から(1)(1/2 ページ)
開発現場は日々の仕事の場であるとともに、学びの場でもある。先輩エンジニアが過去に直面した困難の数々、そこから学んだスキルや考え方を紹介する。
IT業界に在籍する私の経験を振り返り、現場で出合った困難な局面とその対処の過程を紹介します。そこで学んだことが、同業界で働く皆さんにとって何らかのヒントになれば幸いです。しばらくの間、お付き合いください。
連載第1回である今回は自己紹介も兼ね、この仕事を選んだ経緯と、私のITエンジニアとしての原点となった最初の1年間の経験についてお話しします。
もともとの志望は機械系のエンジニアだったが
私は小さいころから、機械や自動車が大好きでした。自宅の掃除機やラジカセなどを分解しては内部の構造に感心したり、新しいクルマが発売されれば雑誌でそのスペックや機能をチェックしたりしているような子どもでした。
学校でも数学や物理の授業が好きでした。中学生のころには「将来は機械系のエンジニアになる」と思っており、そのことに何の疑いも持っていませんでした。
ところが、いざ大学に入ってみると、講義はいかにも退屈なものでした。すでに確立されている理論が淡々と説明されるだけで、何とも刺激に乏しかったのです。
エンジニアになっても、このように決まりきった方法や手順に従って図面を引き続けるだけなのか……。暗澹(あんたん)とした気持ちになりました(単なる当時の思い込みです。実際にはそんなことはありません)。私は初めて進路に迷い、とても不安に感じました。
そのころ世間では、Windows 95やインターネットが注目を集め始めていました。洗練されたインターフェイスと、リアルタイムに情報を交換できる環境。生活の隅々まで端末が行き渡り、瞬時に大量の情報をやりとりできる時代が来る……。黎明(れいめい)期にあるこの分野なら、自分で考えるべき領域も広く、いろいろなアイデアを試す余地があるのではないか。そう考え、私はこの分野に大きな可能性を感じました。
また、従来から経済や経営にも関心があり、新聞や経済誌によく目を通していました。情報システムと経営、この両者への関心から、いつしか私は「情報システムで経営を効率化する」ことにダイナミズムと面白さを覚えるようになっていったのです。
こうして私は、機械系のエンジニアからITエンジニアへと進路のかじを切ることになりました。
配属先はオペレーションルーム
「経営に寄与するシステムの開発」を志し、就職活動を経てシステム業界に飛び込んではみたものの、配属されたのは地理情報を扱う会社のオペレーションルームでした。仕事は、計測部門からの出図依頼を処理して図面を引き渡すという、至って簡単なものでした。
志望と現実のあまりのギャップに、最初はまったくモチベーションがわかず、またしても暗澹たる気分に陥りました。しかし、だからといってまた進路を変えるのでは、いつまでたっても一人前にはなれません。
「志望は志望として自分の中に持っておき、ひとまずいまできることから始めよう」。半ば強引に気持ちを切り替え、あらためて周囲を見回してみると、ホストコンピュータ(MSP)、UNIX(DEC、サン・マイクロシステムズなど)、Windows PCと、ひととおりのプラットフォームがそろっているではありませんか。
「各プラットフォームの基本的な扱い方を習得する」「それぞれの特徴・違いを理解する」。これらのことを実現できるチャンスだと考え、当面の課題として取り組んでいくことに決めました。
開発をやりたい!
私は日々の仕事をこなしながら課題に取り組みました。そのうちJCL(Job Control Language)やC Shellが書けるようになり、それぞれのOSのコマンドも覚えてひととおり扱えるようになって、ひとまず課題はクリアすることができました。
そうなるとやはり、次のステップとして「開発をやりたい!」という思いが強くなってきます。しかし、自分の中で思っているだけでは何も始まりません。目の前の仕事は手早くこなしつつ、仕事の合間に喫煙所などで、自分がやりたいことを同僚や上司に訴えるようにしました。煙たがられないよう、ほどほどに……。
当時の上司は、そんな私に理解を示してくれた方でした。ある日、「出図処理の作業は自分が引き受けるから、おまえは開発に専念しろ」といってくれたのです。自分の仕事が増えることになるにもかかわらず、私に開発に取り組むチャンスと時間を与えてくれたのです。
その言葉を聞いた瞬間、「やった!」と思い、反射的に「ありがとうございます!」と答えていました。上司に感謝すると同時に、真摯(しんし)に周囲に訴えかけることの大切さを実感しました。この上司には、いまでもとても感謝しています。
初めてのシステム開発は何もないところから
当時そのオペレーションルームでは、出図作業に要した時間とコストは管理されておらず、クライアントへの報告も行われていませんでした。しかし作業実績は報告書としてとりまとめて提出するべきだろうという話になり、そのために必要な簡単なシステムを作ることになりました。その開発を私が任されることになったのです。
このとき提示されたシステムの「要件」は、「報告書はこんな感じで、グラフがあって……、あとは分かりやすくて使い勝手の良いものを頼むね」という言葉と、ミスプリントの裏紙に書かれたメモだけでした。
「あいまいで大ざっぱな要件だな」とは思ったものの、私自身も携わっている業務ですから、やりたいことのイメージが分からないわけではありません。細かい要件は「ここはこうした方がいい、こうあるべきだろう」と自分なりに補いつつ、時々機能イメージを作ってレビューを受けながら進めていくことにしました。
「こんな画面とこんな帳票が必要かな」と、システムに必要な機能を何となくイメージはしたものの、さてそれをどうやって実現するかとなるとほとんど見当がつきません。そもそも私自身「システム」を作ったこともなく、「データベースって何?」という状態だったのです。
周囲に開発のいろはを教えてくれるような人もいませんでしたし、研修などというぜいたくな機会もありません。困り果てたものの、自分からやりたいといっている手前、「やり方が分からないからできません」とは口が裂けてもいえません。
Web上に情報もなかった当時、頼りになるのは大阪・梅田の紀伊国屋で手に入れてくる書籍類(もちろん自腹)と、PCにインストールされているオンラインヘルプでした。
Copyright © ITmedia, Inc. All Rights Reserved.