見出し画像

【キャリア】下請けSIerで得られるモダン感

はい、どーもrainでーす。よろしくお願いしまーす。

今日はですね、ユーチューブの方で某Webプログラマーの方の動画を見ていたのですが、その中でシステム開発においてその開発環境がモダンかレガシーであるかを判断するための基準を述べていたので、自分の開発キャリアを振り返ってみました。ちなみに自分が客先でがっつり開発をやっていたのは2014年から2018年の4年間です。プロジェクト数は5つ程度。主にJavaの開発経験のみです。

・ソースコードのバージョン管理システムとしてGitを使ってるかどうか

レガシー環境の代名詞として「SVN」ではなく、「Git」かどうかがモダンの基準だそうです。これに関しては経験上、僕も同意します。

ただプロジェクトの成功の要因や失敗の原因がGitではなくSVNを使っていたからだとは絶対にありえないので、今後自分は技術者としての道はある程度でよく、PMといった上流に行きたいと考えている人は必須ではないと思います。

余談になるかもですが、スクエアエニックスのドラクエXの環境ではSVNが使われているそうです。そのほかにもWebアプリではJava、Servlet、Oracleにプロシージャとモダン好きからは敬遠されそうな技術のオンパレード。これを見てわかる通り大事なのはツールではなくサービス内容ですね。どれだけ価値をユーザーに届けられているかです。

・コードレビューを行っているかどうか

これはSIerの方が徹底しているんじゃないかと思います。僕が経験したものだと、PM/PLだけでなく共通基盤やフレームワークなどを作っているガチエンジニアとQAエンジニアなど別チームも同席して、総勢10人くらいでレビュー実施したプロジェクトもありました。でも、だいたいは開発リーダーやアーキテクトの人がそれぞれ集まったり、自席でレビューする形式でしたね。ですので「コードレビューの有無」よりも「コードレビューの仕方」を面接時に質問した方が、モダンかレガシーか判断出来そうです。

・LinterやFormatterを使ってるかどうか

Formatterは知っていますが、 Linterは初めて知りました。Lintertとはコンパイラでチェックされるシンタックスエラーより厳密にチェックしてくれるツールとのことです。おそらく、こういったのをまとめて静的解析ツールと呼んだりすると思いますが、ほとんどJavaしか使ってこなかった私だと、「CheckStyle」「FindBugs」などがこれらに該当すると思います。これの使用有無でモダンかどうかを判断基準とのことですが僕の経験上、大規模でかつお堅い業界のプロジェクトでこそ導入が当たり前だった印象です。ですから、コードレビューと同じで、モダンというより業界によるし、むしろ未経験者からは避けられがちなSIerプロジェクトの方がこの辺りは常識だと思います。ですから Linter やFormatterの使用有無は、モダンかレガシーかというより、プロジェクト管理が厳しいか杜撰かに左右されるものかと思います。

・パッケージマネージャーを使っているかどうか

javaのプロジェクトでgradleとかmaven使ってないとこ聞いたことないですね。大規模になれば、パッケージマネージャーを導入しないと死にますよね…

・単体テストや統合テストを書いてるかどうか

テストコードを書いて自動化しているかてことですね。これは半分のプロジェクトではエクセルスクショ系のテストでした。書いてあるところでも全部のテストが自動化されていませんでした。一部は手動でやる感じ。

というか本当に全ての機能がテスト自動化されているシステムなんてあるんでしょうかね。時間とお金、エンジニア、これらが無限にないと絶対無理と思うんですけどね。全自動化したつもりになってるだけじゃないかな。

・Dockerを活用しているかどうか

これは使ったことありません。ただ現在、PMとして参画しているプロジェクトでは導入してます。僕は直接は触れていませんが。

・CI/CDを行っているかどうか

Jenkinsは自治体や金融のシステムといったTHE SIerのプロジェクトでもバリバリ使用されていました。ちなみに自分もJenkinsの構築、導入した経験ありです。Jenkins以外だと、クラウド環境で提供されているCI/CDツールなどですかね。

振り返ってみて

こうやって振り返ってみると、別に下請けSEでも複数のプロジェクトを経験すればある程度のモダンなスキルを身につけることは可能てことですね。バージョンが古いだとか、ツールそもそも古いだとかはあると思いますが、運用上問題なければ、そのシステムに不要てことです。あと、もしこの記事を見て自分のスキルがモダンではないと焦ってる方がいても、別にそこまで気負いしなくてもよろしいかと思います。というのもモダンなスキルは個人の範囲でキャッチアップ出来るからです。

ここでタイトルとは少し関係ないことですが、個人で学ぶのが難しいマネジメント業などの上流の仕事を本業でやって、モダンなスキルをキャッチアップするというのを副業でやるのを僕はおススメします。もし僕が新卒に戻れるのならそうします。

最後に

流行りよりも基本的なもの普遍的なものを徹底的に頭に叩き込んだ方が良いでしょう。流行りの技術は、マーケットの問題なので自分が本当にその技術が好きだったり、仕事で必要になった場合に、腰据えて勉強すれば良いと思います。あと流行りの技術はコミュニケーションツールの部分も担っていますから、全く知らないのはそれはそれでこの業界で働く人間としてはダメですね。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
9
IT/SES業界で働いてる者です。元Vグループ社員。みずほ銀行プロジェクト経験者。未経験から一年でフリーランスになった人。現在自社サービス会社で働いてます。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。