ラベル 屁理屈 の投稿を表示しています。 すべての投稿を表示
ラベル 屁理屈 の投稿を表示しています。 すべての投稿を表示

2013年5月3日金曜日

システム開発会社として善良なる管理者の義務に基づき瑕疵のないシステム構成を設計すべき義務がある

雨で人格が完全に縮退しているみけです。

世間を騒がせたJINS PCのクレカ情報流出事故の報告が発表されたようです。


不正アクセス(JINSオンラインショップ)に関する調査結果(最終報告)




これをうけて、エンジニアの方々のエントリーがいくつかあるようです。



また、発表されたStruts2の不具合については下記の通り報告があるようです。


まあ、技術的な側面での考えはだいたいこんなもんかなとおもいます。


で?


技術的な側面に向けての記事書いたって、

もう二番煎じだし、

技術が優れている人がJava6以前使うなとかRuby1.9以前使うなとか

いろいろ発言されているので、

技術がない僕としては自分の興味にそってなんか書こうと思います。


で、僕はまあ、精神的にアレな人なので、

人間のもっと暗黒面というか、

どろくさい部分に目を向けたいと思います。


再発防止策から読み解いてみよう


JINSでは再発防止策を下記の通り発表しています。

  • PCI DSS(Payment Card Industry Data Security Standard)への準拠
  • 外部の決済代行サイトの利用

というわけで、JINSでは内部でカード決済の機能を使わないように、

システムの仕様を変更するということですね。


じゃ、なんで最初から決済代行サイトを採用していなかったのかな…(´・ω・`)


理由はいろいろと考えられます。


  • 決済代行サービスの利用料が高かったのでカード決済の機能を作成したかった
  • カード決済機能に実績のあるベンダーから自前で機能を抱えることを提案された


いいにおいがプンプンする所で、

事故の根本原因(と考えられるもの)が

前者だとユーザー側にあって、後者だとユーザー側にないということになりますね。


実際にどういう経緯があったかはわかりませんが、

まあ、事故のあとの報告としては後者の方に倒したいところですね。


言葉遊び・数字あそび


ところでITシステムにおいて、tabula rasaなるユーザーにおいては、

システム開発のプロフェッショナルたるシステム開発会社にアドバイスをもとめるわけで、

先の理由の部分、いくらでも書き換えられます。


  • 決済代行サービスの利用料が高かいとベンダーから報告を受けたので、自前で開発することを決定した
  • カード決済機能に実績のあるベンダーから自前で機能を抱えることを提案された


こうなってくると、もうベンダーの方は完全に負け戦になります。

特にこういう提案資料とかの金額の部分って、いくらでもごまかせます。





こういった類の本が売られているほど、

数字というのはうそをつけるし、

数字によって騙されやすいもののようです。


まあ、企画提案書とかどうなっていたのかわからないから、

推測の域を出ませんけど、

もしかしたら、

スクラッチで開発する方が、外部の決済代行サービスを利用するよりも安くなるような

資料があるかもしれません。


だって


システムを開発する会社からすれば、

開発機能を増やして、

売上を高くしたいですからね…


(利益を高くするでないところに注意)


人間的、あまりに人間的


人間、一度成功を体験すると、

  • もっと挑戦をして、成功を体験したい
  • 同じ手法にて成功を増やしたい

こんな欲望が発生するかもしれません。

まあ、純粋に技術者だったら前者ですが、

企業としては確実に成功を狙いたいですから、

後者のほうを選ぶことが多いかもしれません。


ということで、Struts2のバージョンが云々とありますが、

その古いStruts2のバージョンでの成功の経験がある

リーダーないし、プロジェクトマネージャーないし、アーキテクトがいたので、

その古いStruts2を採用した可能性は否めません。


で、後者の方を選択する人の常として、

最新情報に疎いことが往々にしてあります。


といったわけでセキュリティイシューを見逃していたことは否定出来ないと思います。


で、笑えない話


ところで、JINSの発表を受けて僕がした適当なツイート、

結構リツイート頂いたようです。





JINSさん美味しいネタ提供ありがとうございました。

じゃなかった、

以前、僕が務めていた会社で、

システムを更改する案件があった時に、

お客さんに更改する旨伝えて、お金をいただくわけですが、

なんで機能が増えないのに、お金を支払わないとイケないわけ?

と文句を言われたことがありました。


システムの更改は、ハードウェアの故障率の増加とか、

ミドルウェア、ハードウェアの保守期限が切れるために

行わざるを得ないのですが、

ユーザーからすればベンダーの都合によりお金をとられるのは割にあわないと

感じているようです。


ハードウェア、ミドルウェアの保守期限が切れているため、

壊れてしまえば、もうどうすることもできなくなるのですが、

人間、壊れていないときに、壊れた時の話をしても

ピンときません。


だから更改の提案をするときは本当に嫌がられます。

で、僕のあの適当なツイートはあながち笑い事ではないです。


とりとめのない文章になって来ましたがマトメ


システムの開発・運用って、やっぱり人間的な

ドロドロしたものがあるので、

なんか、もう、アレですね。

(アレ=適当に察して下さい)


というか、タイトルほとんど関係あらへんがな(´・ω・`)



2013年4月21日日曜日

厨二病のみけ様、大変恐縮ですが、勤務時間は全社員共通の8時間が定時となり個別の調整は難しい状況です。

ソフトウェアの品質に関するサービスを提供している会社から

オファーが来たので、応募してみました。

やっぱり、うつ病であることを隠すのはよくありません。

だから事前にちゃんと伝えておきました。

その返信は以下のとおりです。

厨二病のみけ様

お世話になります。
株式会社hoge採用担当です。

この度はオファーへのご返信、誠にありがとうございます。
大変恐縮ですが、勤務時間は全社員共通の8時間が定時となり
個別の調整は難しい状況です。

大変残念ですが、ご了承いただきたく存じます。
また何か機会がございましたら、その際は何卒よろしくお願いいたします。


株式会社hoge
採用担当




> ソフトウェアの継続的インテグレーションに興味があるので応募しました。
>
> 【アピール】
> JUnit/Groovy/Gradle/Maven/Spock/Selenium/HP Quick Test Professionalのスキルがあります。
> また、JavascriptのテストをJavaで実行できるようなライブラリーの作成もしております。
>
> 【考慮頂きたい事項】
> うつ病のため長時間の勤務ができません。
> 勤務時間について調整願えますでしょうか?


やっぱり社会というのはうつ病を生産するくせに、

うつ病を排除するんですね。

結論

「ドイツ民族、即ちアーリア系を世界で最優秀な民族にするため」

遺伝病や精神病者などの「民族の血を劣化させる」「劣等分子」を排除するT4作戦を実施した

ナチスドイツというのはその点では非常に優しい思想を持った国だったと思います。

厨二病のみけ様、ご希望にそえず申し訳ありませんでした

人身売買系のSI会社からオファーが来てたので、

面接の応募をしてみました。

ただ、うつ病だとか、腰痛持ちだとかの僕にも相手にも

不利な条件を隠して面接をするのは気が引けます。

そこで、先に希望条件を提示して、

叶えられそうなら面接するというスタイルで応募してみました。

返ってきた文面は次のとおりです。

厨二病のみけ様

下記の件で、A.C.に関しては客先常駐になるためお約束できません。
申し訳ございませんが、面接はなしとさせていただきます。

オファーに対し返信していただきましたが、
ご希望にそえず申し訳ありませんでした。


> 第1希望:4月23日 13時スタート~17時スタートまで
> 第2希望:4月24日 13時スタート~17時スタートまで
>
> ★面接前に質問・相談したい
> A. 現在うつ病を患っているため
> (自立支援医療制度(精神)適用済み、障害者手帳申請済み、障害者年金申請中)
> (1)勤務時間を11:00~17:00(途中1時間休憩含む)とすることはできないでしょうか?
> (2)勤務地について、都内限定にしてもらうことは可能でしょうか?
>
> B. 僕はJavaの専門プログラマーです。
> (1)PHP、C#、F#の案件はやりません。
> (2)Windowsは開発生産性がわるいため、Macintoshでの開発を希望します。
> (3)eclipseは開発生産性に乏しいため、JetBrains IntelliJ IDEAでの開発を希望します。
>
> C. 腰痛持ちです。(過去にぎっくり腰を数回していて、くせになっています。)
> (1)アーロンチェアと言わないまでも、腰痛にならない椅子での勤務を希望します。
>
> D. キャリアパスについて
> (1)プログラマーの価値を向上させたいという思想で生きていますので、
> プロジェクトマネージャーや何もできないエス・イーというポジションにはつきません。
>
> E. プロジェクト管理について
> (1) Atlassian JIRAでのプロジェクト管理を希望します。
> (2) Atlassian Confluenceでのドキュメント管理を希望します。
> (3) Gitでのバージョン管理を希望します。(svn、cvs、vssは使えますが、希望しません)
> (4) JenkinsあるいはTeam Cityでのビルドを希望します。
>


なんだ、結局うつ病の人間なんて社会からいなくなればいいのにと

社会が言っているんですね。

結論 日本に在住する日本国籍を有するもので精神を患っているものは粛清されるべき


オフショアがダメだと思う7つの理由

厨二病を発揮中のみけことみけです。

昨日のエントリーいろいろな方にファボもらいました。

ついでだから、アマゾンアフィリのリンクからポチをしてください。

本題


オフショアが日本-東アジア圏ではダメだと思う理由をあげます。


日本語が特殊すぎる

日本語は特殊な言語で多分機械翻訳はほぼ無理です。

無理と言われていた将棋がプロ棋士よりも強くなるというのは、

現実化しつつありますが、

日本語を他の言語に置き換えるのはまだまだ先の話だと思います。

したがって、日本語で書かれた仕様書をオフショア先に届けても、

まあ、良い感じに解釈してくれないでしょうね。


解決策 仕様書をもっと数学的に記述すること




プログラミングの技術レベルが低い

まあ、インターネッツ様のお陰で、

プログラミングに関するhow-to的なものを検索することは可能になっています。


だけど、もっとメンテナンスしやすいプログラム、

読みやすいプログラム、安全なプログラム、

こういったプログラムを書くためにはインターネッツ様だけでは足りません。

『達人プログラマー』とか、『Thought works アンソロジー』とか、『ドメイン駆動設計』とか

こういった書籍で勉強する必要があります。

でも、インドネシアやベトナムといったオフショア先にある国で

書店を回ってみましたが、

こういった書籍が置いてあるところは皆無でした。


これが意味するのは、オフショア先で技術が向上しているといっても、

それはコピペをする能力が向上しているだけで、

プログラムを書く能力が向上しているわけではありません。


機械化に関する考え方

オフショア先というのは人件費はマジ安いです。

ベトナムだとおそらく日本人一人雇う金額で、

ベトナム人5人くらいを雇えます。


でも、ここに落とし穴があります。


マシンの値段はあまり変わらないということです。

日本でビルド専用の結構いいマシンを買うと、

人件費の5分の2くらいで購入出来ます。


でも、オフショア先では人件費の2倍かかります。


したがってなんでもかんでも機械化するということに関する情熱は、

金額的に考えて5倍の差があります。


言い換えると面倒くさくて時間のかかる作業も、

彼らは人力でやろうとするし、

機械化したら仕事取られちゃうしで、

機械化するのを嫌います。


でも、日本では機械化してないとやってられませんね。


というわけで、テストを書くとかそういう考え方がオフショアでは希薄です。

Jenkins?そんなのオレがやるから導入するなよっていう感じだと思います。

結論 オレ(オフショアのオレくん)がリアルJenkinsだ!


責任というかなんというか

これな。

僕はこれインドネシアと中国で痛い目にあっているんだけど、

なにかしらのうまくいかないことがあると、

日本人の責任にされます。


オフショア先では教えたことはやるけど、

教えたことの応用はできなく、

それをやらないことの責めは

日本人にあることになります。

結論 オフショアがうまくいかないのは日本人が悪いニダ


コスト的なこと

まあ、テストを書かないというのは前の前に書いたことですし、

コピペが多いというのは最初のあたりに書いたことですが、

ここからの結果として、こんなことになります。

不具合が発生した場合、
  • 不具合箇所のきりわけ
  • 不具合箇所の修正
  • 不具合箇所の修正の確認
に膨大なコストがかかる。

で、コピペ技術のすぐれたオフショアプログラマー、

これらの技術はありません。

そこで!日本人登場ですよ!

日本人のエンジニアがこれらプログラムの森を進み抜き、

不具合箇所を修正します。


結論 日本人がプログラム書かないためのオフショアなのになんで日本人がプログラム書いてんすか?


トータルコスト

というわけで、コストをだいたいみてみると、

こんな感じになると思います。

ちなみにウォーターフォールを前提としてます。


モデル

計画
  • 工数 : 30人月
  • 開発期間 : 3ヶ月
  • 開発体制 :
    • 日本人SE : 1人x3ヶ月(ブリッジSE兼PM) + 0.5人x1ヶ月(アーキテクトとか考える人)
    • オフショア : 10人x3ヶ月

結果
  • 工数 : 30人月 + 30人月(日本人による修正)
  • 開発期間 : 6ヶ月(バグ取りの期間を含む)

収支(便宜上、日本人1人月100万、オフショア20万)
  • 予算 : 950万円
  • 費用 : 3350万円

その他
  • ブリッジSEの過労による精神障害の発生
  • 納期遅延による顧客との信頼関係の喪失


というわけで


オフショアするなら、オフショア人員一人あたり日本人一人つけといたほうが安全です。

あれ、それってオフショアの意味なくない?


あと、7個も理由書いてないや…(´・ω・`)

2013年4月19日金曜日

社会に反抗する厨二病

個人と社会という二元論の立場を取ります。

社会に反抗する人を厨二病と呼んでいますね。

では、社会の側に立って社会に順応させる人のことをなんて言うんでしょうか?

社畜ですかね…