「システム開発」を含む日記 RSS

はてなキーワード: システム開発とは

2015-09-10

世界いちばん遠回りな世界一周

もう誰も覚えていないと思うけど、3年ほど前、ここに、"Hello world!"というタイトルエントリ投稿した。あの話の続きをしようと思う。

※このお話はたぶんフィクションです。実在の人物や団体とはあんまり関係ありません。

※前回のあらすじ:高校中退工場派遣プログラマホームレス自立支援施設プログラマ海外放浪職業訓練世界一周アプリを作る


あれから3年、いろんなことがあった。またプログラマとして働いたり、またホームレスになったり、福島除染作業員をしたり、本当にいろいろあったけど、 今回の主題にはあんまり関係ないのでざっくりはしょる。今回の主題世界一周についてである

はいつか世界を巡る旅をする。10年くらいかけて。わりと本気で。その計画を立てるためのアプリケーションも作った。でもそのアプリ正式リリース以降、開発が頓挫している。開発を進めるにあたって、致命的な問題があることがわかったからだ。それは、開発者である自身が、この世界について何も知らないに等しい、という問題だ。

開発者は、システム化する対象に関して、誰よりも精通していなければならない。業務用アプリケーションの開発なら、 その会社の業務フローについて、社内の誰よりも詳しくなくてはいけない。システム開発とはそういうものだ。そして今度の対象世界だ。すべての国だ。それを僕自身が知らなくてはならないのだ。

しかし世界は巨大で、そして複雑だ。

国連加盟国は現時点で193か国。それぞれの国の下に州や省や県があり、その下に市区町村があり、そういった階層的な行政単位以外にも、歴史的背景から自治区になっているところや特別行政区連邦直轄領もあり……。

そういや連邦ってなんだろう。なんとなく知っているようでいて、詳しくはわからない。王国共和国ってどう違うんだろう。国の形ってなんでこんなにいろいろあるんだろう。いやそもそも国ってなんなんだ。どうすれば「国」になるんだ。

国連に加盟していればいいのか。いや国連非加盟の国もあるじゃないか。国家の三要素(領域人民主権)を満たしていればいいのか。しかしそれを満たしていることを誰が認定するんだ。他国から承認があればいいのか。その他国は誰が国だと承認したんだ。政治的問題から国なのか国じゃないのかはっきりしない地域だってたくさんある。国とか国じゃないとか最初に言い出したのは誰なのかしら。

それは世界一周アプリの開発中に国データをちまちま作っていたときにも思ったことだ。もしかして「国」というのは、僕が思っていたほど絶対的で、はっきりしたものではなく、相対的で、曖昧ものなんだろうか。

からない。わからないことだらけだ。こんなもの本当にシステム化できるのか。複雑ってレベルじゃねーぞ。これが仕事だったら「うんこー☆」とかいいながら全力で投げ出しているところだ。しかしこれは仕事ではない。これは仕事ではないので、真剣に取り組まなければならないし、投げ出すわけにはいかないのである

だけど、 どうしたらいいんだろう。世界はあまりに巨大で、複雑で、茫洋としている。何かとっかかりが必要だと思った。基点が必要だと思った。人でも物でも事柄でもいい。それをとっかかりにして、基点にして、少しずつ裾野を広げていけばいいのではないか。そう思って、自分記憶を探ってみる。僕の基点、時間軸と空間軸の原点、それは子供のころ、ブラウン管の向こうに見た、落書きだらけの大きな壁だった。


1989年11月ベルリンの壁崩壊した。僕が9歳のときだった。ニュースは連日連夜、この話題で持ちきりだった。興奮気味に壁を壊す人たち、全身で喜びを表現する人たち、泣きながら抱き合う人たちもいた。世界中が大騒ぎになっているようだった。僕はその映像を、意味もわからずただぼんやりと見ていた。

それからしばらくして、社会科教科書世界地図が大きく書き換わった。ソ連という国がなくなり、新しい国がたくさんできたのだという。国がなくなる? 国が新しくできる? その意味もまたよくわからなかった。

時間軸は一気に飛び、ベルリンの壁崩壊から20年以上たったころ、僕は生まれて初めて日本を出た。半年かけて海外放浪した。特に目的もない旅だった。だからその場所に行ったのも、ほんの気まぐれだった。

ベトナムホーチミン市にある戦争証跡博物館ベトナム戦争記憶を後世に伝える博物館だ。旅の途中にふらりと立ち寄ったそこで見たものを、僕はいまでもフラッシュバックのようにありありと思い出せる。

銃器、対戦車地雷、その他さまざまな武器弾薬が「こうやって使われていたんだ」といわんばかりに、実際に使用している場面の写真と並べて展示されている。銃を突きつけられて悲壮な顔をしている男性、道ばたで血まみれになって死んでいる子供、虫の死骸のように雑多に並べられた人の死骸、そんな凄惨な写真がこれでもかと並ぶ。

何か、自分の中で価値観が急速に書き換わっていくのを感じた。頭の中がぐちゃぐちゃになって、いろんな言葉が浮かんでは消えていく。

資本主義

共産主義

イデオロギーとは何だ?」

そのとき同時に頭の中に浮かびあがってきたのが、子供のころに見たベルリンの壁崩壊ニュース映像だった。あれから20年以上たってようやく僕は、あの人たちがどうしてあんなに泣いたり喜んだりしていたのか、少しだけ理解できたのだ。


あの博物館で僕がもっとも強く感じたのは、「戦争悲惨だ」という事実ではなく、「どうしてここまでのことになったのか?」という疑問だった。人が人を虫けらのように殺す、その理由が知りたい。そこには絶対にそれなりの経緯があるはずである。東西冷戦とは何だったのか、僕はまずそれを知らなければならない。

しかしこうなるともう最初から世界史をやり直したほうが早いんじゃないかと思った。よし、時間軸を一気に人類歴史の始まりまで巻き戻そう。

まずは大河流域で文明がおこる。チグリス・ユーフラテス川ナイル川インダス川黄河。うわー、すげー懐かしい。そして農耕が発達する。食料を安定して収穫・保存できるようになると権力が生まれる。そこから世界各地で似たような権力闘争が延々と繰り返される。

特に印象深いのが「カノッサの屈辱」だ。十代のころ、学校でこれを習ったとき意味がわからなかった。この人たちは何をそんなに必死になっているんだろうと思っていた。いまならわかる。目的は、権力そのものなのだ。人の頭を踏みつけること、人を思い通りに動かすこと、それ自体が目的であって、権力によって得られる富や名声は二の次なのだ。それは自分の経験を振り返ってみてもわかる。ヤンキー世界でもエリート世界でも、どんな場所でもどんな階層でも、人間が集まれば、始まるのはいつも頭の踏みつけあいである。それが直接的か間接的か、下品上品かという違いはあれど、やっていることは同じだった。だから世界史に記されたこのくだらない争いの数々も、いまは実感を持って理解できる。

そして絶対的権力者である神によって凍結されていた歴史が、ルネサンス以降、急速に動き始める。宗教改革名誉革命フランス革命。それまで聖職者王侯貴族が持っていた権力が少しずつ引き剥がされていく。そしてフランス王国フランス共和国に。ああそうか、王国共和国の違いって「王様」がいるかいないかなのか。さらに現代の「国」という概念国民国家というのも、このころに生まれてきたもののようだ。人類歴史から俯瞰すれば、ここ200年くらいの「流行」にすぎないのだ。

しかしフランス革命って華々しいイメージだったけど、こうして改めて調べてみると、革命政権恐怖政治によって何万もの人間が処刑されていたり、何度も王政に戻っていたり、混沌としすぎていて、華々しいなんてとてもいえない血まみれの革命だったのだと気づかされる。

そんな混沌の中、産業革命を経て、歴史さらに加速する。権力のあり方も変わる。聖職者王侯貴族に変わって資本家が台頭してくる。資本主義が加速する。貧富の差が拡大していく。賃金労働者悲惨労働環境で搾取され続ける。暗澹とした空気の中、社会主義共産主義という思想が台頭し始める。ロシア革命が起こる。世界初社会主義国ソビエト連邦誕生する。

いままで社会主義ってあまりいいイメージはなかったけど、こうして順序立てて成立の経緯を追っていくと、歴史の中での必然性がわかる。みんな、もう誰も頭を踏みつけあわずにすむ世界が欲しかったのだ。だから既存の権力や富や労働のあり方を強制的に変える。そしてそれが国の形を変える。そうか、国の形ってこういうふうに決まるのか。

しかし計画経済ってなんだろう。どうしてそんなもの必要になったんだろう。と思って、初心者向けの経済学の本を何冊か読んでみた。めちゃくちゃおもしろかった。経済ってこういうものなのかと思った。市場経済では必ず景気は好況と不況を繰り返し、いつかどこかで恐慌を引き起こす。そんな繰り返しをさせないために、計画経済では政府の計画にしたがって商品を生産する。そうか、そんな経済の形もあるのかと思った。ずっと現代日本で生きてきた僕にとっては、市場経済があたりまえすぎて、市場自由がどうの規制がどうのといわれても、これまでピンとこなかった。「あたりまえ」のことは、対比されるものがないと、それを知覚することさえできないものなのだと知った。

その市場経済へのアンチテーゼとしての計画経済は、しかし破綻する。いつ、どこで、誰が、何を、どのくらい欲するか、なんてことを計算し尽くすには、リソースが足りなさすぎたのだ。結果が出ているいまだからいえることなのかもしれないけど、少数の頭のいい集団演算能力よりも、多数の平凡な人間無意識的な分散コンピューティング見えざる手)のほうが演算能力は遥かに高いのである

そして社会主義自体も破綻する。ソ連型の社会主義では一党独裁必要とする。しかし絶対的な権力は絶対的に腐敗する。それは歴史証明している。独裁政権必然的暴走していく。これも僕は経験として知っている。「いじり」がいつも「いじめ」に発展するのと同じだ。他人おもちゃにできる、自分の思い通りにできる、これは権力である。そして「いじり」は場の空気によって正当化されるので抑制がない。抑制のない絶対的な権力は暴走する。だから 「いじり」はいつも「いじめ」に発展する。企業内のハラスメント家庭内虐待も同様だ。人間は好き勝手にできる状況に立たされたとき、好き勝手振る舞うものなのだ。そうか、チェックアンドバランスってそのために必要なのか。絶対的な権力は絶対に生み出してはならない。権力は絶対的に抑制されなければならないのだ。三権分立を唱えたモンテスキューさんマジパネェすわ。

こうして自由主義資本主義矛盾への疑問から生まれた社会主義共産主義は、自身内包していた矛盾によって自壊していく。そして時間軸と空間軸はまた原点に戻る。冷戦象徴であり、永遠に世界を二分し続けるかのように思われていたベルリンの壁が、ささいな行き違いからあっけなく崩壊する。ほどなくしてソビエト連邦から次々に構成国が離脱し(国が新しくできる)、連邦は解体される(国がなくなる)。

天秤の片方から社会主義共産主義が脱落したことにより、その後、世界はまた自由主義資本主義へと大きく傾いていく。混合経済社会主義的な部分が次々と取り払われていく。その結果が、派遣法改正だったり、リーマンショックだったりするのだ。そしてそれらは僕の人生にも多大な影響を与えている。そうだ、これはひとごとではない。遠い昔にあった「歴史」でもない。僕がいま生きている「現代」の話なのだ

そうか、世界ってこういうふうに動いていたのか。少しずついろんなことがわかってきた。国とは何か。イデオロギーとは何か。なぜ法の支配必要なのか。なぜ憲法必要なのか。しかしそれよりも何よりも、ひとつ重大な事実を確信した。それは、世界のすべてを知ることは絶対にできない、ということだ。

ミクロ領域――個人の感情や行動、これはわかる。マクロ領域――世界市場や情勢、これもわかる。しかし両者がどのように関連しているのか、個人の感情や行動が、どのように影響しあい、どのような力学が働いて、世界市場や情勢を動かすのか、逆に、世界市場や情勢が、個人の感情や行動にどのような影響を与えるのか、それを計算し尽くすことは、誰にもできない。それは人間演算能力の限界を遥かに超えているからだ。

「俺は世の中の仕組みをわかってる」「裏の論理まで知ってる」と嘯く人にはたまに出会うけど、そういう人が本当に世界の仕組みを知っていたことは一度もない。本当にただの一度もなかった。陰謀論マクロミクロの間にある巨大で複雑な回路をショートさせただけの反知性主義にすぎない。僕はそんなチートに興味はない。僕は真正から正攻法で、その回路を解析したいのだ。そうでなければ意味がない。

ああ、そうか、経済学とは、それを解き明かそうとする学問なのだマクロミクロの間にある巨大で複雑な回路。それを解析するのが、経済学や、その他の社会科学なのだ。僕はそれを、もっと深く学ばなければならない。

進むベき方向性は見えてきた。しかしここからどうするか。独学ではもうこのへんが限界のような気がする。つぎはぎだらけの学習じゃなく、もっと体系的に学びたい。でもどうやって学べばいいのかがわからない。僕はまず、学び方を学ぶ必要があるのだ。それには、どうしたらいいのか。

頭の中に浮かんだのは、「大学に行く」という選択肢だった。


大学に行く。どうしてそんな選択肢が浮かんできたんだろう。これまで僕の中にそんな選択肢は存在していなかった。そのはずだった。これまでずっと金も時間もなく、ただ日々の生活に追われるばかりで、そんなことを考える余裕は一切なかった。そんなことを考えるくらいなら明日の飯の心配をしたほうがいい。ずっとそう思って生きてきた。

何より僕には自信がなかった。自分みたいな中卒の人間高等教育を受けたところで何の意味もないと思っていた。そんなの僕にはまったく関わりのない知識階級人間世界だと、大学なんて僕にはまったく何の関係もない、別の世界に存在するものだと思っていた。

でも思い返してみれば、その認識は少しずつ変化していた。いろんな仕事をしたり、あとさき考えず旅に出たり、プログラムを組んだり、文章を書いたり、そしてそれを不特定多数の人の目に晒したり、ずっと何かに追われるようにそんなことを繰り返してきたけど、その過程で、僕は何か大切なものを拾い集めてきた気がする。それはたぶん、自尊心と呼ばれるものだ。幼いころに失い、ずっと欠けたままだったそれを、僕はこの歳になって、ようやく取り戻すことができたのだ。

からいまは自分高等教育を受けることに意味がないだなんて思わない。大学が別の世界に存在するものだなんて思わない。ああそうか、だからいま、このタイミングで、「大学に行く」という選択肢が、僕の前にあらわれたのか。

あとはこの選択肢を選び取るかどうかだ。

いまの時代大学に行くなんてそんなにたいしたことじゃないのかもしれない。だけど少なくとも僕にとってそれは、とてつもなく勇気エネルギー必要なことだ。ホームレスになることよりも、右も左もわからないまま海外に飛び出すことよりも。

現実的問題もたくさんある。資金、学力人生の残り時間。いろいろと考え始めると、解決しなければならない問題が多すぎて、わけがからなくなってくる。もうどうでもいいじゃないかと投げ出したくなってくる。でも僕の中の何かが、そうさせてくれない。僕の中の何かが、そうじゃないだろうと責め立てる。

これには覚えがある。この熱には覚えがある。これは、あの旅の途中、自分の中に発見した、マグマのような熱量だ。感情になる前の感情。行動になる前の行動。名前なんてつけようもないほどプリミティブな衝動。僕はいままさに、それに直面している。そしてその熱量からは、どうあがいても逃げられない。それだけは確信できる。

だったらもう、覚悟を決めるしかない。本当にもう、そうするほかどうしようもない。

僕は大学へ行く。

そうやって覚悟を決めてみると、ものすごく気が楽になった。気分が軽くなった。

ああどうしていままでこんな簡単なことに気づかなかったんだろう。その想いはずっと自分の中にあったのに。

僕は、「大学へ行きたかった」のだ。

続き→http://anond.hatelabo.jp/20150910220232

2015-08-10

国が『ITドカタ』を解放?しにきてる

閣議決定された「日本再興戦略改訂2015を流し読みしてたら、国が本気で多重下請け構造を無くしてITドカタを解放(または追放)しようとしてたので取り急ぎ転載

IT 産業構造改革による競争力の強化

IT 産業は、もともと、業務プロセスコンピュータプログラミングで書き下していく労働集約的な産業であったが、近年、汎用的なパッケージソフトクラウドサービスの登場等もあり、作業の効率化が図れるようになったことや、IT役割コスト削減から付加価値創造シフトしつつあることから欧米諸国においては、創造的なシステム提供提案による知識・能力集約的な産業に転換が進んでいる。

また、ビジネス変革のスピード対応した、アジャイルと呼ばれる機動的なシステム開発手法の登場やセキュリティリスクの高まりは、システム開発運用に高度なマネジメント能力要求するようになってきている。

しかし、日本IT 産業では、未だに、決められた要件に従ってプログラミング作業を行い納品するビジネスモデルが根強く残り、このため、労働コスト削減のための丸投げ下請け慣行・多重下請構造から抜け出せず、低生産性でかつセキュリティリスクの高い構造に陥っている。

この状況を脱却するためには、丸投げ下請を防止し、能力・成果・リスク等を適切に評価した取引を推進していくことが必要であり、この観点から下請代金支払遅延等防止法下請法)等の法令適用及びその他の取引適正化の取組についての考え方を示した「下請適正取引等の推進のためのガイドライン」の IT産業分野についての見直しを本年度中に行うとともに、下請法違反する取引については、厳正に対処していく。

さらに、本年度中に策定するサイバーセキュリティ確保に係るガイドラインにおいても、情報システム発注者セキュリティマネジメント上の責任明確化し、あわせて丸投げ下請の防止を図る。

上流下流無くなるか

特定派遣も無くなるし(三年猶予あるけど)、ちゃんとしたプログラマの単価が上がる?

なお今のPG首都圏人月単価528,000 http://www.nearshore.or.jp/engineer-charge/

2015-08-06

金額見積もりと時間見積もり

システム開発見積もりは工数まり時間じゃないですか。

からすれば安いほうがイイわけだけど、安くすれば時間も短くなり、できることも少なくなる。

なれた客だと、見積もり時には要件ミニマムで、安く見積もらせておいて、後出しであれこれ要件タスクを増やしていくといった手法をとる。もちろん、見積もり金額が決定した後では、追加工数は認められないの一点張り


逆に、いい客は文句言いつつもカネを出してくれる。スケジュールも長くとってくれる。多くは無いがそういう客も存在する。

そういう客にはディスカウントしたいと思うんだよね。タスクボリュームに対して長いスケジュールを組んでくれれば、作業は余裕が出るし、品質も向上するし、何か問題が起きてもリカバリやすい。

営業や会社はイヤだろうけど、開発の現場からすればカネより時間重要じゃん?。

タスクボリュームに対してスケジュールが長いと判断できればディスカウントする。そういう仕組みがあれば、客も長めにスケジュールを組むモチベーションになるので、客と現場は ウィィィーーーーン/ウィィィーーーーンじゃないですか。

カネ的には一見ベンダ不利だけど、現場疲弊しにくい状況になれば、人材補充/教育コストも減るので、中長期的にはそんなに不利でも無いとか言う可能性もあるし。トラブルによる炎上なんかも、時間さえあればボヤで済むケースも多いしね。


どっかにそういう取り組みの実例ないかね。

とうとう人類幸せに導くpgbouncer1.6が公開された

みんな大好きPostgreSQL

複数DBマルチテナントシステムを構築するなら忘れてはいけないコネクションプーリング

大量コネクションを扱うなら都度forkやpre-fork式ではちょっと辛い、イベントベースが好ましい。

もうお分かりですね。pgbouncer1.6の話題です。

PostgreSQL界隈では有名なコネクションプーリング実装が2つあります。 pgpool-II と pgbouncer。

ざっくり言うと高機能の pgpool-II に対して、軽量・大規模向けの pgbouncer という棲み分けがあると言えるでしょう。

pgpool-II は最近日本トレジャーデータ社の Prestogres ( https://github.com/treasure-data/prestogres ) という痺れるようなプロジェクトベースとして採用されていることで名前を聞いたことのある方もいるのではないでしょうか。

pgbouncer は少し古いですが LastFM( http://www.lastfm.jp/user/Russ/journal/2008/02/21/zd_postgres_connection_pools:_pgpool_vs._pgbouncer )の事例が有名でしょう。Instagram も使ってますネ。

pgbouncerは現行のバージョンは1.5系で、最新は1.5.5です。1.6系は8月1日リリースされ、複数DBマルチテナントシステムに向けた大規模な機能強化が行われています

この1.6系では複数DBマルチテナントシステム開発者にとって嬉しい機能がたくさん搭載される予定です。本番運用に投入する前に一足お先にリリースノートを読んで夢を感じましょう。

バージョン2013年ぐらいからリリースノートは準備されているのにさっぱりリリースされなくて関係者をやきもきさせていました。(想像

記事では以下のリリースノートをもとにザックリ読み解いたものです。

http://pgbouncer.github.io/2015/08/pgbouncer-1-6/

主要新機能

接続ユーザーパスワードハッシュDBからロードできるようになった

プーリングモードの設定をデータベース毎、ユーザー毎に設定できるようになった

データベース毎、ユーザー毎にコネクションの最大接続数を制御できるようになった

・新しいコネクション確立を避けるための DISABLE/ENABLE コマンドが追加された

・新しい推奨のDNSバックエンド c-ares が追加された

設定ファイルに include ディレクティブを追加した

ではリリースノートをそれぞれ細かく見ていきましょう。

接続ユーザーパスワードハッシュDBからロードできるようになった

新しく以下のパラメータが追加された

1.5までのpgbouncerは userlist.txt というテキストに静的に接続ユーザを書かなければいけませんでした。

これは動的に接続ユーザーが増えるようなマルチテナントシステムを構築するのに不向きという事です。

この機能はその悩みを解消するための機能と言えるでしょう。

プールモードデータベース毎、ユーザー毎に設定することができる。

タイトルがすべてを物語ってます。柔軟にできますねぇ('∀`)

ただ、私にはちょっと有用な利用シーンが思いつかなかったです。

たとえば分析ユーザーではトランザクションなんて使わないので statement モードにしてコネクションの消費を抑えたりできるという事でしょうか。

データベース毎、ユーザー毎にコネクションの上限を設定できる。

max_db_connections と max_user_connections という設定が追加されます

テナント毎にユーザーを分けているような複数DBマルチテナントシステムにとって必須といえる機能です。

特定ユーザーリクエストコネクションをすべて占有されてしまい、他のユーザーサービスできないという事態を避けることができるようになるでしょう。

新しいコネクション生成を防止する DISABLE/ENABLE コマンドを追加。

特定データベースの新しいコネクション確立を抑止・再開することができます

新しいDNSバックエンドとして c-ares を導入した。

c-ares名前解決の非同期化を行うためのライブラリです。c-ares名前解決をブロックしないし、いろいろな方式名前解決に対応している唯一のプロダクトとのこと。

名前解決をブロッキングしてしまうようではpgbouncerのような大規模向けシステムでは役に立たないのだというpgbouncerの強い意志を感じる。

というか、ドキュメントを見る限り pgbouncer は名前解決にかなりこだわりを持っているらしい。それだけそこが重要ということでしょう

個人的には困ったことがないのでそこまでだわる理由はよくわからない。)。

SHOW CLIENTS, SHOW SERVERS で remote_pid を出すようになった。

UNIXドメインソケットで接続しているクライアントと、TCPまたはUNIXドメインソケットで接続しているサーバーでremote_pidを取得できるようになりました。

tcp serverの場合、pid はキャンセルキーから取得できる。(?ドキュメントから意味が読み取れず)

キャンセルキーとは何でしょうね。ちょっとリリースノートから判断できませんでした。

pg_cancel_backend とかに使えるPIDだよという事なのでしょうか。

ネガティブDNSキャッシュのために dns_nxdomain_ttl を分割した。

DBの数なんてもはや何台あるかわからない。ホスト名の解決はもはやDNSで行っておるよという皆様にとって必須機能

…なのでしょうがちょっとこの機能必要となるようなシステムとはどんなものなのか、私も未経験なのでよくわからないです。

クライアントIPアドレスポートapplicationネームに追加する

この設定は application_name_add_host=on にすることで有効となる。

今や接続アプリケーション名がWebだとかBatchだとか区別できるだけで問題が解決するような時代ではない。

どのホスト(ポート)レベル区別しないと。という事なんだろう。

「おお、Webサーバーから死ぬほど重いクエリが飛んでる、今すぐ調べないと!で、どのWebサーバーよ?100台あるんだぜ」みたいなときに助かりますね。

設定ファイルに外部ファイル読み込みディレクティブを追加することができるようになります

設定ファイル大規模化してくると、切り出して整理したいという要望はどうしてもでてくるもの

データベース毎、ユーザー毎に設定できる項目が増えてきたので必要になったという事でしょう。

以上。

以降はバグフィックスとかクリーンアップだとかで自分はあまり興味がないので各自読むように。

本番運用突撃するPostgreSQL界の猛者の報告待ってます

2015-07-30

僕が起業してからモチベーションが消えるまで

30代半ばの男。

数年前に会社を辞めて法人をつくって今に至る。

起業直後はモチベーションの塊だった。サラリーマン時代から仕事大好き人間だったけど、会社を作ってからは更にやる気がみなぎっていた。

自分パワポに描いたとある商材の購入サイト概要図(落書き)を持って、上場企業電話アポ→会ってくれた人に「こんなん作りたいんで、広告出してください」とお願いした。

営業の経験なんかなかった。元々事務職口ベタさらに人付き合い苦手で内気な性格だが、やらなきゃならんという覚悟と異常なモチベーションがあれば突っ込んでいけるもんだ。

会ってくれた人からパワポだけじゃわかりません。今、デモサイト見せてください。」と言われ、「システムはこれから作りますデモはそれまで待ってください。」とカミカミで返答したときの呆れられた顔。静まる室内。緊張感。でもひるまなかった。大きな問題なんかないんだ、あっても何とかする!前に進むことしか考えられないバーサーカーのような状態だった。

こうして勢いだけでなんとか最初の難関「営業」が終わった。

何社か回ったうち、数社から好感触を得たのでサイトの開発に着手した。といっても開発の経験なんかない。調べたところ、WordPressRuby on Railsというのを使えば求めているサイトが作れるようだ。お客さんには開発に数ヶ月かかると伝え、WPRailsについて最低限の勉強をした。そしてWordPressRails、それぞれの開発で有名な人に少しだけ時間をもらって話を聞きに行き、判断に迷う部分の方針を確定させた。そこからリガリ開発して、必要最小限のシステムが完成した。サイト流行るかわからんのだから最初は最低限でいいんだ、という考え。お客さんには予定どおり開発が終わりましたと伝えたが、スケジュール的にはギリギリだった。というかRailsがわからなくて開発自体できないんじゃないかと思う瞬間が何度かあった。しかしバーサクがかかって喰う寝るタレる以外はずーっと仕事に打ち込んだ結果、なんとか開発はできた。これで第2の関門「システム開発」が終わった。

そしてめでたくシステム運用開始&サイトオープンサイトWordPress連携して動くシステムRails)。

一日のアクセス数が○件で、そのうち○パーセントコンバージョンして...と皮算用していたが、実際には全然コンバージョンがなかった。

そこから色々とWebマーケ的な工夫をしたが、結局「そもそも需要が少ない」という根本的な問題の前では、枝葉の工夫など無意味に等しかった。

3つめの関門「集客」でコケたかっこうだ。

商材のサイトは失敗した。だが会社の売上を上げなければならない。そこから最初サイトシステムビジネスモデルとは全然無関係仕事を探し、やれそうなことはやってみた。そうしているうちに、当初考えていたビジネスではなく、注文を受けて何かをやる、代行業のような商売がメインになった。

そのうち、商売では何が必要なのか?どうしたらお金を出してまでやってほしいと思われるのか?ということが見えてくるようになった。同時に、先のサイトでのビジネスが失敗した理由と、成功させるために必要ステップ飛ばしいたことに気付いた。また、新たにビジネスをつくるには、"事前に"人を巻き込むことと、そして...ここぞというときギャンブル(まとまった投資)をしなければ次の段階にいけないことに気付いた。人を巻き込むこととギャンブル。どちらか一方じゃなく、両方必須。だがどっちも本来自分性格には合わない。ここでふと自分限界が見えてしまった。

起業当初は無知ゆえに、小さいサイトを金かけずに一人で作ってコツコツやればいつか認められ拡大していけるような気がしていた。そんな可能性を夢見て、様々なビジネスアイディア手帳に書いてはモチベーションが上がっていたが、今じゃアイディアを見ても自分にはできないと無意識的に判断してしまう。そのアイディアビジネス化するのに必要人間関係の構築。取るべきリスク。この2つが頭に浮かぶと、(自分には)できない、という結論になってしまう。

つのまにか"できること"から発想するようになり、平々凡々とした仕事だけするようになってしまった。

そんな日々を送っていたら、起業当初のモチベーションが消えていた。変に知識がついたせいか、期待感・高揚感より、実現するためのステップリスクが頭をもたげてくる。今じゃアイディア勝負なんかやる気がしない。現実的に売上が上がることしかやる気がしない。

何のためにわざわざ会社つくったんだろ。この先どうしようか。

2015-07-24

生産性寄与しないコーディング規約

多人数でシステム開発をする場合統一性があったほうが読みやすい」なんて理由で、言語別・組織別・プロジェクト別にコーディング規約があるものだけど、そんなに乱立しているなら個人別の規約があっても何も問題はないはず。

これは詭弁だろうか? でも個人的な開発や、開発中に読むサンプルコードも含めて、自分がいくつのコーディング規約に関わっているか考えてみると、個人から見た統一性は失われているわけだ。


「整理」と「整頓」という言葉がある。前者は秩序立てること、後者は見た目を揃えること。本を分野別・用途別に並べれば整理、大きさ別に並べれば整頓となる。

コーディング規約は専ら整頓のルール。読めない人にとって「きれい」に見せるルール

コード意味に関わらないからこそ、実装後に修正ができる。さもなければ、正しいコード自然コーディング規約に適うものになるはず。コードの正しさと無関係から、正しいコードでもコーディング規約違反だったり、コード理解していない人でも指摘できたりする。

コーディング規約を作って発表する人もいる。でもそれがどれだけ生産性を上げるかについては考えていない。作りっぱなし。そんなルールに「あとで読むタグを付ける人たちは、プログラミング言語表現の幅があることを欠点と捉えているのだろうか。本来そういったルールを作っていいのは言語の考案者だけのはずなのに。


一方で、整頓に当てはまらないルールもある。例えば命名規則

あるにはあるけど、言語に組み込まれているライブラリと同じ規則ベストなので、やっぱり規約は要らない。


コーディング規約のうちで役に立つの用語集くらい。

あとは自己満足

2015-06-24

俺の考えるニトリネット顛末

ニトリシステムコンサル(経歴だけやたらすごいことを主張し横文字ばかり使う)がGoogleパンダアップデートを機にニトリネットリニューアル提案

・その際に、自分懇意にしているシステム営業を連れてきて提案させる(CTC)

CTCのMAMSを導入することを決定し、基幹システム等のつなぎ込みプロジェクトが開始

 CTCでの受注額はおそらく数億〜十数億レベル(3年保守契約含む)→コンサルには5%キックバック

・この時点で、以前にニトリネットを依頼してた会社(0社)の足切りを決定。

・0社は引き継ぎは1ヶ月しか行いませんと明言、ニトリ担当者了解する。

CTC下請けへ開発を投げる。そこそこ中堅規模の開発会社(A社)が5000万で受注。

・A社、いつも仕事を投げているB社へ800万で発注

・B社、コンペで募った会社(C社、D社、E社)の中から、一番デザインが良さそうだったD社に300万で発注

・D社、デザインはできるがシステム開発ができないので、よく外注依頼しているF君に100万で依頼。

・F君必死Javaシステムをシコシコ作る。

・D社が上に上げたデザインが、ニトリ側で何度もリジェクトがかかり、作り直しを余儀なくされる。

・それに伴い、F君の作業もいきつ戻りつ、リニューアル1ヶ月前の状態でトップページもまで完成していない状況に。

不眠不休の1ヶ月を過ごし、ベータ版を完成させるが、ニトリ本社でのレビューで、これでは

 リニューアルができないという決断になり、リニューアルを延期させる(この時点で5月)

・6月1日リニューアルということになり、さらなる不眠不休の作業が続くF君。

しかも遅れたんだからということで、追加仕様バンバン舞い込む。

・6月1日も間に合わず、泣く泣く、2週間さらに延期とする。

・なんとか見せれる形のものになったので、これ以上伸ばせないという決断になり、リニューアルを向かえる

リニューアルは、新インフラ環境で行われたため、前の環境は残っていない。(会員データ登録しなおし)

リニューアルを行うが、高負荷対策が全く行われていないため、すぐにサイトがみれないようになりサーバーCPUは振り切る状態に。

・もう辛くてこの先かけない。

2015-06-21

夢のあるシステムに関わりたい。

夢のあるシステムに関わりたい。

いわゆるプログラマをしているが「屑システム」にかかわりたくない。

「屑システム」とは以下だと思ってる。

なお、一応言っておくと、私がかかわっているシステムすべてが以下に当てはまるとは言ってない。

自分が開発にかかわってるが、開発が進んでも自分利益にならない。他人の懐具合がよくなるだけ。

安月給はもらってるから、それで満足しろということになるわけだが。

その安月給は当然あがることはない。私から見れば立派な「屑システム」だ。

枯れた技術けが使われ、そのシステムにかかわったことが何の宣伝にもならない。

例えばいまさらsyslogが使えます、とかsnmpが分かります、とか意味なす。

いまならビックデータとか、クラウドとか、機械学習とか。

かいNoSQLとかクライアントサイドJavascriptとか。

次につながるようなシステム開発がしたい。そういう意味で「屑システム

システム」とは、プログラムのものだけを意味するわけではない。

プログラムを開発する、開発プロセスのものも「システムである

プログラマに丸投げしておけばシステムができるわけではない。

プログラムを開発するシステムが「屑」だとやる気が出ない。

例えば、ある作業をやったら、諸事情無駄になるようなのが「屑」な開発プロセスだ。

責任者に、リーダシップがないせいだ。あるいは、プログラマに何の権限もないと起こる。

人間から、全部有効な作業というわけにはいかないが、そんなんばっかりだとやる気にならない。

なお、リーダーシップというのは権限とセットだ。責任とセットなわけではない。

適切な権限があってこそリーダシップが発揮できる。

プログラムを作る責任だけあっても、その責任を全うできる権限がない以上

どんな提案をしても無駄になる。

そんなものは「屑」としかいいようがない。

上と被るかも知れないが、一週間に一回も会議を行わないようなのも「屑システム」だ。

確かに会議だけしても意味ないが、しなくても全く情報共有ができず、プログラマは何していいかさっぱりわからない。

また、各作業員の間で信頼関係がないのも、なかなかにシステムだ。

真の意味コミュニケーションが取れていない。というかそんなものそもそもない、ということなる。

2015-06-14

http://anond.hatelabo.jp/20150614154640

あーシステム開発ので見るやつですね・・・

まぁ、似たような感じかなー

いうても他社の真似をしてるのにまずいもん作るとかどうかと思うんです

味見とか食べ比べたりしないのかなぁと

2015-05-21

ドキュメントを残さなプログラマ

どうもスーツです。

実際にはスーツは着てないけどギークではありません。

某社に見るシステム開発における社内政治無駄さ加減について

http://b.hatena.ne.jp/entry/d.hatena.ne.jp/NOV1975/20150512/p1

これのはてブと元記事見て血圧上がったので、チマチマ反論するよ。

時間がない人向けのまとめ

記録を軽視するな。

今日常識」が未来永劫担保されることはない。

スーツからすると、ギークに釘を指しておきたいこと

業績が個人について回ったら、誰も保守しないだろ。

金を生むのかそのドキュメントレビューリファクタリングでいくら稼げますか?

ロボットアニメ博士みたいにな、空中から予算が湧いて出たりしないんですよ。

誤解があるみたいだから言っとくが、評価には減点も加点もある。

ただ、スケジュール前倒しで予算が浮くようなシステム作ったりしてないだろ。

何故ならばスケジュールは常にキチキチで、間に合わなきゃ減点されて当たり前だ。

そこは同情する。

見積は常に過少で、調整は過小評価され、日程だけが評価軸になりがちだ。

  • 隣の島の人は同僚ではなく調整相手
  • 文書のない調整結果は意味を持たない
  • 1分で済む会話より3往復かかるメールを選択する
  • やったという証拠を残すためだけのレビュー実施する

オマエらが椅子を滑らせて隣の同僚と1分会話して実施した内容は、キサマが風邪引くと誰にも共用されない。

コードレビューした。仕様書レビューした。まあギークが言うなら内容に間違いはないんだろう。

だが、その部分は三年前に転職した同僚がやったはずです?それじゃダメなのは判るよな?

オマエ独りで完結するプロダクトをオマエがケツもって仕事するなら文句は言わないが、違うよな?

記録に残せ。ドキュメントを書け。やったという事実を示せ。

本来は「指摘事項ゼロ」「問題がないか再精査しろ」「再精査したが無い」「一筆書け」「書いたから通せ」をやるのが正しいというのは判る。

やって欲しいのか。

ギーク不要だと思ってるレビューに、さらチェックリストが加わったり、書類が増えたりするぞ。

  • 予定と違う報告は許されないので報告の数字捏造される
  • できないから遅延するよりも中身が空でも枠だけで出来たことにするのが政治的に正しい

正しい数字で出せ。

恐らく上から順番に怒られた上にいらん書類を書かされた上に再発防止策を延々と書いた挙句本業であるコードを書く仕事が遅延して、さらに同じことがループするが。

政治的に正しいんじゃ無いんだよ。

そうした方が、ギークの遅延が少なくなると思うからスーツが知恵絞ってんだ。

杓子定規スーツが付いてみろ。

ギークが一度遅延したが最後、遅延が無くなるまで延々と再発防止策(しかも一度着手しているのでスケジュール見積もりについて以外でだ)書かされるぞ。

  • どんなに正しくても政治的に間違っていると判断されたことは闇に葬られる

その「どんなに正しくても」は、どこの誰が担保してるんだ。

ギークの勘か?

それ違約金を含んだ形で書面にして公正証書として頂けますか?

  • 言ったもの負けで誰も言わないので全員が負ける(実は言ったら勝てることが多いが賭けを許容しない

オマエが言えよ。

言えないならその立場に無いってことだ。

そして立場のあるもの理由があって言わないんだ。

  • 常識で考えればこうするでしょということを決めるのに年収1000万超の人の判子が100個必要
  • そもそも常識で考えればこうするでしょという選択がなされない

常識で考えればこうする」というのは、何時の時点の誰の判断だ。

未だにCOBOLが現役で使われていると想定してたか

たった30年前までメインフレーム全盛だったが、常識的に今後はオープンシステムだと断言できたか

その選択が為されないのは、ギークの提案が間違ってるからだ。

コンピュータが間違ってると言うタイプか?

違うだろ。

オマエの書いたソースが間違ってて、コンピュータソース通りに正しく動くんだよ。

  • 事前にわかっている問題を指摘するよりも蓋を開けてみたら問題があったということにしてしまうことを選択する
  • わざと調整を怠り認識相違という理由を残す

バッドノウハウなのは認めるが、誰も幸せにならない正しさを貫くことはギークとしての職責の一部か?

もしそう思うならそうしろ

責任は取られてるんだよ。

はんこの数だけな。

機械学習の重み付けと同じでな、それがスーツ出世パラメータに影響してんだよ。

ギークに向けて

記録を軽視するな。

証拠を残せ。

ログ無しにサーバ管理しろと言われたらどう思う?

「なんでバグが無いのが判ってるのに単体テストするんだよ」とか言って、テスターがサボったら困るのは誰だ。

バッドノウハウなのは理解してる。

ただ、監視システムタイムレコード追加するより、カメラ範囲内に時計を置くのがハックなんだろ?

コードスニペットは溜め込むくせに、口頭で言った内容をメールで送れないのは何故だ?

ギークなら可読性を上げろコメントを残せソースを引き継げるようにしておけ。

JavaコンパイラC++ソース突っ込んだってエラー吐くだけだ。

クソコンパイラだと思っても、作法には従って書け。

まあ、見通しが悪いと思うなら、オマエが新言語作ってくれても良いんだぜ?

2015-04-06

http://anond.hatelabo.jp/20150406002734

もうこれは転職できるなら転職すべき。直近の転職は厳しくても視野を広げるような活動をすべきだと思う。

技術的なスキルを身につけることは、選択肢を増やすことであって、常に良いことだと信じてきたが、そうではないんだと気付き始めた。

新たなスキルを身につけるための投資収入リターンに必ずしも結びつくわけではないが、新たなスキルを身につけたことによってエンジニアとして得られるものはあっても失うもなどまぁない。

もしスキルを身につけることが常に良いことだと思えないならば、もうそれはエンジニアとしてやっていくつもりがないか、自身エンジニアとしてやっていけないと思っているか所属している組織が新たな技術を得ることに対して明確にメリットがないか、のどれかだろう。新たな技術がその所属組織で生きないとしても、スキル選択肢の広さは転職という自身選択肢の広さにもつながるはずである

はいえ実務上の課題クリアするために新しい技術や高度なテクニックを取り入れる必要性はそんなに珍しくないし、そういったステップを踏まずに会社は成長できないはずだと思う。 だけど、実際問題それをやると属人化は着実に進む。

属人化が絶対悪のように語られるが、そもそもシステム開発利益の源泉はエンジニアであり人である。どうあっても属人化は避けられない。属人化をどうコントロールしていくかが問題なのだ。もちろん属人化をコントロールする1つの手法として新たな技術を導入しないという選択肢はあるし、状況によってはそれは決して悪い選択肢でも無いのだが、それは属人化を避ける数ある選択肢の1つでしかない。属人化を恐れるがために技術の歩を止めるという決断は、新たな技術の導入とともにある程度の属人化を受け入れるという決断よりも、一般的に慎重に検討がなされるべきである。属人化という言葉の前に思考停止に陥ってはならない。

それらを解決するには技術力が必要なんだけど、それは自分ひとりが身につけるだけではダメで、その必要性を他のメンバーにも理解してもらい、実際に身につけてもらう必要がある。

せいぜいできるのは草の根的な勉強会を開いたり、業務に使った技術の詳細を休日に個人のブログに書いて社内チャットに貼ったり、マネージャーに許しを得た範囲で別の誰かに引き継いだりといった程度。

エンジニアとしてこういうマインドを持った人がいるのは現場としてはありがたい。そういう人がいる現場といない現場では、技術に対する姿勢に差が出ることもある。しかし一緒に働いているメンバーがそれを理解しているかマネジメントがその意味を分かっているかは完全に別問題だ。もし自分がやっていることが理解されていないと思うのならば、その現場においてそれが本質的必要でないか、現場燃えていてそれどころではないか、他の人から見て意図理解できていないかのいずれかの可能性が高い。

自身にとってその組織にいることについてメリットがあるのかどうか再考すべきだろう。もしメリットがないなら転職を考えるべきだし、メリットがあるのなら「今の自分がその組織でできると思っていること」の枠を超え、あらゆる手段を用いて「職場全体のスキルを上げる」という目的を完遂すべく行動すべきだ。マネジメント権などクソくらえだ。(とはいえ、できるならば他人権利侵害しない範囲でうまく遂行する方がいいのだけれど。)

いっそすべて忘れて辞めてしまえば楽になれるんだろうとは思う。

辞めて楽になれると思えるのならば、いっそ辞めてしまったほうがいい。幸いにして新卒入社5年目という人生において転職はいちばん最適な時期だし、エンジニアでもあるようなので転職には困ることはまずないだろう。エンジニア転職市場も絶賛売り手市場であるし、スキルがあって手が動かせて、現場にも目が配れるエンジニアなんて欲しいところはいくらでもある。いいエンジニア現場にも転職市場にもガッツリ不足している。というか、エンジニアのものが不足している。今いるところに不満があるくらいならば、そうでない環境を探すには絶好のチャンスである。加えて、転職自身スキルにも仕事のしかたにも視野人間性といったものですら広げるいい手段であり、チャンスだ。

もちろん転職に踏ん切りがつかないということもあるだろう。気持ちは分かる。なのでいきなり転職じゃなく、外部でやっている勉強会に参加するというのがやりやすいわりに得るものが多い方法だろう。

外部の人間と触れることで自身の置かれている位置が今までよりも客観的に分かるし、もしかしたらいまの所属組織のいい面を見つけるという機会になるかもしれない。もしもう勉強会に足繁く通っているようならば、「勉強会で発表してみる」とか1つステップを上げてみるのもいいだろう。

転職することがあったら、自分が真ん中以下のレベルになれるところに入りたい。

本当にこう思うならばベンチャーとかオススメエンジニア自分しかいなくて「自分が真ん中以下のレベルになれるところ」どころの話ではないというケースも往々にしてあるし、他にエンジニアがいたとしても「自分が上か下か」なんていっていられる余裕がなかったするケースもある。少人数だと、スキル上下判断ではなく「エンジニア個人の芸風の違いが、ベンチャーという組織に対して影響を与える」という体験もできたりする。そういう中で自分の芸風を作っていくのは大変だけれども…存外これが楽しかったりする。

誰の言葉かは知らないがこの言葉を持って最後にしたい。

自分にとっていい環境を得られた人は、その環境自分で見つけたか自分で作ったかのどちらかである

2015-03-20

株式会社はてなブサヨ

その証拠に「左翼」を批判するとニーターパンおじさんがトラバってくるから

このスクリプトを組み込めるのはシステム開発者だけ。

まり株式会社はてなブサヨ左翼だったのだ。

左翼クズ左翼売国奴





ほら、トラバ来てる……あれ来てない???なぜ?

2015-01-28

http://anond.hatelabo.jp/20150127233249

システム開発場合建築等と違って人が増えると逆に仕事が進まなくなるという現象(いわゆるブルックスの法則)があるので、

大規模化すればするほどそれだけでプロジェクトは困難になる。

2015-01-22

転職って難しいかな

私は所謂IT業界で働いている今年の3月で34歳になる男。

元々は化学科の大学卒業して、ゴム部品製造をしている会社図面を書いていた。

ある時、設計から管理に移動して、CADのアドインを自前で作るようになり、プログラミングっておもしろいじゃん!と思い

転職を考えるようになったが、そんなアクティブ転職をすすめるようなことはしなかった。

結婚し、子供が生まれ、家を買い、まぁこのまま製造業していくんだろうなと思っていた矢先、会社経営が傾き希望退職者の募集が始まった。

会社からは残ってほしいと言われたが、千載一遇のチャンスだと思い、割増退職金無償就職支援会社斡旋をもって会社を辞めた。

これが2013年の5月(32歳)。

就職支援を得ていくつかのIT企業を紹介され、業界経験であるにも関わらず前職とほぼ同じ給料で雇ってくれた会社が今の会社

入社したのが2013年の7月。

この会社は、大手SIerの2次請を主な生業としており、細々と自社パッケージを取り扱う感じの従業員100名前後の会社

まず驚いたのは、求人票に「残業手当あり」と書いてあったので当然残業代全額支給だと思っていたが

内定書には「裁量労働制適用」とありみなし残業代が毎月10時間分つくだけだということ。

「これがIT業界というやつなのですね!」と、前職の製造業では考えられない条件を簡単に受け入れられたのは今でも不思議

入社してからおおよそ1年半、携わったのは1人から3人程度の小プロジェクトのみで、官公庁向けシステムの改造がほとんど。

しかも、言語はすべてVB系(6.0、.NEtVBA)、データベースアクセススーパーマイナーなみたこともないもののみ。

それでも、知らないことを初めてやるのは新鮮で楽しかったし、勉強にもなったが、最近なんか違う、このままじゃだめかも、って不安になってきた。

理由はいくつかあるが、一番は将来のこと。

このまま、VBで小さいシステムの改造だけやってて、将来大丈夫

最近SIer未来は暗いっていう記事たくさんみるけど、今の会社クラウドとかの今風の技術はまったくやらないし、大丈夫かなって感じてきた。

つい最近掲示板に「SVNってすごくいいツールがあるから、みんなVSSから乗り換えてみない?」って書いてあって、とても不安になった。

二番に、ちゃんとソースレビューとかしてもらって、もっと色々学びたいって思ってること。

自分勉強しろ!!」って思うかもしれないが、社内にソースの内容について語れる人がほとんどいないし、既存ソースはとても古臭く

オブジェクト指向すらあやしいものばっかりで、とりあえず動けばいいやって感じが読んでて伝わってくるし、プロジェクトでも実際にそう言われてる。

成長しづらい環境だなって最近感じだして、困っている。

あとは月並みだけど給料のこと。

残業代でないって普通だと思ってたけど、出るとこも普通にあるんですね。

時間働いても同じ給料で、裁量権なんて全然ない。

年末、別プロジェクト納期3カ月おくれてるとこにヘルプで行った人達は、平日は毎日まり込みで休日出勤も当然して

年末年始休みは三が日だけ。

労働時間は私の倍はいってるはずなのに、たぶん給料は私と同じくらいしかもらえない。

ヘルプから言われたテストをもくもくとこなしていくだけ。

自分のことじゃないけど、これはやってられないなと思った。

てなことで会社を変えたいなって思ってるんですが、私の経歴で他に雇ってくれる会社ありますかね?

もうシステム開発とかVBとかじゃなくて、パイソンとかルビーとかでWebとかやりたいなぁ。

無理かなぁ。

2015-01-19

マルチタスク殺し

マルチタスクの核は、それぞれのタスクを可能な限り細切りにし、何か一個細切りタスクを片付けるたびに意識を切り替えて別の・・・という手法に尽きる。


しかし世の中には、このやり方でマルチタスク化できない仕事がいくつかある。

ITにおけるシステム開発もその一つだ。


ちなみに同じITでも構築・保守運用といった業務は、案件によっては確かにやることは山ほどあったりするのだが、上述の「細切り化」が十二分に効くため、担当ADHDとかでもない限り、大して泥沼化せずに済む。

開発はこうは行かない。

いざ取り掛かったら、一度に一つのことしか考えられないのは当たり前、更にまとまった時間を確保して取り組まないと、効率アウトプット品質が著しく低下する。

しかも「まとまった時間」というのは必ずしも数十分とか数時間程度で終わることを意味せず、数日に及ぶことも珍しくない。

これは開発者の有能・無能関係なく、全てのスタッフに当てはまる。

なまじ難しいことをやっているせいでメンバーの替えも中々利かない。

お陰でその他のIT系業務と比較して、システムの規模や複雑さの度合いに応じたコストの上昇具合がハンパない

じゃあその分金額で納得すればいいかと思いきや、仕様コスト妥当に紐付ける定性的定量的手法が未だに存在しないため、掛かったコストの分だけ客からキッチリお金を貰うことも難しいと来ている。

というわけで、一言で言い表すなら全く以て「割に合わない」のだ。


気がつけば十数年、IT世界で開発を中心にその他の仕事も時々含めつつやってきたけど、年々この開発の「シングルタスク強要」を余儀なくされる性質に、怒りと苛立ちを感じるようになってきた。

個人的には開発は、欠点だらけの自分の中でも「そんなに好きじゃないけど得意(家では殆どコードをいじらない程度だけど、大した手間をかけずに作ったもの想像以上に驚かれ、喜ばれることが今まで多々あった)」な数少ない能力だったりする。

から出来れば今後も何らかの形でコード関係する仕事を続けたいのだが、現実には開発に入った途端、帰る時間有意に遅くなるし、やってる内容が込み入りすぎて誰かに相談に乗ってもらうのも一苦労だし、何より生産性という観点だけで「落第」扱いの評価になってしまう。

最も得意なことをやっている時のほうが、そうじゃないことをやっている時よりキツい上に評価が落ちるとか、何もかもバカバカしくなってくる話である


どうして開発だけが、こうも突出して面倒なんだろう。

結構長い間この仕事やってるけど、未だに何とかなりそうな気がしない。

もうすぐ年齢的に人生の折り返し地点ということもあり、今後のキャリアも含めて悩ましい。

2014-12-01

30代前半エンジニア

オープン系のシステム開発で、転職活動したとして、提示された給与28万だった場合

断った方がいいと思いますか。大体年収で350万くらいで、税金で2割引かれて280万円。

ボーナスは出るかどうかわからない。

2014-11-14

よくシステム開発建築に例えるけど

俺が通勤中に見る高層ビル建築は、万能なクレーンで既に完成してるモジュール化された部品をまるでブロックのように少人数がくみ上げているだけ。

さらっと見ると10人もいないのに、ビルが日々伸びていることが分かって完成に近づいてる。

システム開発のような、大きなシステムには大量の人数で糞を積み上げるなんてやってるのは、古代ピラミッドぐらいで終わってる気がして、建築業界の人に申し訳ない気がする。

古代ピラミッドでも詰まれた石の高さで状況が分かる辺り、それ以下な気がしないでもない。

あと30人とか集まらねえよボケ

2014-11-06

システム開発を途中でやめたくなったら。

納期と金額の契約を済ませた後でも、バカSE場合、頼めば結構無茶な要求にも応じてくれる。

そういうSEに当たればこっちのもの

無理難題押し付けて、納期を守れなくすればいい。

原因は完全にこっちにあるのに(だってワザとだもんww)なぜかシステム屋ってみんな恐縮して謝りにくるよね。

納期守なかったのは私たち責任です。なんでもするから許してください」って。

でもダメ

「今回は無理、契約不履行で終わり。損害賠償請求したいけど、ウチはやさしいからそこまではしない。感謝しろ

って言えば向こうは、

「なんて優しいお人たちなんだ・・」って感激する。

チョロい。

2014-11-03

http://anond.hatelabo.jp/20141102225754

うん。分かる分かる。

過去に掠っただけの経験を盛って何とか面談相手のニーズ合致してますアピールをしなきゃならないこの苦しさ。

日本システム開発現場って無駄にギョームケイケンを求めすぎなんだよな。

どの現場も作ってるもんは画面の入力内容をRDBMSに保存して、画面やら帳票やらファイルに出力するだけ。

オンラインバッチ汎用機オープン系、この位の粒度経験がかぶってて、オブジェクト指向言語どれか一つ使いこなせりゃ別に現場に入ってから学習全然事足りるし、業務知識なんて販売管理やら在庫管理やらの一般的な業務システムの知識を本とかで仕込んでおいて後は現場で覚えりゃ十分。

必要なのは仕組みを作る能力、周りとすり合わせる能力だろ。

まるで、専門知識がなければ戦力にならないかのようにみんな面接してくるけど、どうせお前外部の人間にそこまで深くコミットした仕事させねーだろって思うわ。

ま、そもそも面接自体違法だけどな。

2014-10-13

Matzが出てるRubyが創る島根未来というローカル番組を見てる

Matzが凄いという話はわかるんだけど、古来から島根発信の宝があり現代にはRubyという宝があると島根県推しな紹介で、Matz現在島根在住なだけで島根にそんなに必然性はないと思うし、確かRubyが生まれたのMatz島根いるときじゃなかったと記憶していてwikipedia見たら静岡県って書いてあった。番組でもプログラミング地理的な制約を受けないとか言っててなんかモヤモヤする。島根Rubyが盛んなのは知ってるけど、それもMatzを軸に県とかが支援して広がりを見せてるからで、結局Matz様様。まあ細かいはいいんだけど、番組意図いまいちからなくて、森永卓郎氏がゲストな点や人口流出阻止や県の産業Rubyを使ったシステム開発だ(プログラミング言語ありきでの開発もどうかと思うけど)みたいな意図で県とかが支援して作られた番組なのかな~と勘ぐりながら最後まで見た。森永卓郎氏の例え話は分かりやすいなと思った。

追記

番組最後に「企画 島根県」と書いてあった。県民ルビーストにしたいようですね。

2014-09-20

IT業界多重下請け構造問題点ポイント

日本IT業界多重下請け構造が悪だ、Slerがクソだ、みたいな話あるけど、論点混ざってることが多い。

どっちかというと「仕事を出す側」として、多重下請け構造問題点ポイント書いとくよ。

必要とされる多重請負と、ブラックな多重請負があって、分けて考えないとイカン

ハナキンなのにやっと終わって一人酒だよ!

まず下請けじゃ無い構造の話から

比較するために、下請けじゃない会社の話からしよう。

発注者から直接仕事を請け負った元請け担当者(大抵の場合、安請け合いする部長)が、

請けた仕事を切り出して、課長、各チーム主任、ヒラと仕事を下ろしていく。

ピラミッド構造上意下達で、力関係も対等ではないが、こういうのは多重下請け構造とは呼ばれない。

一社のみが請けているからだ。当たり前だね。

そして、仕事報酬会社に対して支払われ、各員には会社から給与が支払われる。

では多重下請け構造の話

「オレの言う多重下請け構造と違う」と言われても何なので、定義はそのまま引っ張ってこよう。

多重下請け構造」とは、受託システム開発において、

発注者から直接仕事を請け負った元請(たいていの場合大手SIer)が、

請けた仕事を切り出して2次請け、3次請け、4次請けと仕事を下ろしていくピラミッド構造の事を言います

良くある例で言うと、元請は要件定義概要設計等の上流工程請負い、開発・実装などの下流工程は2次請けに委託する、というような構造です。

http://paiza.hatenablog.com/entry/2014/09/18/IT%E6%A5%AD%E7%95%8C%E3%81%AE%E3%80%8E%E5%A4%9A%E9%87%8D%E4%B8%8B%E8%AB%8B%E3%81%91%E6%A7%8B%E9%80%A0%E3%80%8F%E3%81%AF%E7%A4%BE%E4%BC%9A%E6%82%AA%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%A4%E3%81%A4%E3%81%82

IT業界の『多重下請け構造』は社会悪になりつつある - paiza開発日誌

適切な対価が支払われないことは、多重請負問題ポイントじゃない

まず多重下請け構造における大きな問題として、中間業者が数多く入るため、下の層に行けばいくほど

中間搾取により現場で働いているエンジニア給与レンジが低くなってしまうという問題が挙げられます

これ、多重下請け構造問題点じゃなくて、受注価格交渉の話なんだよね。個別

例えば、一社のみなら給与体系の話になるわけで「部長中間搾取してる!」とは言わない。

さらに「部長が安請け合いするから現場エンジニア給与が低い」というのは、一社のみでも起こる。

まり、「中間搾取」によって「給与が低くなる」というのは、飛躍がある。飛ばしてはイカン

  1. 下請け報酬 = 元請け報酬 - (元請け仕事の対価 + 中間搾取
  2. エンジニア給与 = 会社給与体系

(以後、n次請け, n+1次請けは、全て元請け, 下請け表現するな)

1番と2番とは分けて考える必要がある。

エンジニア給料問題

まず、エンジニア給与が低くなるのは、会社給与体系の問題だ。

エンジニアが適正な給与を得ている下請け会社もある。

ということは、「エンジニア給与が不当なほど低い」のであれば、それは多重下請け構造問題ではない。

不当なほど低い賃金で働かせている「本来潰れていなければならない会社」の問題を、多重下請け構造問題で誤魔化してはイカン

下請け報酬問題

で、元請け下請けとの報酬差だが「要件定義概要設計等の上流工程」をやった対価を取って「中間搾取」とは言われたくないだろ。

だが、実際に下請け報酬は低い。

答えから書くと、さっきの式は以下の形で使われてる。

一目瞭然で、下請け報酬が少ないから、「中間搾取」と呼ばれる「元請け仕事の対価以上の報酬」が生まれる。

まり、「マージンを抜くから適正単価にならない」ではなく「適正単価でないからマージンを抜く余裕がある」だ。

なんで中間搾取とか生まれんの?

誰も「仕事」に対して金払ってないから

要件定義概要設計等の上流工程」が2000万で、実装テストの下流工程が1000万で、という区分けをしていない。

仕事の中身で値段を決めずに、人月計算をするから、常に下請け元請けよりも単価が低く設定される。

なぜならば、元請けは儲けるために下請け仕事を流すわけで、損するためにじゃない。

何が原因で多重請負なのか

仕事を出す側」の感覚としては、大きく2つ原因がある。

  1. 発注側が、SIerだけ選ぶ
  2. エンジニア所属会社仕事を選ばない

あと、多重請負が原因で起きがちな問題

発注側が、SIerだけ選ぶ

市役所ソフトハウス雇わないよね。以上終わり。

というわけで、潰れずに責任とってくれるような大企業しかクライアントは選ばないので、Sler繁栄する。

一軒家立てるとき工務店を選ぶ人もいるけど、ハウスメーカーも大人気だよね、というのが酷くなった感じ。

これは構造的な問題で、既得権益って言うとそうだね、という話。

エンジニア所属会社仕事を選ばない

7次請負が発生して問題です。すんごい単価が安いです。

じゃあ、なんで請けるの?という話。

まあ、最近インドとか中国とか、単価低いしアッチで、みたいになってるけど。

請けないと会社潰れるから激安で請けますどうせエンジニアは使い潰せば良いし、みたいな会社が多い。

で、ブラック会社は人が足りないとさらブラック会社を呼んで……みたいな泥沼状態。

エンジニア雇ってる会社ブラックなので、結果的に多重請負になってる。逆じゃない。

命令責任乖離していてブラック

プロジェクトマネージャプログラマを鬱で辞めさせました。ボーナスが減ります、となってない。

多重請負って、実質的中間搾取労働者派遣業になってる。

元請けA、2次請けB、3次請けC…みたいになると、Bが指示してEが無茶苦茶残業で体壊して、AはExcelしか観てない、みたいな。

まとめ

クライアントIT知識がないとか言っても無駄信頼関係効率性もある。

ハウスメーカーがお客さん呼び込んで、指定した建材で地元工務店契約して、さら左官屋雇って家を建てたりするだろう。

そういう時に、「客が直接知識を持って、左官屋と大工設計家と交渉すれば安く付く」とか左官屋が言ったりしない。

からみれば、多重構造になっていた方が圧倒的に楽だ。

出版社から直接本を買って、取次とか本屋のことを「中間搾取め!」とか言わないだろ。

IT業界は、そういう「効率のための多重構造」とは違う「果てのないダンピング会社の多重構造」がある。コッチが問題

さらに多重請負って、普通に偽装請負命令系統責任系統乖離してる。

人壊しても責任とらなくて良くて、補充がいくらでもきくなら、そりゃ無茶苦茶するわな。

まあ、ITエンジニアが育たないとか言ってないで、勉強して転職しようぜ!

「My Job Went To India」の日本語翻訳版がオーム社から発行されたのは2006年だよ!

多重下請け構造問題?違うね!単にダンピングする企業が沢山いて足元見られてるだけさ!

2014-09-07

SEだけど日経新聞日経コンピュータ全然役に立たないから読まなくて良い

結局は幹部社員の話のネタか今後の活動指針を決めるに当たってのネタ集めに過ぎない。

これを読み始めるのは幹部社員になってからで良い。

新入社員の頃から両方読めと言われてきたが、現場だと本当に役に立たない。

一般的システム開発をするに当たって、現行のシステム流行だとかどこどこが買収してシェアトップだとか知っててもリソース無駄から

現行システムマニュアルお客様の業務を知る為の資料>読みやす資料を作る為の技術書オライリー>>>(超えられない壁)>>>>日経新聞日経コンピュータ

この優先順位研修からさっさと教えるべき。

まぁ幹部社員から話を振られて「書いてましたね、今朝の日経に(今月の日経コンピュータに)」と言ってドヤ顔したい人とか、

動かないコンピュータで下を見て自分立ち位置安心したい人なら読んでもいいんじゃね。

ログイン ユーザー登録
ようこそ ゲスト さん