IT業界、はじめは何をしたらよいのだろうか?
IT業界で働く皆さんにも社会人1年生の時はありましたよね。皆さんそれぞれが様々な経験を重ねてきて、現在に至っていると思います。今回は、まだ業務経験が浅い時代にどのように働くことが望ましいかについて書いてみたいと思います。
私自身、SE業務を中心にIT業界に関わってきております。その結果、企業向けのシステム構築という視点からの話が中心になってしまいますが、できる限り広い視点で自らの反省も踏まえて書いてみます。
■ どんな仕事に就くかは分からない
前回のコラムでは「IT業界の仕事は面白い!」と言いましたが、これは働く人の気持ちによるところが大きいと考えます。IT企業に入社すれば、常に興味を持てる仕事に従事できる、とは限らないからです。
私の場合は、某メーカー企業のシステム事業部門に配属されていたので、多くの人が企業向けのシステム構築に関わるSE業務またはプログラマという仕事をしていました。しかし、私は大多数の人々とは一線を画す仕事に就いていました。それは、SE部門を支援する役割を担う部門の仕事です。
企業内部の話になりますので、あまり詳細に仕事の内容を書くことは差し控えたいと思いますが、概要レベルで説明します。SE部門が企業向けにシステム構築をすると、他の企業システムでも流用可能なソフトウェア資産が少なからず残るものです。私が所属していた部門は、そのような再利用可能ソフトウェア資産を管理する役割を果たしていました。
その当時の私の主な仕事内容は、膨大な数の再利用可能ソフトウェア資産を管理するシステムの開発と、そのソフトウェア資産の機能の確認でした。当時の私は他部門に配属された同期入社のSE達が羨ましくて仕方なく、そのことで悩んでいました。彼らは企業向けのシステム構築を担当するSE部門で仕事をしており、自分よりも高尚な仕事をしているように見えたからです。
しかし、私と同じ部門で働く先輩社員にその悩みを相談したとき、私の考えは一変しました。その先輩のアドバイスはこうです。
“現場のSE部門で学べることも多いが、今の部門でしか学べないことは非常に多い。あなたは、自分の足元の宝を見ずに、人の宝を羨んでいるだけではないか”
この言葉の意味を理解したとき、自分が恥ずかしく思えました。その後は、自分の担当業務から何かを学び取ろうとする強い意識が出てくるようになり、今まで気づかなかった多くのことに気づくようになりました。具体的には、再利用可能なソフトウェア資産の機能を確認する課程で、OSやミドルウェアに対する多くの知識が身についていくことでした。
実際に、SE部門に配属された同期社員と話をする機会があり、その差を感じることができました。彼らは、毎日のようにプログラム開発やテストに明け暮れており、それ以外のことを考える時間がない生活を送っているようでした。よって、自社のOSや製品についての知識については、よく知らないといった状況であったのです。
私と同期入社SEのどちらが良いのかはわかりません。重要なのは、自分が与えられた環境でより多くのことを学び取ろうという姿勢です。そのように取り組むと仕事も楽しくなってくるものです。
■ システム構築という仕事
企業システムを構築する仕事は、非常に多くの知識・スキルを要する仕事です。
- プログラム開発
- ソフトウェア設計
- 要件定義
- 業務分析
- 業務知識
- プロジェクト管理
- ソフトウェアテスト
- ハードウェア
- OS・ミドルウェア
- ネットワーク構築
大雑把に挙げても上記のように多岐に渡る知識やスキルが必要です。上記を1人の人間がすべてカバーするわけではないのですが、全体を俯瞰(ふかん)する立場になろうとすると、多くの分野の知識が必要となります。特定の技術領域に特化したスペシャリストの道もありますが、企業システムを構築するといった視点で取り組むエンジニアは、より広い範囲の技術知識が必要ということです。
■ どんなスキルを磨けばよいのか?
より多くの、幅広いスキルを身につける必要があります。しかし、全ての分野でスペシャリストになることは不可能なので、まずは、自分の得意な分野でのスキルを磨き、そこから徐々に広げていくことが重要です。
私の場合は、ソフトウェア開発を中心に徐々に関連スキルを広げるようにしてきました。ただし、前述のとおり最初から深くプログラミングに関わる仕事をしていたわけではなく、ミドルウェアなどの関連知識を業務から学んだ後、SE部門への配置転換を経て、プログラム開発やソフトウェア設計を学んでいきました。
私の主観ですが、プログラミング言語というのは、それほど難しいものではなく、ルールさえ覚えれば小学生でもプログラムを作成することは可能なものであると考えます。重要なのはソフトウェアの設計やアーキテクチャであり、それをいかに学び取るかが肝要と考えます。
また、同様に重要なのがソフトウェア・テストです。最近はテストができない職業プログラマをよく見かけます。さらに大きな視点で見ると、企業で営まれている業務をシステム化するには、業務を分析するスキルとそこからシステム化すべき要件を定義するスキルも重要です。また業務要件が正しくシステムに反映させるためのソフトウェア開発方法論や、それに則ったプロジェクト管理のスキルが必要になります。
これだけ多くのスキルが必要なので、焦ってもすぐに結果が出るものではありません。1つ1つ、しっかり技術を積み上げていくことが重要です。
■最後に
IT業界に入ってまだ日が浅い若手エンジニアの皆さん、いま自分が従事している業務には、何かしら学べる事があるはずです。学び取る意識があればそこから何かが見えてきます。そして今後、自分の中心に据える技術領域を見つけてください。その技術を中心に、今後の経験の中から様々なスキルを積上げていくことでエンジニアとしての厚みが出てくると思います。
しっかりとした土台には、立派な建造物を築くことができます。技術の蓄積も同様でしょう。