ListPage

2011年4月18日月曜日

これからのIT業界に必要な5つの事

これからのIT業界に必要な5つ事の

Over The Next Generation

ブログ自体を読んでいる人はごく僅かで、自分の発信している情報が
多くの人に読まれるとは思えない。ただ、IT業界の現状について
本当に底辺サイドから声高にして言わないと絶対に変わらない。

協力会社や2次請、3次請が横行するなかそのような現状に屈するようでは
日本のIT業界は終わりを告げる。

少しでも多くの新社会人やこれからIT業界に参入してくる若き日本の希望が
これらを読んでくれると嬉しい。


1 プログラミングの勉強?今、必要なのは英語が話せる事だ。

断定してもいい。余程、優秀でない場合や社内SEという特殊な立場で
ない限り。英語が必要だ。それはIT業界でまとも仕事をしたければ日本をでなければならないから。


2 資格が必要?それは身売りの為だ。必要なのはよく吟味。

個人がこの資格が必要だ!!と思い立ち、取る資格は良い。がんばって取ろう。
会社から、自己なんちゃらで取らされる資格は君を高く売る為だ
君は、華美な修飾をされショーウィンドに並んでいるマネキンと同じように扱われている。


3 24時間戦えますか?いいえ、戦わないし戦わそうとする会社と戦います。

金曜日、明日は休みだ!「おい、明日休むつもりじゃねーだろな?」と
上司からの一言、会社に泊まりこんでもう1週間。
上司の鼻っ柱に顔面パンチをなんどもぶち込む夢を見て慣れない天井をみて朝を
迎えます。

どうかご自愛を。


4 やろうと思えば、なんでもできます。

大人になるにつれ、子供の頃持っていた万能感は失われていきます。
万能じゃない自分。デスマを何回通り越しましたか?

十分、根性も体力も知力もあります。
もう一度、自分は万能なんだと思い出して下さい。
そして、自分のやりたい事をやってみて下さい。
しがらみは、後になれば些細な事でしかなくなります。


5 IT企業に勤めようとするな

夢はない。収入はない。出鼻を挫きたくはないが少数はこれに漏れるが
多数はこれに当てはまる。IT企業に勤めるな

どうしてもやりたければ、中小企業のシステム管理者を目指せ
それが無理だったら、ルート営業の方が遥かに健全で社会貢献している仕事だ。


特定派遣にでている友人が、泣きながら現状を語ってくれました。
もう無理だ。家族を養って行くには自分の命を削るしかないのか?

なんで、自分はこの道を選んでしまったのか?
なんで、自分は努力をしてこなかったのか?
なんで、自分はこんなにも辛い目にあうのか?
なんで、金の為に。

動くに動けない葛藤と苦悩を、身に宿し彼は今日もエディタと戦っていると思うと。
いつから、こんなに生きる事が辛いだけになってきたんだろう。

とりあえず、退職して飲みに行こう。

2011年3月28日月曜日

TDD TEST DRIVEN DEVELOPMENT メモ

メモ Test-Driven-Development TDD

TDD概要

次の3ステップを繰り返す事

  1. [RED]失敗するテストを書く。テストは自動実行できる事。
  2. [GRENN]テストが成功するように、製品ソースを書く。
  3. [REFACTOR]製品ソースをリファクタリングし、もう一度テストを実行する。

1と2の部分は「テストファースト」と呼ばれます。実際の作業では、1と2を繰り返し
一息ついたところでリファクタリングする。という流れになります。
各ステップを端的にあらわす英単語は、次のような意味です。

  1. [RED]=テストツール NUnitは失敗したテストを赤色で表示する為 ステップ1のゴール
  2. [GREEN]=NUnitは、成功したテストを緑色で表示する為 ステップ2のゴール
  3. [REFACTOR]=文字通りリファクタリング

各ステップでどのような思考を持っていれば良いかは以下だ

  1. [RED]=「どんなものを作るか?」厳密に設計する(あえてエラーが発生するものを)
  2. [GREEN]=「どのように作るか?」テストを通過するコードを書く
  3. [REFACTOR]=未来の為に、コードを綺麗に直しておく

TDD 三原則

テストファーストで製品コードを育む指針

  1. 失敗するユニットテストを成功させる為にしか、プロダクトコードを書いてはならない。
  2. 失敗させるためにしか、ユニットテストを書いてはならない。コンパイルエラーは失敗に数える。
  3. ユニットテストを1つだけ成功させる以上に、プロダクトコードを書いてはならない。

TDDが恩恵を受ける段階やプロジェクトレベルの考察

TDDが恩恵を受ける段階

  • ×開発プロセス全てはカバーしていない
  • ×要求開発から、プログラムレベルの外部設計まではカバーしない
  • ○プログラムの下位レベル(クラス・メソッド)の外部設計からテストまでをカバーする
  • ×プログラムレベルのテスト(通常、GUIがあるためTDDが困難)から
    ユーザーテストまではカバーにならない