不具合農場 地獄の大豊作不具合様は本日もすこやかなれば、本日も大豊作なり。 不具合様には不具合をお供えすべし。 今日もお供え物作ってますか? |
トップへ戻る ブログのトップへ戻る Word Press |
|
不具合道楽 地獄のフルコース不具合御飯 不具合味噌汁 不具合満漢全席 | ||
コンピューターのはらわた無修正大公開 | ||
不具合設計局キャンペーン中 |
2007-09-01 (Sat)
_ [違法派遣時代] トラウマ
前にも書いてますが、派遣時代のことがトラウマになっていて、フラッシュバックに悩まされています。今日はフラッシュバックが激しいです。
当時のことを思い出すと、無茶なことばかりでした。「無理を通せば道理が引っ込む」というか、どんなクレージーな作業指示でも平気で通す現場でした。運用部隊とか、品質管理している連中とかは、「厳しくやるほど優秀」とでも思っています。「どんどんおかしく、どんどん変に」なっていく職場でした。気が狂っているとしか思えない作業をさせる大手と、どんな理不尽な要求にも労働力を提供する下請けとが、これの両輪となっています。
あと、法律守ってください。世の中ブラック企業ばかりですよ。クソ人間がクソ仕様を作り、クソコードが書かれて、犯罪天国と化したクソ会社がいるのです。
「連中の頭の中には脳味噌の替わりに砂が入っている」と私は言いたい。クソとか汚染物質とかではなくて、砂が入っています。たとえるなら、砂以外にないというのが私の見解です。
2007-09-02 (Sun)
_ [違法派遣時代] 品質の掛け算
4年間の派遣時代にはいろいろなプログラムを書きました。しかし、「これは良い製品です」と胸を張って言えるものは一つもありませんでした。ていうか、「これはゴミ同然の製品です」なら言えますが、よい製品だなんて絶対に言えません。
私が担当していたのはあくまでプログラムの部分であり、仕様の決定は私の仕事ではありませんでした。でまあ、他の人が書いた仕様書を受け取って、私がそれをプログラムするわけです。仕様書を受け取った時点で、「この仕様書の通りに作ったら、どの程度の製品ができあがるか」というのはだいたい分かるわけです。仕様書に書かれている内容というのは毎回気絶しそうなほど悪い内容です。仕様書を読んだ時点で、どうしようもないものが出来てくるというのは分かるのです。仕様の変更は、技術的に機能が実現不可能な場合のみ認められるので、品質が悪いという理由では認められません。機能が実現可能なら問題ないという考え方です。仕様書の通りにプログラムします。結果、最初に感じた通りの品質のものが出来てきます。
実際の開発においてはいくつもの工程が踏まれます。各工程は、前工程の成果物を受け取ってそれを元に作業をし、出来た成果物を次工程に渡します。最終成果物(製品)の品質は、各工程ごとの品質を乗算したものになります。(私の見解です) たとえば、90%*70%*80%=50.4%といった具合です。プログラム作業はこれらの工程の中の一つです。プログラム作業が100%の品質を達成したとしても、他の工程の品質が悪ければ、最終成果物の品質は下がります。(あと、私だって100%の品質を出すのは無理ですよ)
2007-09-03 (Mon)
_ [違法派遣時代] ドキュメントと推測
いくつものプロジェクトの中で一つだけ私のお気に入りだったプロジェクトがありまして、このプロジェクトでは良いコードが書けたと思っています。しかし、このプロジェクトは他のプロジェクトが起こしたトラブルを被ってしまい、プロジェクトとしては振るいませんでした。当時、私が書いたプログラム設計書がやり玉に挙げられました。
発注相手が乗り込んできて、ソースコードの中から適当に1行選び、「この行は設計書のどこに対応していますか?」ときました。この1行、プログラムの中ではかなり補助的な部分のコードで、設計書にはこの部分に関する記載がありませんでした。で、鬼の首を取ったようにやりこめられました。私の見解ですが、設計書と実際のソースコードは完全には対応しないです。というのは、設計書は重要な部分に的を絞って書いてあり、前提事項のような部分は記述しないし、当然付随するような部分も記述しません。あと、仕様書が穴だらけで、厳密な設計が出来ないというのもありました。今だったらキレて反論しているところでしょうが、当時の私はまだ2年生でした。ミーティング用のテーブルだったのですが、私は半泣きで、あと一言やりこめられたら、本気で泣きそうになりました。でまあ、その場はこちらの会社の責任者が何とか納めました。
で、納品となりました。納品先での評価は最悪で、「バグっている。品質が悪い」とのことでした。で、このバグっているというのが、どうしてそれがバグなのか全く根拠がないんですよ。仕様書(納品先が書いている)のどこを見ても、その動作がバグであると分かるような記述はありません。これで、「このような状態で本当に管理できているのか?」ときました。ブチキレて、「だったら、お前らが書いた仕様書で、これがバグだと分かる部分がどこにあるのか?」と言い返したい気分でした。もう、テストしている人間が「正常な動作はおそらくこうだろう」と推測して、それと違うからバグだと言っている状態です。設計書の件ではさんざんやりこめたくせに、これですよ。ムカつきました。あと、仕様ということで同意している箇所についてまでバグ票を書いてきて、こっちが「これで本当に管理できているのか?」と言いたい状態でした。
2007-09-05 (Wed)
_ [違法派遣時代] 作業環境
作業の環境で、最も最悪だった事例です。PBX(電話の内線の交換機)を制御するアプリケーションの開発において、プログラムする上でPBXの実機を用意してくれるように頼んだのですが、「インターフェイスの仕様が決まっているので、実機なしでもプログラム可能である」といわれて、実機なしでプログラムしました。(シミュレータの類もなし) もちろん、ハチャメチャな状態に陥りました。インターフェイスについては仕様書があるものの曖昧な箇所だらけで、実機なしではプログラムできないです。(このインターフェイスは私がプログラムしたものなのですが、それでも無理です) テスト開始した時点においては、起動すら出来ませんでした。プログラムだけでなく、テスト紙も実機なしで作りました。このせいで、テスト紙もハチャメチャな状態になりました。さらに、プログラムを書いた人間が自分でテストをしてはいけないのですが、私が自分でテストしました。これでさらにハチャメチャになりました。
というわけで、最低最悪の製品が納品されました。もう全然作動しないような状態で、さすがにクレームがいくつも付いたようです。
2007-09-06 (Thu)
_ [違法派遣時代] インターフェイス
昨日の記事の補足です。PBXのインターフェイスについてです。
これがすげえ仕様で、操作するためのAPIはあるのですが、取得系のAPIが一切無いのですよ。アプリケーションは自分の操作や通知されたイベントから、PBXの現在の状態を常に把握する必要があります。もちろん、PBXの動作に精通していなければ、状態の把握など無理です。イベントというのは発信が行われたとか転送が行われたとかいうものばかりで、現在の状態を通知するものはありません。アプリケーションは1つのイベントも逃さず記録し、把握の内容を正確に更新していかなければ直ちに把握は不正確となり、以降の復帰も出来ません。
こんな仕様なので、私がプログラムしたインターフェイスを私が使う場合であっても、その使用は困難を極めました。他人が使う場合においては、絶望的です。
なお、インターフェイスの仕様は全て大手の連中が決めたものです。
2007-09-08 (Sat)
_ [日々の生活] 友人の就職活動
友人がコンピュータ業界に就職活動するというので、説明会に付き添いました。説明会はあちこちの会社が合同で開催するものです。
友人が希望する会社と話をしました。業態的には、大手SI業者の下請けらしいです。自社の事業所で請負で開発するほか、元請けの事業所で請負で開発したり、派遣もするとのことです。残業がほとんどないという触れ込みで、「本当なのか?」と訪ねたら、「常識的な残業はある」だそうです。元請けの事業所で仕事している場合なんか、元請けより先に帰ることは難しいというのが私の見解です。29名の従業員数に対して20名もの募集を行っていることについて訪ねたら、「それは答えないといけないことですか?」だそうな。どうやら実際に20名採用する気はないようです。
とりあえずまあ、独立系ではないですが、中堅としてはいいのではないかと思いました。
2007-09-09 (Sun)
_ [日々の生活] Torを改造
この前紹介したTorですが、少々改造しようと思いました。TorはUNIX系向けのソフトウェアでして、Windows版はVCでコンパイルしてあります。私はVCは持っていないので、今回はCygwinを使ってWindows用のものをコンパイルすることとします。
Cygwinをダウンロードしてきてインストール。この時gcc一式もインストールするように指定します。次に、Torがlibeventというライブラリを使っているので、このソースをダウンロードしてきて、Cygwinのgccでコンパイルします。そうしたらTorのソースをダウンロードしてきて、同様にコンパイルします。作業する上ではlibeventのヘッダやライブラリの配置で混乱しましたが、これは標準のヘッダやライブラリと一緒に配置すればいいです。Torのコンパイルで関数の引数宣言が1箇所おかしいところがあったので、そこを修正。あと、WindowsとUNIXでは改行コードが異なるので、Torのutil.cのread_file_to_str()関数の中身を若干修正します。(VCでコンパイルする場合は修正なしで可能)
コンパイル成功して、exe動作することも確認しました。これで、同じIPアドレスに対して複数の接続経路を保持するように改造します。改造に当たってはTorの動作がおかしくなったりしましたが、何とか正常に動くようになりました。
めでたしめでたし。
2007-09-11 (Tue)
_ [違法派遣時代] 融業
物を貸すことによって利益を得る形態を融業といいます。融業には3つの分類があります。金貸し(サラ金)、物貸し(各種レンタル)、人貸し(派遣)です。人貸しは人を貸すことで利益を得ます。
しかし、若い人間を貸す場合においては、単に人を貸すと言うよりは、若さを切り売りしているといった方がいいでしょう。スキル職業においては、初心者より熟練者の方が重宝されるのが本来なのです。そこを敢えて初心者を借りるというのは、若さが欲しいからです。若さは限りある物であり、最上の商品なのです。正社員として雇ってしまうと若さはどんどん減ってしまいますが、派遣は人を入れ替えることで、若さを欲しいだけ切り取れます。
2007-09-12 (Wed)
_ [日々の生活] まんだらけ株上昇
阿部総理が突然やめたというのは私も驚きました。やめる兆候はなかったですよね。
で、麻生氏が総理になりそうだって言うんで、麻生氏がお気に入りの漫画アニメ関連の株が上昇だそうな。しかし、まんだらけは商品を転がしているだけなのに、何で上がるんですかねえ。出版社やアニメスタジオが上がるというのなら分かりますが。漫画アニメ関連においては、児童ポルノ法で絵が規制される可能性や、著作権法違反が非親告罪化される可能性や、暴力規制の問題など、規制がかかりそうな案件が山盛りですが。
漫画アニメが認知されてきた今頃になって政府関係が業界にてこ入れしようなんて動きが出ていて、てこ入れするのが目的でやっているんじゃなくて、利権狙いなんでしょうねえ。自分たちの気に入るように成長させようとかいう発想が気に入りません。
2007-09-13 (Thu)
_ [違法派遣時代] 若さ
11日の記事では若さについて書きましたが、その続きです。
「若さは限りある物であり、最上の商品なのです」ということで、若さには商品価値があります。しかし、若さというのは単独では取り出せないわけです。ある人間から若さを取り外して、別の人間に付け替えるということは出来ないのです。そこで、若さというのは人間にくっついた状態で取引されます。それこそが、若い人間の派遣です。むしろ、若さの方が主体であり、人間の方はその付属物であります。会社によってはこの考えを重視し、高卒の新卒のみを採用し、3年程度で首にするという方式をとっているところもあります。
一般的には20代前半が商品価値の高い時期で、後半になると価値は下がり、30代前半になるとほぼ価値を失います。30代後半になると価値としてはマイナスとなります。
そこで出てくる考え方が、「熟練」です。30代、40代になっても、熟練者には価値があるという考え方です。そうでなかったら30代、40代など雇ってません。しかし若さというのが年齢によって表されており誰が見ても同じであるのに対し、熟練度の判定というのはそれ自体難しいですし、誰が見ても同じというわけにはいきません。結局、30代や40代の転職というのは難しいという結論にならざるを得ないわけです。
ちなみに、賃金が年功序列で上がるという考え方は崩壊しています。そもそも、昇給という概念自体がないです。給料定額制です。
2007-09-14 (Fri)
_ [違法派遣時代] きつい仕事
開発というのは数多くの工程からなります。まず、仕事を取ってくることから始まります。自分たちの能力相応の仕事、期間が適正な仕事、費用が適切な仕事、というのが最低条件でありましょう。ここで分不相応な仕事、短い期間、安い費用なんてなると、この時点で破滅確定です。また、最後の工程は納品ではなく、納品後の不具合対応です。私の派遣先においては、納品後1年以内に見つかったバグについては、瑕疵として対応していました。
何よりきつく、何よりも最低最悪なのは、この、納品後の不具合対応です。というのは、納品後の不具合対応については、修正の内容について納品先に説明しないといけないからです。また、納品後のバグというのは、難易度の高い物が多いです。たとえば、サーバーアプリケーションが1週間に1回程度の頻度でクラッシュするなんてのは、修正するのは非常に難しいです。また、納品先の連中は何が何でも完全完璧を要求してきます。ほんのわずか、「欠点が出る可能性がある」でさえも許さないのです。
「こういう処置をしたので、改善が見込めます」ではだめなのです。「こういう原因があり、こう処置しました。二度とバグりません」でなければならないのです。これがとにかくきつい。二度とバグらんなんて保証できんのです。しかし、相手は「ダメだ」としかいいません。他にボキャブラリはないのかと思います。そんなに安定させたいのなら、パソコンにWindowsにC言語なんて組み合わせにせず、汎用機にUNIXにperlとかいった組み合わせにすべきなのです。費用は一桁は高くなり、期間も延びます。しょせん、パソコンにWindowsという時点で安物買いなのです。そういうことも理解せず、「ダメだ」の一点張りで、バグ修正を担当している人間は精神的にも肉体的にもとことんまで疲弊することになるのです。
2007-09-15 (Sat)
_ [違法派遣時代] 人間ケツ拭き紙
納品後の不具合対応が一番きついと昨日の記事で述べました。プロジェクトの人員というのは、プロジェクトリーダーを頂点として、設計,プログラム,テスト,事務なんて感じになっております。私の派遣先ではリーダーが営業も兼ねていて、仕事を取ってきた上で、発注元との折衝も行っておりました。納品後の不具合対応においては、リーダーとプログラマーが主に必要とされる人員です。でまあ、なんというか、リーダーがプログラマーを連れて、あちこちかけずり回ることになるわけです。私もリーダーのお抱え技術者みたいな感じで、あちこち行ったもんです。
私は他人の出した不具合の調査もよくやりました。担当が調査したけど分からなくて、私に廻ってくるというのは多かったです。1週間に1回程度クラッシュするとか、稼働中に10分間だけフリーズしてその後正常に戻ったとか、データベースとの接続が切れるとか、デュアルCPUのマシンで動作がおかしいとか、特定のマシンで動作がおかしいとか、そういう、聞いただけでうんざりするような不具合を調査させられました。私は自分で自分に、「人間ケツ拭き紙」というあだ名を付けておりました。他人のケツ拭きをするための人員です。
2007-09-16 (Sun)
_ [日々の生活] 医者に行く
(実際には9月13日の記事です)薬をもらいにかかりつけの医者に行きました。
最近フラッシュバックがきついとか、ブログに愚痴を書いているとか言ったら、「笑い飛ばせるくらいになるのはいいのではないか」とのこと。いくらこのブログで笑える記事に仕立てても、私自身は全然笑えません。ここのブログで書いていることは、多少の誇張は認めますが、全て実際にあったことなのです。違法行為とキチガイ行為が溢れかえる中、私が実際に歩いた現場なのです。
書いたネタの一つとして、「医療は嗜好品である」と医者に言ったのですが、笑ってくれるかと思いましたが、ノーリアクションでした。
_ [違法派遣時代] シリアル
割り当てられている機材のスペックがとんでもなく低いというのは以前の記事で書きました。ソフトが全部コピー品だというのも書きました。私の派遣元が派遣先に対して、機材を自前で用意したいと申し出たのですが、「ハードウェアの持ち込みは、情報流出の可能性があるので不可」「ソフトウェアの持ち込みは、ソフトのシリアルが派遣先の物しか認められないので不可」とのことでした。要するに、コピー品のソフトの替わりに、正規品のソフトを持ち込んで使いたいという申し出すら断られるのです。
派遣の立場というのはゴミ以下であり、最低最悪の条件で働かせなければ、派遣以外の人間に対して示しが付かないのです。派遣の分際で正規品が使いたいなど、片腹痛いのです。
納品先に対して、「お宅に納品された製品はコピー品のコンパイラでコンパイルされている」と教えてあげたいです。
2007-09-17 (Mon)
_ [日々の生活] 訪問者
昼頃自宅のチャイムが鳴りました。「はい」と答えても無言。ガラス越しのシルエットは中年女性。
私の経験上、訪問者が無言の女性の場合、宗教の勧誘か健康食品の営業です。で、今回は後者。インターホンがないので、ドアを開けないといけないのですよ。
朝鮮ニンジンが健康に良いという話を一通り聞かされました。私の職業がプログラマーだと答えたら、「それなら朝鮮ニンジンが健康に良いというのもインターネットで調べたりして分かるでしょ」だってさ。プログラマー的に言えば、何が何でも健康にいいと論じている時点で、怪しさ100%なんですが…。
あと、1週間くらい前に、若い女性の二人組が宗教の勧誘に来ました。身なりは地味ではなく派手な方でした。雰囲気も快活というか、なんで宗教の勧誘なんかしているのかよく分かりませんでした。普通は結構粘られるのですが、薄い冊子を渡されただけで退散しました。
2007-09-19 (Wed)
_ [違法派遣時代] クラッシュ
24時間運転するタイプのアプリケーションにおいては、クラッシュが非常に問題になります。クラッシュというのはおなじみの、アプリケーションが動作中にエラーを吐いて強制終了することです。
これは発生すれば誰が見ても不具合だと分かる(弁解の余地がない)ので、絶対に出してはいけないとされています。しかし現実的に言って、絶対にクラッシュしないというのは非常に難しいです。1週間に1回程度の頻度でクラッシュするなんてなると、自分が作ったアプリケーションを自分で運用して、クラッシュした時点でJustInTimeデバッグしたとしても、クラッシュの原因を知ることは難しいです。ましてや、他人が書いたアプリケーション、他人が運用している、残っているのはログのみ、なんてなると、ほとんど不可能です。同様の解析をさせられた経験は何度かありますが、少しでも成果を上げることができたことは一度もないです。
はっきり言って、せいぜい数時間使って終了させるようなアプリケーションしか書いたことのないような人員では、24時間運転を何10日もするようなアプリケーションを作るというのは無理があります。そのようなアプリケーションでは何度もテストやコードレビューを繰り返す必要があり、期間も費用もはるかにかかります。
2007-09-20 (Thu)
_ [違法派遣時代] 不具合の種類
「不具合」と一口に言いますが、いろいろなものがあります。一般的な物を挙げます。
- バグ
- クラッシュ
- フリーズ
クラッシュというのは、Windowsに限って説明すると、例外が発生して、その例外をOSがハンドリングし、その結果プロセスが強制終了することです。OSが例外をハンドリングした際にはエラーダイアログが出ることが一般的ですが、SetErrorMode()関数により表示なしにすることも可能です。俗語では「落ちる」とか「死ぬ」とか言います。
フリーズというのは、プログラムが無限ループに陥ったり、無限待ちに陥ったりして、応答しなくなることを言います。Windowsにおいては、ウィンドウの描画が停止してしまう現象などが、フリーズの一種です。俗語では「固まる」と言います。
ゲーム機が応答停止する現象については、クラッシュやフリーズの一種です。バグとは言いません。
2007-09-22 (Sat)
_ [日々の生活] ドメイン購入
とあるドメインを以前取りたいと思ったのですが、そのドメインはすでに取られていました。ある日そのドメインを見たところ、売りに出されていました。というわけで、買ってみました。海外のドメイン販売業者みたいです。購入の申請を出して、クレジットカードで料金を払ったところ、購入できました。
次に、このドメインを私が使っているレンタルサーバー業者に移管します。移管するためには認証鍵というのが必要になり、ドメインの移管元から認証鍵を取得して、移管先に認証鍵を渡します。販売業者の認証鍵の欄を見たらN/Aとなっていたので、サポートから問い合わせ。もちろん英文です。
素直に認証鍵を出してくれるといいんですが…。
2007-09-23 (Sun)
_ [日々の生活] 宇宙人との遭遇
夜。自宅のベッドで就寝中。キッチンの窓から物凄い量の黄色い光が溢れました。
いやいや、この時点で普通なら起きるはずです。私も目を開こうとしたり体を動かそうとしたりしたのですが、全くだめです。でまあ、これは夢なのです。夢の中で寝ている夢を見ることはたまにあるのですが、起きることは出来ないし、体も動かせないのです。
キッチンに宇宙人が2体登場! その内の1体が私の部屋に! この時点で起きようとか体を動かそうとかいう気力がMAXだったのですが、だめです。
しかし目を開けることに成功! そこには宇宙人の顔が…!
いやいや、椅子でした。ここでようやく起きることが出来ました。
2007-09-25 (Tue)
_ [日々の生活] 光回線開通
かねてからの懸案事項であり、いつか達成せねばと考えていた光回線が、ついに開通しました。光回線が安価になったころから引きたいとは思っていたのですが、アパートである都合上、難しいと思っていたのです。しかしよく考えたら、クーラーの配管から引き込めばいいのです。今までは光ファイバーを屋根裏を伝わせるとかいったことを考えていたため、難しいと思っていたのです。
申請してから2ヵ月あまり待たされて、今日ようやく開通です。工事はすんなりと完了しまして、同時に申請した光電話も問題なしでした。インターネットについては業者が持ち込んだパソコンで接続確認しました。
自分のパソコンの設定は自分でやりました。ルーターを挟んだ状態で接続を試みたのですが、うまくいかず。CTUの設定で、外部からのPPPoE接続を許可しないといけないことを忘れていました。設定を直したところすんなりと接続できました。速度は上り下り共に35Mbpsくらい出ています。ニュースサイトのような比較的重いページでも瞬間的に表示されるようになりました。
2007-09-26 (Wed)
_ [日々の生活] ネットワーク切り替え
光回線の導入は成功で、うまくいかなかった時のために残しておいた固定電話とADSLを解約することにしました。私はプロバイダーを2つ使っていまして、一方のプロバイダーを光にしたのですが、もう一方も光にするように申請。さらに固定電話の解約を申請。
次に自宅ネットワークの切り替え作業。ここで気がついたのですが、マシンが2台あって、片方にLANカードが複数刺さっていて、これをHUBを使って全部繋いだ場合、マシン間の経路が2つ出来るわけですね。そうするとなんか調子悪くなっちゃうみたいです。(詳しく調べていないので、詳細不明) IPの設定を工夫して、とりあえず回避。
ルーターが3台あるのですが、これの繋ぎ方も工夫しなければいけないようです。
2007-09-29 (Sat)
_ [違法派遣時代] 仕様書とプログラム
プログラムを作るというのは、口頭や会議でこんなものを作って欲しいと言われて、それで作るのではありません。まずどんな機能が必要かという要求仕様書というものを作り、これを元にシステム仕様書という物を作り、さらにプログラム設計書を作って、これでようやくプログラムします。設計書についてはプログラマーが書くことが多いです。システム仕様書はエンジニア(SE)が書きます。で、なんですが、最終的に納品されるのはプログラムでして、仕様書は納品物には含まれないのですよ。当然行われる手抜きとして、仕様書の省略が行われます。
プログラムというのは仕様書に基づいて作る物であるため、仕様書なしでプログラムを作ったとした場合、いったいそのプログラムは何に基づいて作られているのか分からん訳です。さらに、仕様書からテスト紙を作り、プログラムが仕様を満たしているかテストするのですが、このテスト紙も作れません。
とまあ、こんな状態で、どこから沸いてきたとも知れないプログラムが納品されるわけです。