読者です 読者をやめる 読者になる 読者になる

インフラSE日記

OSS、仮想化、金融工学、ゲーム、ときどきラーメン

SIerという業界について

最近全く日記を書いていないことに気づきましたので、久々に日記を書こうと思います。

 

技術系の記事じゃなく、今回の記事は「SIer」という日本独自の発達した謎の業界について思ったことを正直に書こうと思います。

他の方も同じような内容を書いていらっしゃいますが、それでも僕は自分が思ったこととして書こうと思います。

もちろん、全てのSIerに当てはまることはないと思います。

SIerに勤めているSEの中には真のエンジニアの方もいらっしゃると思います。

 

思ったことは4つ。

1. システムエンジニアはエンジニアではない

2. 保守・運用はできるだけ自動化すべき

3. 工数という奴隷制

4. Office3種の神器(ExcelPowerPoint、Word)の害悪さ

 

一つずつ書いていきます。

 

1. システムエンジニアはエンジニアではない

 僕は、ITの分野では「技術」は以下の二種類あると思っています。

 ①既存のものを組み合わせる

 ②新しいものを生み出す

SIerは①が得意です。多くのベンダが提供している製品の「仕様」を知っているので、それらを組み合わせて顧客の望むシステムを構築します。

あくまで知っているのは「仕様」だけです。「実装」なんて多分知りませんし、知ろうともしていなんじゃないかと思います。

プロプライエタリなソフトウェアは逆アセンブルでもしないと仕様を知ることはできませんが。。

他人の褌で相撲を取っている状態ですね。

製品の仕様についてわからないことは「問い合わせ」という魔法の言葉を使ってベンダに丸投げです。

確かに、「システム」という新しいものを生み出しているという点では②も当てはまるのかもしれませんが、社内や顧客の中だけで使われるシステムにすぎず、一般のベンダやエンジニアが使う製品やシステムは生み出していないわけです。

(これは多分自分がB2BというよりB2B2Cを強く意識しているからかもしれません)

プログラミングできるSEなんてほとんどいません。

 

「ビジネスなのだから、ただプログラミングができるだけではダメで、プログラミングすることによってビジネス(ひいては利益)につながることをすべきである。だからSEはプログラミングができるできないの議論はズレている」という意見ももちろんあります。私も一部ではその通りだと思います。企業は慈善事業じゃないですから、株主のために利益を出す必要があります。ビジネスモデルの中での話ではなく、あくまでエンジニアとしての話をすると、プログラミングできないSEなんて価値がないです。

プログラミングして製品を生み出して利益を出すという話ではありません。プログラミングができないとOS、仮想化、ネットワークなどの技術を真に理解できないからだと思っているからです。これではエンジニアなどと到底呼べません。

 

ついで言うとSIerは「実績」にやたらこだわります。「実績」というのはつまり「過去にやったことがあるかどうか」です。「実績」がないものはやたら使いたがりません。

理由は単純で「わからない」からです。いつになったら新しいものを使うんでしょうか。ずっと同じものを使い続けるんでしょうか。

 

結論:システムエンジニアはエンジニアではない。(プログラミングを学ぶべき)

 

2. 保守・運用はできるだけ自動化すべき

構築・開発したら終わりというシステムはこの世に存在しません。必ずシステムを利用するユーザーがいます。そしてシステムが正常に動いているかを確認したり、ユーザーからの追加の要望やシステムの設定変更などをする必要があります。

保守・運用は人間が作業する箇所を徹底的に減らし、自動化した方が絶対いいです。

ミスも減りますし、人件費も減ります。もちろん、全てを自動化できるわけではありませんので、必ずどこかで人間が介入しなければなりません。設定変更する必要があるかどうかなどの「判断」を人間がして、設定変更などはスクリプトなどで自動で設定できるようにすればいいのです。

 

結論:保守・運用はできるだけ自動化する

 

3. 工数という奴隷制

SIerの多くは「工数」「人月」という単位で予算を作成します。

他の方も同じ表現をされていましたが、現代に蘇った奴隷制度です。

一人一ヶ月働いたら◯円で計算します。ここに効率化なんて概念はありません。

構築・開発に10ヶ月かかるシステムを新たな技術を取り入れることによって5ヶ月にすることに成功したSEは給料が半分になるのでしょうか?

さらに言えば、人月や工数が妥当かどうかどうやって判断しているのでしょうか?

効率化すればするほど利益が減る、そんな素敵なシステムなのです。

 

結論:SIer奴隷制度を容認している

 

4. Office3種の神器(ExcelPowerPoint、Word)の害悪さ

仕様書などのドキュメントはMicrosoftが提供しているOfficeで作成することが多いです。というか、SEの大半の仕事はExcelとWordとにらめっこすることです。

本来記述している内容が最も大切なはずなのに、体裁やフォーマットなどにこだわって無駄な時間をかけていると感じました。

HTMLとCSSの分離と同じで「書く内容」と「文字などの装飾」は分離する必要があると思います。(極端なことを言うとドキュメントなんてテキストエディタでもよいかもしれない)

 

更に言うとExcelをデータベース代わりに使っていることが多いです。

エンジニアとしてあるまじき行為だと思います。

もしExcelのファイルが壊れたら? 誰かが悪意を持って改ざんしたら? いつ誰が、何から何に更新したか管理できるか? バージョン管理はできるのか?(デグレが起きたらどう対応するのか?) などなど。

 

Excelデータベースは止めて、MySQLOracleなどのDBを使って管理するべきだと思います。費用面・管理のしやすさという点ではExcelのほうがいいかもしれませんけど。。

本来最も大切な内容が、体裁・フォーマットなどによって情報量が落ち、品質が低下シている気がします。

 

結論:すべてのドキュメントをOffice、PowerPoint、Wordで書くのは止めるべき

 

 

以上です。

次はずっと考えている数学の問題について書きたいと思います。

 

 

そんな感じです。