2012年3月26日月曜日

これまでのキャリアと今後のキャリアについて

こんにちわ。

2012/03/07の291のことで英語の文献を読もうと英語でLTしたmikeです。

そろそろ企業も新入社員を入れる頃ですので、

SIとかITサービスとか、まあ、そういうのにかかわらず、

情報系産業に入る方に入るまでに読んでおいたほうがよいよと私から言える本をいくつかピックアップします。

(これは既に前日のエントリーに書いちゃいましたね。)

っと、その前に、私自身のキャリアを明確にして置かなければなりませんね。

なぜなら、その過程に英語というのが入ってくるからです。


私自身のキャリア



1年目

私は元々VBのプログラマーとしてこの業界に入った後、

初めてのプロジェクトが即解散、

その後、HTML + JS on JRunでプロトタイプを作るという仕事をやるという

散々なキャリア(?)を経ていました。

お陰で、Javascriptは好きな言語になりましたが、

まあ、SIerってプログラムを教えられる人が居ないんですね。

Javascriptをかけてもグローバル空間を汚染しまくる汚いコードばかり書いていました。

当然レビューしてくれる人もいませんでした。

ブラウザーはIE6でした。

ajaxが導入される少し前までのJavascriptでブラウザー上でできることは大概出来たと思います。



2年目

PHPライクな謎のパッケージ言語を1ヶ月で5ks作るとかいうよくわからない仕事した。

しかもそのPHPライクなパッケージソフト、UIがイカれたほどいけてなくて、

自分のJavascriptテクならかなりイケてるUI作れたんですが、

COBOLしか知らないベンダーのオッサンから、「君、状態遷移図を書けるの?」という圧力を

政治的にPMから流し込まれていけてないUIのまま作らざるを得なくなった…

こんなクソいUIに数百万とるのかと思うと、非常に心が痛みました。


3年目

Javaを教えてくれる人が居ないのに、Javaのプロジェクトに配属。

IDEとかも教えてくれない環境でJavaのコードを書くという、

何その苦行ということをやった。

そして設計書?仕様書がめちゃくちゃ間違えてて、

かつ変更対象のクラス群が密結合していて、死ぬかと思った。

この頃に真面目にJavaの勉強をしました。

『Thoughtworks アンソロジー』のルール3、ルール7にそぐわないコードがたくさんありました。

重複しているコードもたくさんありました。

というわけで、リーダーに向かって throw new HeighlyComplexClassDesignException()してみたら、

catch(Exception e){}

されました。


この苦行の後に、インドネシア、中国と作成したシステムの導入支援の仕事で海外に出かけるようになります。

インドネシアには1.5ヶ月、中国には2週間いたので、だいたい2ヶ月ほどは海外で生活していました。

英語はこの時にしゃべるしかないという感じで、とにかくしゃべっていました。

この経験、というか英語で生活したという自信はかなり強いものです。

日本人は完璧主義な人が多いので、

語彙でもなんでもちゃんと知らなければ使っては行けないとか考える傾向があります。

必要無いです。

もちろん、高度なビジネストークをする上では欠かせません。

でもコミュニケーションにはヴァーバルなコミュニケーションと、

フィジカルなコミュニケーションがあります。


4年目、5年目

この頃は上記のシステムのいわゆるSEをやっていました。

製造業、小売業、流通業、在庫管理といった多くのドメインの業務知識はこの頃に身につけました。

会計の知識もこの頃に身につけています。

多分、いやゆるエンプラエンジニアとしてはほぼ無敵状態を誇っていたと思います。


6年目

いわゆるリーマンショックがあって、ユーザー企業が投資を控える時期でした。

特にスキルアップしていませんが、

後から考えるとこの時期に色々と技術の変化があったように思います。

ajaxとかCIとか、アジャイルとか。

このころ不勉強だったことは今でも後悔しています。


7年目、8年目

いきなりもっとレガシーなプロジェクトに配属されます。

ツイッターなどでよくあげられる悪いSIerの典型的なプロジェクトでした。

  • 年月日フォルダーによるバージョン管理
  • VSSならまだしも、CVSを使っているのに、ソースの払い出し管理をするチームがある
  • 朝会が長い
    • 会議で誰がいつまでに何をやるということが決定されない。
    • 自分がやったことをアピールするのが目的の報告ばかりで、何をして欲しいのか、何をしたいのかわからん奴ばっか。
    • こういう状態にいら着いたオレが、お前ら自分の意見言えねーのかと煽ったら、余計萎縮する。
    • 萎縮させたとかで、オレ怒られる。
      • 連絡することないなら、会社来るな!朝会参加するな!給料返せ!
      • 夕方6時になったら「さあ、今日の仕事取り掛かるか」ドヤァとか発言する輩。
        • そうならないための朝会だろ。もう少しプロ意識持てよ。もう少しサポートする相手にプロ意識持たせろよ!お兄さん怒るぞ。
  • 悪い報告は最後の方に出てくる。つまり御前会議。
  • テストは手動でやる。
  • ただしテストのカバレージの算出を報告書として求める。←むりだろ
  • デグレの観点でテスト項目を上げることと言いながら、その旧仕様を明文化したドキュメントがない
  • WF型の開発だが、仕様変更はどんどん受け入れる
  • ISO9001対策のための作業がサビ残で行われる
  • 設計を担当するべきSEが基本的な業務知識がなさすぎて、開発二次請け会社に丸投げ
  • ビルドツールがEclipse
  • システムが縦割り、そしてそれを当たり前として受容した若手が縦割りの枠組みを当然と思ってしまう。
  • 開発者のHTMLの能力が低くてUIが最悪。Javascriptの知識もなさすぎてよりUIが最悪になる。
  • apache-commonsとかlog4jといったデフォルトで使うようなオープンソースライブラリーが一切禁止。責任が取れないため。
  • 改善案を取り入れますと言っておきながら、すべて上位マネージメント層が握りつぶす。
    • 属人的スキルになっている部分を誰でもできるようにするべきというSI的な発想の意見も、属人的スキルを持っている人が移動する意志がないので、必要ないと却下。
  • 古くからいる人がどんどん偉くなっていく。新しく配属されてスキルもある人はシカトされるか、干される。干されたパターンが多い。この組織は私とは異なるGroovy/Scala/Java/PHP/Rubyの使い手を使えない奴として手放した。(後日談ですが、この社員は会社やめました。)
  • 品質管理上の問題があることを報告しても、これまで大丈夫だったからといって何も改善しない。
  • ソースコードがコメントだらけで、ソースを読めない。不要なコードの削除も禁止。

9年目、実質会社をやめた年

上のような状況を社長にも訴えるけど、改善の見込みがない。
もう、この会社、潰れるしかないと考えて転職。

ちなみに、この会社、Mavenとかを入れても使えないようなネットブロックがなされていたり、
ツイッターの分析をするプロダクトを作りますという案件でも、メンバーの誰もがツイッターをやろうとしない。
  • ツイッターに繋がらないので、自分の端末固定でツイッターつながるようにするためにかかった期間1週間。
これからはクラウドに対応しますとか言っても、Google Docsなどのクラウドサービスを使うことができない。
マシンの選択に関しても、開発をしっかりやっていくとなると、Windows機でもまあできるけど、
環境構築するためのコストを考えると、Macの方が圧倒的にコストは低いので、Macを導入しようとしても、
セキュリティの関係上導入はできない。

会社の経営陣の構造をなんとなく把握。
親会社の低級社員が事業部長、担当部長として投入される。
大した成績を上げなくても、親会社の取締役や、監査役、親会社の別の小会社の社長に就任できるなどの、
たんなる待ち時間を調整する期間。

生え抜き社員で優秀な社員でも(ちなみにこの社員はJavaのことは全然知らない)事業部長代理止まり。
で、上がつっかえているので、社員の昇進はもはや絶望的。

私のようにあちこちふらふらしたエンジニアは昇進をすることはありえない。
特定のプロジェクトで7年くらい頑張ると昇進ができる。

別に昇進することがエライわけではないけど、
昇進すればするほど、マネージメントの能力のみが必要になって、
技術には徹底的に疎くなる。
その結果、地に足の付いた提案ができなくなる。

社員は徹底的に信用されておらず、Core-i7のCPUが出てきた時に、Pen-4のCPUとかザラにある。
たまにいいマシンが会っても、Core2Duo。メモリは当然2GB。

私のマシンにはApache + Trac + Sqlite3 + Jenkins / Apache + Redmine + MySQL / mongoDB / PostgreSQL / など入っていて、
とても上に上げたようなスペックで仕事をすることは不可能。

この上で先に上げたツイッターの情報解析の調査をやるものだから、

MeCab + YamCha + Chasen + Caobchaなどを搭載したVMを起動して、ビルドをかましたら、2日もかかる始末。

家のマシン(Xeon + 8GB)でやったほうが時間がかからないので、それでやって、その資料をメールで送ったら、
メールサーバーがまさかの妨害。1日のムダ。

東日本大震災の影響もあって、自宅勤務OKとなったので、申し込んだら、
名前だけの制度で会社に来なければ、出社扱いにならんとか。。

これらすべての状況に呆れて、
休憩室で大の字で会社を罵っていたら、
「頼む、そんな本当のことは言わないでくれ」とわけわからんことを言う人事部。

とっとと潰れてくれと思って、最後何とか心を許していた上長に相談、退社という運びになりました。

TOPGATE


わかめさんに誘われて、トップゲートに入社。

実はGoogle AppsとかSalesForce.comの既存のアプリを売っていくという方向に関心のあった私には、

非常に魅力的な職場でした。

ただ、まあ、いろいろと体調不良が発生して、1月~3月はほとんど働けない状態になりました。

これは私はすでに社長と話していて、3月いっぱいで会社を辞めることにさせて頂きました。



2012/03/26色々と事実関係が異なるもんで修正しました。
関係者の方にはご迷惑をおかけいたします。



今後


今後ですが、4月の中旬を目安に会社を立ち上げようとしています。

会社の名前ですが、次のどれかを考えています。
  • 株式会社ジーアスター
  • ジープロダクト株式会社
  • 株式会社無職

3.はネタですが…

事業計画

7月位までは赤字営業を続けていく形になると思います。

というのも社名から明らかなように、
Gで始まる会社です。

私の好きなGroovyをメインにやっていこうと思っています。

そのために、Grails、Spring(Grailsのコア)、Spring Roo(Grailsの代替)を抑えたいと思っています。
その関係上、4~6月はほとんどなにの営業もできないと思っております。

一方で、GはGoogleのGでもありまして、
GAE + Android / iPhoneでアプリを開発しようとも考えております。

このアプリについては、大体イメージはできているので、
後は実装するだけですが…大丈夫かな…????

一応、設計上はGAEの課金に大きく足元を掬われないような設計になっていると勝手に考えています。

また、コンサルタントとして、各種勉強会の開催なども行おうと思っております。

特に数学、物理関連の勉強会をやろうと思っています。
興味の有る方はぜひカンパとともに来て下さい。

まあ、初年度は赤字でしょうね。

最終的にはG*なプロダクトで色々と遊んで稼ぎたいと思います。



以上、そんなわけで、今後も変わりないお付き合いをおねがいいたします。

0 件のコメント:

コメントを投稿