「プログラムによってモノが動く」感動“いろいろなものに興味を持ったことが、現在の基礎に”
はじめてパソコンを見たのは中学1年生のとき、友達の家に遊びに行ったときでした。当時は8bitパソコンで、まだグラフィックを表示することはできず、アセンブラ言語でゲームが動いていた時代でした。「プログラムによってモノが動く」ということに、とても衝撃を受け、その仕組みを解き明かしたいと考えるようになりました。
地元の農業高校に進学後、陸上部との掛け持ちで、パソコン部を立ち上げ、初代部長に就任しました。同期のみんなは土木関係に就職する人ばかりでしたが、パソコン関連の職業に就く夢を捨てきれず、コンピュータ関連の専門学校へ進学することにしました。
専門学校に入学したときには、すでに自分でプログラムを組むことができましたので、専門学校の先生と一緒になって実習課題の教材を作りました。また専門学校の親会社がCAD関連の業務を行っていたこともあり、CADオペレータのアルバイトをしながら、専門学校の授業以外にもコンピュータに関して、いろいろなことを学びました。
専門学校卒業後、東京のソフトウェア会社に就職しました。そのとき、最初に担当した開発言語が「RPG」でした。IBMでRPGの技術研修を受けた際、初めてオフコンを操作することになり、パソコン以外のコンピュータがあることを知りました。
いま振り返ると、専門学校での授業やアルバイトおよび就職したときに、いろいろなものに興味を持ったことが、現在の基礎になったのではないかと考えています。
「モノづくりの楽しさ」を伝える“お客様からの評価、成果を大切に”
就職した当時は、バブル景気が終わりかけでしたが、とにかく忙しい毎日であり、「仕事をしている」というよりは、「馬車馬のように職場に通っている」という状況でした。
そのときに、よく通っていた飲み屋の主人が、新人の私に「社会人としてのマナーや心得」を教えてくれました。いまでも印象が強く忘れることができないエピソードがあります。
ご主人が自分の弟子を飲み屋に連れていき、翌日、そのときの感想を弟子に聞いたそうですが、大抵の弟子は、ただ食べるだけで何も言わないため、「ただ食べるためだけに、お前たちを飲みに連れて行っている訳ではない。どうして、そんなことが分からないのか!」とご主人が怒ったそうです。
この話を聞いたとき、私にもいろいろなことがあったため、「『教える』ということがどういうことなのか」を、ご主人から教わった気がしました。「何か一方的に教えるというのではなく、頭で暗記するだけではなく、職人的な感覚で、眼で見て、肌で感じて覚える」ということが必要であり、そのことに「気づく」ことが最も重要であると私は理解しました。日常的な業務に忙殺されていると、「気づく」というプロセスが疎かになってしまいますが、部下に対して「気づかせてあげる」というのも上司・先輩としての大切な役割なのではないか、と思いました。
次に、製造業に転職したのですが、「モノづくり」の考え方がコンピュータとは大きく異なることを学びました。コンピュータの場合、プログラムを作る際には、自分の頭のなかで組み立ててコードを書き起こせば動いてしまいますが、製造業の場合はそんなに簡単なことではありません。「材料を仕入れ、加工して、組み立てて、初めて製品として出荷する」ことができます。その際、材料や半製品を保管したり、それらを管理したりと、いろいろなところでコストが発生します。
一方、材料費や保管費などが発生しないと言われているソフトウェア業界でも、じつはいろいろなコストが発生していることに気づきました。最も大きなものは人件費です。それがきちんとモノを生み出すことができるか否かは、現場の技術者を使う側の責任なのではないかと考えるようになりました。工場では材料を投入すれば、何らかの製品が出てきますが、ソフトウェア業界では人材を投入しただけでは、上手くいきません。ちゃんと人材が育たなければ、いいシステムを作ることができません。
その後、専門学校に転職した際、「自分が物事を覚えることと、他人に教えることの違い(ギャップ)の大きさ」に驚かされました。教えるということが、こんなにも難しいことなのか、ということを改めて認識しました。
専門学校ではアルゴリズムや用語など、国家資格取得のための知識を教えることが中心になってしまうため、「モノづくりの楽しさ」を教えることができませんでした。最も大切なのは、「その仕事が楽しいかどうか」ということだと考えています。お客様に評価されたとか、商品がたくさん売れて儲かったなど、モノづくりの成果(楽しさ)を生徒たちに伝える必要があったと後悔しています。
また、「システムを使う側への配慮」がシステムに対する評価に直接影響しますので、利用者の率直な意見や感想を聞くというのは、技術者にとっても重要なことだと思います。
プログラミングのコツ“重要な3つのポイントとは?”
私はプログラミングの重要ポイントとして3つを重視しています。
①仕様の理解:何をつくるのか、どのようなプロセスなのか、どのような機能を作るのか
②言語の知識:プログラミング言語やフレームワーク
③使い方の知識:想定した通りにモノが動くかどうかを検証するテスト
プログラミング非熟練者の場合、これら3つのポイントが連携できておらず、行ったり来たりを繰り返しており、熟練者と比較して費やす時間も多く、品質面に問題が潜んでいることが多いと考えています。さらには、プログラミング知識の不足だけが原因ではなく、人間関係・職場環境・従事しているプロジェクト以外との関係など、さまざまな原因が複雑に絡み合っていることも、システム開発の難しさだと思います。
「技術統括責任者」としての役割“社内外のスケジュールや品質のスキルが求められます”
現在、私は「技術統括責任者」という重要なポストを与えられているのですが、私自身もまだまだ勉強中の身です。前職までは「下請け」の仕事がほとんどで、納期までに仕上げることだけを求められていましたが、当社では「プライム案件」(エンドユーザーとの直接取引)が中心であるため、社内外のスケジュールや品質など、あらゆる面で管理していくスキルが求められています。
管理職としては勉強中ではありますが、次の世代に「モノづくりの楽しさ」を引き継げるように、いまの職責を全うしていきたいと考えています。
地方展開に向けて“もっと地方にも視野を広げて、優秀な人たちと一緒に仕事が出来たら…”
現在、私は栃木県から片道2時間半かけて職場に通っています。東京に出てきて分かったことは、「都会ではたくさん仕事があるのに、人手不足に陥っている反面、地方では働く意欲がある人がたくさんいるのに、仕事が少ない」ということです。
もっと地方にも視野を広げて、地方にいる優秀な人たちと一緒に仕事ができれば、もっとスゴイことができるのではないか、と考えています。何処か一か所に必ず集まらなくても、通信ネットワークを活用することで、分散した環境でもいろいろな人たちと一緒に仕事ができると思います。
将来の夢としましては、「私の大好きな地元で仕事ができるといいな」と考えています。