【体験談】あなたの IT/インフラエンジニアとしての価値

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。

この記事では、私自身がどのように技術力を向上させて来たか、その経験を現在はどのように考えているか、今後 IT エンジニア、インフラエンジニアはどのように成長すべきかを書いてみます。

トラブルシューティングが技術力を育ててくれた

私の入社1,2年目は実機を触る機会がほとんどなく、技術力向上は皆無でした。事務処理中心で、ベンダとの打ち合わせ時も技術的な話は全てベンダ丸投げでした。

それが3年目で状況が一変します。

異動により、あるユーザの大規模システムの運用から携わることになったのですが、もうトラブルだらけ。。。

訳も分からないまま、仕組みも分からないまま、とにかく日々起こる大小様々なトラブルの対処に追われていました。

ですが今振り返ると、このときの環境は自身の成長においてとても良い環境でした。

・技術力の高い先輩がフォローしてくれた
・自営で実機の設定変更をする機会が多かった
・会社自体は比較的ホワイトだった

特に私がトラブルシュートで基本動作としている「パケットキャプチャ」と「ログ確認」はこのトラブル中にその有用性を認知しました。

今でもトラブル発生時で直接原因が不明の場合はまずこの2つを採取します。

これら2つはなかなか体系的に学ぶことはできませんが、経験すればするほど、トラブルシュート能力は各段に上がりますので、とにかくやってみる、ということに尽きます。

これ以外にもトラブル案件には成長する機会が豊富です。良い例えか分かりませんが、崖に落とされてそこから這い上がれば嫌でも腕力がつくのと似ています。

会社がホワイトであれば、という前提ですが、若いうちはトラブル案件に自ら飛び込むのも良いと思っています。

ポリシーやバックボーンを持つ、持たせる

私はもともと感性型の人間で、結構適当に物事を決めて、現場を通してその感性を修正していくタイプです。緻密な計画よりも現地合わせ(現地でトラシューやチューニング)のほうが得意です。

ですがだんだんと影響度の高い大規模システムを構築するにあたり、その考えを改めるようになりました。

自分一人の感性と現場力を頼りに物事を決めていくと、チームでの仕事としての品質が下がっていくからです。

飛びぬけた実力を持つ人が引っ張るのも良いですが、完全に属人的になります。若いうちはそれでも良いかもしれません。「最後は自分でやればいいや」という覚悟さえあれば。ですがそれでも規模が大きくなるにつれて限界が見えてきます。

それよりも、明確なポリシーを示してチームとしての力を発揮したほうがみんなが幸せです。

特に最近はコンサルを相手にすることが多いのですが、彼らへの説明には「バックボーン」が必要です。ここで言うバックボーンとは、「客観的かつ論理的な根拠」のことです。

パラメータ決定するにあたり、「なぜそのような設定をしたのか?」という客観的根拠を持たせる習慣を身に着けたほうがよいでしょう。

仕様や要件から導かれるパラメータ、会社としての経験知を元にしたパラメータ、などがあると思います。

もちろんすべてのパラメータに根拠づけするのは現実的ではありません。

例えば私がよく使うのは『「要件にないもの、構築ベンダの実績として問題ないものについてはデフォルト値」という方針を示し、デフォルトから変更したものについては「どの仕様・要件に基づきその設定にしたのか」を明確に示す』といった方法です。

ここで問題なのは、そもそも顧客から「まともな仕様・要件」が提示されるのか?ということです。本来ここは顧客の作業範囲なのですが、不本意であっても、自身を守るためにも手伝いをしたほうがよいでしょう。

仕様・要件には大きく「機能要求」と「非機能要求」の2つに分かれます。機能要求は「そのシステムで何をやりたいか?」、非機能要求は「やりたいこと以外で考慮すべき環境」(冗長性やバックアップ、性能など)を意味します。

特に非機能については考慮が漏れがちですが、洗い出しには IPA が提供している『非機能要求グレード』というツールがよく使われます。もめそうな相手には絶対活用しましょう。

https://www.ipa.go.jp/sec/reports/20180425.html

例えば私の経験で言えば、顧客から「このシステムでどのくらいデータサイズが増えるかを根拠付きで示した上でストレージ容量を用意すること」という仕様が出てきたことがありました。

データ量がどのくらい増えるかは顧客の使いかた次第なので分かるわけがないのですが、上記ツールの項目に「データ量の増加率」という項目があり、選択肢として『1.2 倍』という具体的な数字があったため、『ユーザの使い方によるため一概には言えないが、IPA のこの資料に基づき、1.2倍と想定』と回答し、合意を得ました。

また、パラメータではなく、説明資料においてバックボーンを示す場合は大きく 3 つあると思います。

1 つ目はメーカやベンダからの公式な回答を要求する、もしくは公式サイトなどから正式な情報を検索することです。

本サイトはもちろん、Wikipedia や Qiita 等の情報は自身の理解のための参考程度にとどめるべきです。間違っても、コンサル相手などに根拠資料として提示してはいけません。無条件で一蹴されます。

彼らは仕組みを理解していなくても『正式/正確な情報を探す』というのを基本動作にしており、メーカやベンダからの回答以外はビジネスにおいては信用に値しない、ということを知っているからです。

2 つ目は検証です。仕組みについて仮説が立つなら、その仮説を元に検証してみます。これもコンサル相手であれば十分に検証環境などの条件を練る必要がありますが、どれだけ本番環境に近づけるべきかは、リソース次第です。(時間,揃えられる実機,使えるコスト,等)

3 つ目はソースを読むことです。ですがこれは構造が分かっていれば着手しやすいですが、勘所を掴むまではなかなか難しいです。(Windowsの場合はそもそもソース非公開なため、この対応は不可)

これらは顧客の情シスやコンサル相手に説明する際にはバックボーンとして必要となるでしょう。

仕組みを理解する

3 年目のあるとき、私はあるシステム上の問題を、仕組みをきちんと理解しないまま苦し紛れの対処作業を実行しようとしていました。

先輩は他の大規模プロジェクトの PM であったため、聞きづらい、という理由で内緒で実行しようとしていたのですが、運よく先輩に見つかり、お説教されるだけで済みました。

それで結局先輩に相談してみたらバッサリ。仕組みの細かい部分をきちんと理解していたらすぐに解決できる問題でした。

私がこのサイトで仕組みを中心に記載しているのもこの時の経験からです。

『動いているからまあよし!』というのは、システムの長期安定運用においての敵でもありますが、自分の成長のチャンスを潰していることにもなります。

仕組みを理解するには、先程バックボーンの章で紹介した3つのやり方がお勧めですが、自身の学習についてはもう少し緩く、色々なサイトを参考にするのもよいでしょう。ただし、エンジニアとしては徐々に「情報ソースを気にする」習慣は身に着けたほうがよいでしょう。

書籍を読み込むのも良いでしょう。最近は Kindle で読み放題のサブスクリプションもあるので活用すると良いでしょう。

Amazon Kindle Unlimited 読み放題

顧客の真意や意図を汲み取る

私はプロジェクトマネージャとして色々な顧客と触れ合ってきました。

とても良いお客様もおりますが、傾向としては最近は過剰な要求をしてくるモンスターが増えてきている気がします。(個人的な推測ですが、ベンダやメーカから社内SEに転職した人が、自分たちの能力をアピールするために行うケースが多い気がします。)

特にトラブル中は相手もヒートアップするため、一見「それは無理です」と言いたくなる課題を突き付けられることもあります。

私も色々と経験がありますが、一例を挙げると、『このやり方で100%大丈夫だという根拠を持ってこい』と言われたことがあります。

世の中には100%は無い、と言いたいところですが、言っても『トラブルが解消しないのは業者がきちんとした対処をしないため』と言われるのがオチです。

これも相手の性格に依るところではあるのですが、このケースでは相手の真意は『もし失敗したとしても言い訳が十分通用するくらいにベンダへの確認、実機検証、ソース解析を行い、報告してこい。そしたら実行を許可してやる。』ということでした。

このように、世の中には真意を言わずに一見無理なことを要求する人が一定量います。そのような事態に直面し、正面突破しなければならないケースにおいては、満額回答は無理だとしても、相手が大事にしていること (先の例だとその人のメンツ) をできる限り考慮し、対処することがお奨めです。

そのためには『相手が何を大事にし、何に怒りを感じるか』を見極めることが大事です。

これは社会人になる前に学んだ重要な真理なのですが、人間の行動というのはものごとに対する感情の論理値 {1, -1, 0} で決定されます。つまり {好き , 嫌い , 無関心} です。

メンツにこだわる (つまりメンツが好きな) 人に対してはその人のメンツを潰さないような対処が必要ですが、そういうシガラミが無く、技術的な要素が好きな人だったら技術的な細かい説明をしてあげれば信頼・納得してくれるかもしれません。無関心なことに関しては人は「放置」の一手のみです。

なので私の考えでは、論理派・感情派というのは無く、感情を論理値としてとらえるのが正しいです。よく「論理的に正しいことが正解とは限らない」と言われますがそんなことはありません。「論理的に考えれば、そのような発言をすれば相手はそのものごとに対する感情が -1 (つまり嫌い) になり、自分の意図する結果にならない」というだけです。

この話は『顧客』としていますが、人間関係全般に言えます。営業の思惑、上司の思惑などを考慮して動くことを習慣化すれば、仕事もスムーズになりますし、周りからの評判も良くなり、信頼されるエンジニアとして一目置かれるはずです。

とにかく実機に触る

私は1年目にCCNAを取得したのですが、前述の通り、恥ずかしながら2年目まではベンダ丸投げでした。

3年目に初めて実務で実機を触りました。これも今思うと非常に危険な行為なのですが、Catalyst6500シリーズの「PBR 用の ACL のエントリの削除および追加」を誰にも言わず (お世話になっていた営業の先輩から依頼された)、一人で設定変更しました。たしかあのときは間違えてACLごと消して、慌てて { 同じACL - 削除すべきエントリ + 追加すべきエントリ } を投入し、ことなきを得たと思います。

当時は覚えたてで触りたくてしょうがなかった、という背景もあります。

いずれにせよ、これを機に、より積極的に実機に触れるようになり、急成長を遂げました。エンジニアとして成長するためには、実機を触る機会が多い環境が必須です。

会社でなかなかそのような環境が無い方には、自宅での検証環境が断然お奨めです。

自宅にラックを立て、NW機器やサーバをマウントする、というのもありです。

デメリットとしては費用が高くつくのと、今後できるであろう彼氏/彼女がエンジニアに限定されることです。これは思いのほか、人生の幅を狭めまることでしょう (知らんけど)。

お奨めなのは、高スペック PC を1台購入し、その上でGNS3 (Cisco ルータ仮想実行環境) や Virtual BOX (サーバ仮想環境) を動作させることです。

検証のためには最低でも VM を2台立てられる環境は欲しいところなので、スペック的には最低限 CPU: 4core/8thread, Memory: 16GB, SSD: 512GB くらいでしょうか。

私はノートPC派ですので、安さを追求するなら Lenovo PS63-8RDS-095JP もよいでしょうし、人気の高い Apple MacBook Pro なら色々な面で安心でしょう。

モバイル WiFi もあると、場所を選ばず検証が捗るでしょう。

ずーっと月額1,980~円(税別)使えるスマホ【UQモバイル】

選択肢は色々です。環境を整えるのもワクワクしませんか?

インフラエンジニアの定義

最近は『インフラエンジニア』という言葉が認知されていますが、定義は曖昧です。

Twitter などを見てみると『Database のチューニングはインフラエンジニアの範囲か否か?』というような論争をたまに見かけます。

皆さんはどう思いますか?

私の感想は『インフラエンジニアの範囲かどうかは興味が無いけど Database のチューニングもできるインフラエンジニアはかっこいいし価値が高い。』です。

私自身、もともとネットワークエンジニアから出発していますが、その枠に収まるつもりもないですし、インフラエンジニアかどうかなんて考えもしないです。チャンスがあれば Web アプリも学ぼうと思っているくらいです。

エンジニアとしての価値を高めるために、このような枠は意識しないほうが良いと思います。学びたいものを学べばよいし、目の前に学ぶチャンスがあるなら学んだほうが得だと思います。(これも職場環境に依るのは言わずもがなですが。。)

転職について

私がとにかくおすすめしているのは、少なくとも30歳前半までは、年収もある程度考慮はしつつも、しっかりと成長できる環境に身を置くことです。

エクセル貼り付けマシーンになどなってはいけません。

エンジニアの在り方も激変してきています。特に IT/インフラエンジニアの転職というのはとても一般的になってきています。

最近はクラウド化などによりネットワークへの関心は下降気味です。今の時代でネットワークしかできないエンジニアは価値が低いでしょう。

ですが、それでもシステムに必須のコンポーネントです。ネットワークがしっかりできて、さらにサーバ系も分かるエンジニアなら需要は根強いはずです。

転職にあたってはエージェントを活用しましょう。転職エージェントは有名どころであれば正直大差はありません。あとは自分に合うかどうかだけです。

↓一からネットワークエンジニアを目指す20代で成長しやすい環境を望むなら
ネットワークエンジニア始めるならネットビジョンアカデミー(NVA)

↓未経験から仕事しながら実力をつけるなら
【完全無料プログラミング研修&就活塾】


↓バリバリ働いて現場で実力をつけていきたいなら
既卒・フリーターでも就職できる!【第二新卒エージェントneo】

自分の環境を変えるのは自分しかいません。今の環境に甘んじるのも、そこから脱するのも自分次第です。ぜひ、自分の今後の姿を具体的に思い浮かべてみて下さい。