[生活][EngineerSummit] エンジニアの未来サミットに行ってきた

あまり添削せずエイヤで書いてみた。あとで見直すかも。

最初に

個人的な結論は「どんな環境でも自分の意志でやりたいことはできる」なのですが、せっかくの2時間がその一言ではもったいないので。IT業界に属する人の大部分が占めるだろう下請けSIerの中からの意見を少々。

泥の10年

泥より10年が問題というのに同意。泥の中でしか学べないことはある。

3年で最初の会社を辞めるのも構わない。私は最初の会社(?)を3ヶ月でやめた。後悔はしていない。

大切なのは社会人になって3年以内にいかに自分が苦としない泥を経験できるか。その後人生の中で仕事にたいする価値観は、社会人最初の3年にどういう経験をしたかで決定されると思っている。

だから最初の3年はどんどん転職しながら良い泥に巡り逢ってほしい。自分に良い泥をみつける野生の勘がないなら「石の上にも三年」最初の会社でジッと我慢してみるのがいい。会社を辞めるのは「このまま働いていたらオレ死んじゃうかも」という状態でない限りよくよく考えた方が良い。

プログラマ35歳定年

社内情報システムグループに求められるのは良質な部品を作る技術(プログラミング)でなく、いかに部品を組み合わせて役立つものにするか。それをするのがSEでありSIerプログラマとはちょっと違う。

日本の企業は製品に自分たちの業務をあわせるということをしない。製品を業務に合うようカスタマイズする。10の利用部門があれば10のカスタマイズが発生する。だから日本ではSIerが必要となる。

プログラミング的に実現が難しいことにチャレンジするよりは、あきらめて別の代替手段をとった方が良いと判断する場合が多くある。仮にその困難な選択をしたとしても、その後10年自分が保守をするのでなければ作りは極力簡単にしておく必要もある。

ここでいう「簡単」というのはプログラム構造のシンプルさというより、いかにプログラム経験が少ない人でもコードのメンテができるようにするかという意味。なのでコピペも横行する。コピペ+テストのコスト < 技術者の育成+活用コストといったところか。

基本的に外部の製品(RedHatとかOracleとか)を持ってきて、自分たちの業務にあうように切り貼りするのが仕事だから製品の仕様上できない(とメーカーから回答があった)ならそれ以上は深掘りしない。ユーザ部門にも「できません。やるにもお金がかかります。」と言ってしまえばいい。だから現場で好まれる言語はVBExcel VBA。誰でも簡単に学べてサードパーティのライブラリも多く、なによりメーカーのサポートがつくので責任を外部にだせる。それにユーザ部門はExcel大好き。

社内プログラマの技術力が低いために安くて質が高いサービスをユーザ部門に提供できず、他社との競争力が低下するかもしれないけどそれはまだ現実になっていない。必要なら外部下請けからスポットで入ってもらいやってもらってるんだろう。受けた下請けはブラック状態になるかもしれない。

大事なのはIT技術力でなく現場の業務を理解して既存製品を切り貼りする能力。

そんなことで上の方々はプログラマなんぞサッサと卒業してSEやマネージャになりなさいという。

IT業界はヌルい

第二部で会場からでた言葉。壇上の人達はカチンときてたみたい。でも正論だと思った。勤務中にニコニコ動画みてて上司に怒られちゃいました、なんていえる職場他にはないからね。

それはともかくIT業界がヌルいと思われる原因の一つに「評価、検査」が標準化されていないということがあると考えている。生産性が10倍、100倍のプログラマってのはいるんだろうけど今対象としているのは2倍とか5倍のレベル。

悪徳SIerはワザと質の悪いシステムを作り、安い初期受託開発分の損失をその後の保守で稼ぐ。質が悪いっていっても仕様通りには動くのでテストも検収も通る。半年から1年くらいは何事もなくシステムは運用される。問題はその後、例えばちょっと新しい製品に対応したいだけで開発が必要になったりする。

まじめな人なら柔軟性・汎用性を持たせてマスタテーブル化したり設定ファイルにしたりするけど、そんなことしたら今後の開発機会を失ってしまう。仕様通りでも質は悪く。それが生き残る術。

開発も2〜3ヶ月の工期レベル。新しい製品を200万くらいのシステム改修で対応できるのでユーザ側も依頼しちゃう。そんな開発が年に数回、4〜5年くらい続く。

システムを評価するのにwikipedia:ソフトウェア品質というのがあるけれど、これを客観的に評価する仕組みが必要だと思う。今はようやく単体テストを自動化するメリットに気付き始めた段階なので、このレベルが浸透するにはあと10年かかるかも。

第二部に会場からでていた「技術者の評価」についても上と同様に考えられる。

経験からの結論

  • 大企業の社内SEはプログラミングの機会に乏しい/でも生活は安定してる
  • 大規模SIerは技術者として生きていける可能性が高い/けど、できる人はすぐに下請け管理の仕事にまわされちゃう
  • 下請け会社はプログラミング機会が大量にある/でも給料は安い。環境も劣悪。
  • 数十人規模のベンチャ企業に入るのが一番おもしろいかも/自己責任で

あとで書く

  • 学生にきてもらうために企業ができること
  • OSSに参加すること
  • 地方IT技術者ができること