社内SEの必要な知識〜技術編〜
先日こんな記事を投稿したところ、想像よりもアクセス数が伸びたため今回は技術的な知識に焦点を絞って話を進めていく。
企業のスペック(再掲)
初めて記事を読む人もいるので再掲しておく
あくまで一企業の話であるので他の企業も全てがそうであると言い切れないということで。
企業名:言えない
場所:東京某所
主な業種:言えない
開発あるなし:あり
社員の人数:いっぱい
エンジニアの人数:いっぱい
色々言えないこと多いけど、要はデカめな企業のシステム部門ということです。
企業のスペックについては以上。
(質問してくれたら答える。かもしれない。)
それではマイル。
プログラミング言語について
SQL言語
プログラミング言語なのか?と問われるとちょっと曖昧ですが、少なくともIT技術ではあります。
さて、SQLの使用頻度ですが
少なくともプログラミング言語の中で一番多く使います。
大学生だった頃はJavaというプログラミング言語が一番使うと思っていました。
(実際に今も実践経験のない大学生はそう思っているのではないでしょうか?)
ところがどっこいJavaなんて比較にならないぐらい使います。
いったいなぜそんなに使うのか?
社内SEでは他の部署からデータの提供を求められます。
よく聞かれるデータのリクエストは以下の通り。
・X曜日の顧客の購入人数を見て欲しい。
・X時の時間帯の購入金額とY時の購入金額の差を教えて欲しい。
・XXXXという商品がいくつ売れるのか教えて欲しい。
・売れていない商品のワースト10位を教えて欲しい
などなど様々です。
このリクエストが来るたびに社内SEはクエリを組み上げてSQLサーバーへ投げ、
長いレスポンス時間を得てようやく情報を手に入れることができるわけです。
また、__新しい企画、プロジェクトの立ち上げ__の際には、必ずその企画が費用に見合う成果を出せる保証を示してあげなければなりません。
その保証となるのがデータ以外にはないです。
例えば以下のような使い道があります。
・XXXというサイトからYYYというサイトへの流入数が多い。
・XXXというサイトの離脱率は他と比べて多いので対策しなければならない。
・このYYYというソフトではXXXというページのロード時間が長い。
などなどです。
他のIT企業でも同じなのではないか?と思われがちですが。
自社の製品に自分で責任を持たなければならない社内SEという職業はよりSQLに長けている必要があると感じております。
実際私の先輩で技術よりもマネジメントよりの方がいらっしゃいますが、
その方でもクエリの作成はめちゃくちゃ早かったです。
このように、自他含め様々な場面でデータが登場するためSQLを描く技術は必要になるわけですね。
Java言語
JavaはSQLに比べればそこまで使いませんが、
代わりにコードを見る力、いわゆる__コードレビュー力__は求められてきます。
社内SEでは必ずしも自社で開発を行なっているわけではなく、外部の会社に開発を委託する場面も当然あります。
脱SIerの動きが活発になってはきましたが、まだまだ自力で全てを賄うほどではありません。
そんな時に大事なのが、コードを見る力です。
協力会社の方が書いたコードは適切か、規約に反したコードを書いていないか(書いていたら容赦なく鉄柱を下します。)、そもそも費用に見合うコードを書く能力があるのかどうかまで見なければなりません。
一番大切な観点は__セキュリティ的に問題がないか__が特に重要です。」(SQLインジェクションが発生する余地はないかどうか)
これらをソースから読み取って判断し、最終的にお金を払えるものかどうかを決断しなければなりません。
以上の理由から、社内SEはJavaをかける必要はないが、Javaを読める必要はあるというわけです。
日本言語
冗談じゃなく必要です。
社内SEという仕事をすごい洗い粒度で見た場合、__上司と部下or協力会社の橋渡し__ということになります。
それを円滑に行うための説明能力が必要になってくるわけです。
逆に英語は必要ないです。
以下は言語以外で必要な技術について
git or svn
何かと使います。
例えばソースコードの以前の内容を把握したりだとか、
ソースの改修案件で改修前後のソースを比較してエラーやセキュリティ事故が起きないかどうかとか
ありとあらゆる場面で必要になってきます。
最終手段としてソースという現物の前後比較を上司に見てもらい、説明を納得してもらう-なんて場面も出てきたりします。
一旦休憩
続きは明日の朝に書きます。
みなさんおやすみ。