SEの『技術力の種類』と上げる方法

      2017/01/06

技術力のあるSE(システムエンジニア)

「もう3年仕事してるけど技術力自信ない…」
「何があると技術力あるって言えるのかな?」
「どうしたら出来る人になれるんだろう?」

「技術力」っていろいろな意味を持つ言葉ですよね。

「彼は技術力があるんですよ」と言った時に連想することは人それぞれです。

  • プログラミング技術に長けている
  • アーキテクチャ設計に長けている
  • 性能のチューニングに長けている
  • 要件から設計に落とし込む能力がある
  • 仕事が速くて正確

ぱっと思い付くだけでも、これだけあります。

私自身はどうかというと、自分の技術力にはそれなりに自信を持っていますし、会社の人からも技術力があると言われたことがあります。

といっても初めから自信があったわけでもないし、今だって特別な能力があるわけでもありません。

自分の経験を振り返りながら「SEの技術力」について書いてみたいと思います。

SEの技術力の種類

SEの技術力は大きく分けて3つあります。

  1. 要求分析のスキル
  2. 設計のスキル
  3. 実装のスキル

1. 要求分析のスキル

顧客の要望を聞いて、解決策を提案するスキルです。

狭い意味での技術力は実装能力を連想しがちですが、要求分析にも技術力は必要です。

要求のヒアリングと提案力

顧客がどんな課題を抱えていて、それをITによってどう解決するかを考えます。

その為には顧客の話を理解する能力と、適切な質問をすることで課題を正しく把握する能力が必要です。

話を聞いている内に、当初言っていたのと実際の課題が違うなんてことはよくあります。顧客自身がそれに気づいていない場合もありますので、そういう場合はしっかりと確認をして仕事を進めます。

「お客さんの言ってる通りに進めればいいだろう」とイエスマンなSEは多いですが、それだと開発が進んだ後になって、「やっぱり違ってた、仕様変更させてくれ」って言われることになりがちです。

イエスマンは楽ですが、最終的に苦労することになりがちなので、しっかりとこちらの意見を伝えるべきです。

モデリング、ドキュメンテーションして説明する力

ヒアリングをして解決策を考えたら、それを図や文章にして説明します。

「この課題はこう解決します。よろしいですね?」

と確認します。これをきちんとやっておかないと、後で「あれも足りない、これも足りない。これもやってくれと言ったはずだ。」というもめ事になってしまいます。

UMLとOOAD(オブジェクト指向分析設計)を学ぶと、要求を図にして表現する方法が学べます。

OOADって、すごく高度で賢いもののような宣伝のされ方をされていましたが、実際やってみるとUMLは図の表記法であり、OOADはその図を作る方法なだけです。軽い気持ちでさくっと学べばいいと思います。

「こう書けばいいのね」くらいが分かれば十分で、重要なのはそれらの方法を、実際の仕事で実践することです。

それと図の表記は必ずしもUMLである必要はありません。説明したい内容が表現できていればいいのでUMLは一つの表記法として参考にすればいいと思います。

設計のスキル

設計は大きく分けて3つあります。

①仕様の設計

「画面がこうで、このボタンを押したら、DBからこれを検索して、このフラグが1だったら○○する。」みたいなのを決めることです。

要件定義した内容をインプットにして、要件が満たされるように設計します。一般的なSEの設計力ってこの「仕様の設計」を指している場合が多いかと思います。

設計をするには、それを実現する技術の裏付けが必要です。それらがない人が設計をするとWebなのにPCのソフトみたいなUIのとんでもない設計になってたりします。2000年代前半、業務システムをWeb化する仕事ではそういった事例がよくありました。

ですから、「仕様の設計」も技術力なんです。

②システムアーキテクチャ設計

いわゆるインフラの設計です。

サーバーのハードウェアはこれで、DBはOracleを使ってWebサーバはApache、APサーバはTomcatを使うみたいな話です。

専任のインフラエンジニアがいる場合は、その人に必要な性能要件や技術要件を伝えます。

③アプリケーションアーキテクチャ設計

フレームワークに何を使って、MVCアーキテクチャで、Model部分は○○な方針でモジュール分割するみたいなルール付けをします。

サンプルコードやコーディング規約なども必要に応じて作ります。私が以前会社で技術力があると評判になったのは、このようなアプリケーションアーキテクチャ設計をしていた時でした。

技術力と言われて一番イメージしやすい領域かもしれません。

フレームワークを覚えるコツは、実際に使ってみることです。ちょっとしたものでいいので、そのフレームワークを使って何か作ってみると自然と理解できます。

3. 実装のスキル

設計したものをソースコードに落とし込むスキルです。

昔はプログラムのソースコードと一対一で対応するくらい細かい設計書が書かれていた時代があり、コーディングは日本語をプログラミング言語に翻訳するだけなので簡単と考えられていました。そのせいか業務システム開発の分野では未だにSEよりプログラマーの地位が低いのですが、現代は「コーディングも設計の一部だ」と考えられています。

ソフトウェア開発は、よく建築と比較されています。

  • お客さんとどんな家に住みたいですか?と話すのが要件分析
  • 建築士が図面を書くのが設計
  • 大工さんがトントンカンカンと家を建てる作業が実装

と考えた場合、ソフトウェア開発の実装はビルドです。大工さんがトントンカンカンと家を建てる作業に当たるのはビルドボタンを押すことなんです。コーディングは実装作業ではなく設計作業なのです。

Javaで言ったらコンパイルして、サーバにデプロイする行為が実装であり、コーディングはビルド(実装)するための設計図であるソースコードを書いている設計行為なのです。

ですから、コーディングを設計行為として取り組むと良いと思います。設計だと考えれば自然ときれいに整理されたコードを書こうという気になりますし、より良いコードになるように工夫も出来ます。

会社の規模と社員の技術力は比例しない

私はこれまでに三度転職し

→ 零細SIer(社員80人)
→ 東証一部上場独立系SIer(社員5000人)
→ 大手流通業グループIT子会社(グループ社員50000人)
→ 以降フリーランス
→ ECサイト開発運営ベンチャー(社員10人)
→ 大手ブログサービス運営企業(3500人)
→ 大手コンシューマゲームソフト開発企業スマホ部門子会社(社員600名)

で仕事をしてきました。業種も規模も様々です。

新卒で入った会社が零細ベンダーだったので、一度目の転職で大手SIerに入った時には、「大手だからすごい技術者がいっぱいいるんだろうな!」と期待したのですが、零細ベンダーと変わりませんでした。

出来る人もいれば、ダメな人もいる、それは大きな会社でも小さな会社でも一緒だったんです。

技術力と転職の関係

「やまろうさんは技術力あるから、いくらでも転職出来そうですよね」と言われることがよくありますが、たしかにいくらでも転職出来ます。これは私に限ったことではなく、多くのITエンジニアがそうです。

何かというと、これって因果関係が逆なんです。

「技術力があるから転職できるんじゃなくて、転職したから、技術力がついた

のだと思うんです。

もちろん転職しなくたって技術力はつきますが、転職すると、以前の会社では問われていなかったスキルを求められたり、人に頼っていた部分を自分がやることになったりと変化が生まれます。変化に対応すると、能力は高まります。

最近よく考えてることの一つが「因果関係が逆のことって多いな」ってことです。例えば

「楽しい出来事があったから、楽しい気分になるんじゃなくて、楽しい気分でいるから、楽しい出来事が起こる

ってことです。これもどちらとも言えることではあるけれど、因果関係を逆にして考えた方が上手くいくことって多いんじゃないかなと思います。

なので、因果関係を逆にして、「転職して技術力を上げる」をぜひやってみてください。経験者の私からすると効果は抜群です。転職する前の一年より、転職後の一年の方が絶対技術力が上がると思います!

転職活動はやってみると簡単!

私自身3回ほど転職してるんですが、思ってたより簡単で、転職エージェントを使ったらあっという間でした。

エージェントが応募先候補の選出から、面接の日程調整までやってくれるので、こちらから動かなくても半分くらい自動的に進む感じで楽でした。しかも今は好景気で売り手市場なので転職するのにちょうど良い時期です。

レバテックキャリアっていうエージェントがおすすめです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

なので、レバテックキャリアのホームページ見てみてください。「ホントだ、美人じゃん♪」ってきっと思うはずです笑

地方在住の人にも使える転職エージェントがある!

レバテックキャリアは東京・大阪近郊向けサービスなので、地方在住の方には全国の求人を扱っているDODAがおすすめです。利用者の評判がめっちゃいいのでホームページ是非見てみてください。

人脈がなくてもフリーランスになれる!

フリーランスになりたい方にはギークスジョブがおすすめです。人脈がなくてもギークスジョブに登録するだけで案件を紹介してもらえます。案件の希望(どんな技術を使っているか、残業が少ないこと)等も聞いてくれるので、やりたい仕事が出来ます。対象地域は東京・大阪・名古屋・福岡近郊です。

「派遣社員」なら正社員とフリーランスのいいどこ取り!

フリーランスになりたいけど、確定申告とかめんどくさいなという方には派遣社員がおすすめです。派遣ってネガティブなイメージありますが、ITエンジニアの派遣社員ならやりたい仕事を選べて、給料も悪くないですし、確定申告や年金、健康保険も派遣会社が入ってくれるのでいいと思います。私の先輩でフリーランスになった後、派遣社員になった人がいるんですが「自由かつ煩わしい手続きがなくて最高」って言ってました!パーソルテクノロジースタッフに登録するだけで簡単に派遣社員になれます。

私(やまろう)への相談メールも募集中

転職や仕事術、勉強法等について質問や相談がありましたら、以下のメールフォームからぜひご連絡ください。
経験者から見れば簡単に解決できる相談って多いのでお気軽にどうぞ!こう書いてもなかなかメールくれる人って少ないのでホント気軽にメールしてくれると嬉しいです。

メールアドレス (必須)

相談内容

たまに間違ったメールアドレスを入力されていて返信できない場合があります。一週間経っても返信がない場合、メールアドレスを確認の上、再度送信をお願いします。

エージェントを使った方が転職活動は楽です

東京・大阪近郊のイケてるIT企業に転職したい人には『レバテックキャリア』

 東京・大阪近郊のエンジニア経験者向け転職サービスです。

このサービスを運営しているレバレジーズという会社はシステム開発もやっているので、現場の仕事をよくわかってくれてますし、ヒカ☆ラボというIT系の勉強会なども主催していたりteratailというプログラマー専用の質問サイトを運営してて好感が持てます。求人案件もWebやスマホの面白い仕事が多いのでいいと思います。

あとホームページ見ると分かるんですが、若くて美人の担当者が多いのもナイスなんです!私の場合(たぶんあなたも)、担当者が美人だと転職活動のモチベーションめちゃ上がりますからね笑

エンジニア未経験の方や地方在住の方にはDODAというエージェントをおすすめします。

エンジニア未経験の方や地方在住の方には『DODA』

全国の求人を扱っていて、しかもITエンジニア未経験の人にも転職支援をしてくれるエージェントです。

未経験の人はサポート対象外のエージェントが多い中、DODAは未経験者を支援し転職を成功させています。未経験の方こそエージェントから職務経歴書の作り方や面接の仕方のレクチャーを受けた方がずっとうまくいきます。

フリーランスになりたい人には『ギークスジョブ』

フリーランスエンジニアになるには人脈が必要と思われがちですが、ギークスジョブに登録して希望条件を伝えれば、自分に合った案件を紹介してもらえるんですよ!思ってるより全然簡単にフリーランスってなれるもんなんです。

東京・大阪・名古屋・福岡の案件を紹介してもらえます。

 - 技術 ,