はてなキーワード: 人月とは
型論争の一部。
動的型陣営と静的型陣営がそれぞれ大規模開発に向いてるとか向いてないとか言うけど、「大規模開発」って何よ?って話。
自分としていくらかのパターンがおもいつくし、それぞれ質的に異なるからごっちゃにしても話が混乱するだけだ。
お前らの言う大規模開発ってどれだよ?あともちろんこれ以外にもあれば募集。
ITゼネコンみたいな連中が行う、何万人月というコストをかけて行う開発。失敗した特許庁の開発みたいなやつだ。典型的にはワンオフ品なので、かけたコストのわりに品質は低い。fizzbuzzも書けない人すら1人月と数えられるし、そういう人が生息するのはここである。2013年現在では多分Java(かたまにScalaなど)で開発される。末端の人には自分たちの担当領域外の仕様をどうこうする権利が基本的にはない。
OS(カーネルのみの狭義のOSではなくパッケージとしての広義のOS全体)とか、あるいはモダンなブラウザみたいな、膨大な機能セットをもち、様々な環境でロバストに動く必要がある開発。膨大な機能セットの中には、膨大な後方互換のための機能(例えばブラウザであればクソみたいなレガシーHTMLでもなんとなく見せてやるような機能)や、ありとあらゆるハードウェアや言語などの細かな実行環境の組み合わせで動作するための抽象化および各環境のための固有の機能を含む。オープンソース形態で開発されることもよくあり、2013年においては多分C/C++で開発される。自分たちで仕様をコントロールする権利があったりなかったりする。
1日のPVが億オーダー以上になるようなWebサービスなど。昨今だと1日にGバイト〜Tバイトにもなるデータを解析できるシステムもセットになってることが多い。サーバの1台や2台がハードウェア的な故障してもロバストに動き続けるための機能や、そのときのリカバリが容易であること、壊れた分や単なる新規追加ののサーバの補充が容易であること、みたいや機能および設計上の工夫が求められる。人的な大規模開発や量的な大規模開発と比べると比較的少人数(数人〜数百人。数千人になるのは数えるほど)で開発される。2013年においても様々な言語で開発されていて決定打はない。自分たちで仕様をある程度コントロールする権利がある。
例えばこの方が、Haskellは大規模開発に向いていると主張されているが、おそらく人的な大規模開発には向かない。これは2013年においてHaskellを使うユーザがそれほど多くないから、というのも大きな理由だがそれだけではない。Haskellは学習コストが低いことを目指して作られた言語ではないことも極めて本質的かつ決定的な理由の一つである。(自分の思う学習コストが低いことを目指して作られた言語とは例えばJavaとPHPだ。)fizzbuzzを書けない人をHaskellを書けるまでに教育するのは、どうしたらいいのだろう?
Haskellが量的な大規模開発に向いているかどうかは(自分の無知により)よく分からない。典型的には量的な大規模開発を実現するためには、そのソフトウェアがWindowsとか各種ブラウザ並に多くの計算機上で稼働することが必須だ。そうでないと膨大な開発コストがペイできない。オープンソース的に貢献を募るとしても、量的に巨大なソフトウェアに貢献する人を一定以上集めるには、それなりのユーザベース(単に使うだけの人も含めて)が必要である。Haskellの実行環境というのは全然枯れていないが、10年前のハードウェア+OSを未だに使っている人の計算機上でもちゃんと動くのだろうか?HaskellってVMで動くんだっけ?ネイティブコードを吐くんだっけ?
http://anond.hatelabo.jp/20120923132824
今の時代、ずっと正社員でいられる保証なんて、どこにもない。問題は「この年収じゃ、正社員の女性と共稼ぎしかないか」じゃなくて、「最低限の生活レベルを維持するには、いくらかかるか」だ。朝飯200円(トースト、ゆで卵、サラダ、コーヒー程度)昼食300円(おかず4品くらいの手弁当)夕食500円(1汁3菜程度)の食事を用意するだけで、月3万円かかる。ちょっと材料のグレードを上げれば、1.5倍。お昼ご飯を買えば500円、夕食を外食すれば1500円。あっと言う間に2倍、3倍だ。逆にこまめに手作りして量も抑え、特売品を使うような家庭なら、半分になることもある。食費が一番目安として、わかりやすいから食費にしたが。
つまり、1カ月の食費が1人1万5千円2人なら3万円で済む生活と、1人月6万円2人なら12万円かかる生活がある。お互いにどの程度が「満足できる生活」になるのか、よーく摺り合わせておこう。でないと、生活費がかからなくても、かかりすぎても不満の元になる。
ちなみに「子どもの教育は高校まで、あとは本人の自覚と努力」で済ますのなら、養育費は総額1千万円くらいで済むはずだから、そんなに心配いらない。
ならない。
コレに対して、無理っていうと、普通に非コミュが!って返ってくるから苦労するって話でしょ。無理って言ってるんだよね。
それに、それは、説明できたら、説明しなきゃならないってことか?
だいいち、証明自体は公開されているので、大卒のやつなら1年か2年かかる覚悟をすれば誰でも証明できるんじゃないか?
よって、証明できる能力がないは否。ただ、1年か2年それにかけるコストがもったいない。って言ってるって話。
それに対して、1年も2年もかけるのは間違ってる、だってネットに公開されてるだろ。値段吊り上げ用としてるんだろ?だからおまえら非コミュだっていうんだよ。明日か明後日までに証明しろ。
これが、すごい大雑把に言うと、コミュニケーション能力のある人たち。
どこでもいいから、大手の仕事受けてみれば? こういう人ばかりじゃないけど、こういう人いるよね。
コミュニケーション能力がある人たちにとっては、自分たちに都合のいい事=空気を読んでる。 都合の悪いこと=空気を読まない。でしょ。
あくまでも、大雑把な。ここまでひどくはないよ。
すげぇ、大雑把に言うと、たとえば、iPhoneアプリ作ります。何十ページとか数百ページもあります。(例な普通ない) WebではiPhoneのアプリなんて簡単だって書いてあるから5万もあれば出来るでしょ?みたいなことを言う人。
そら、数ページならな。って話。(それ、説明すればいいじゃん・・・え?これ、説明しなきゃいけないような話?)
仮に、なんかの技術で作れると仮定したとしよう。 それ5万で売らなきゃいけないような話? 普通にとっていいだろ金。より高度なことをして、人月かけて普通に作るよりもべらぼうに安く作らないといけないって何事?
ソフトウェア開発プロジェクト(一定規模以上)がトラブルが起こって納期までに終わりそうにない、赤字が出てでも終わらせないと困る時の別解
色々な方法があるんだけど、その中でもなぜかこういう方法をとるところが案外少ないように思われるので…。この方法はもちろん万能じゃないので、「こんな欠点がある」って突っ込みはいっぱいあるでしょうが、「いついかなる時でも使えない」話ではないレベルです。
・増員する、ただし、雑用係専用部隊を大幅に。
→業務メインをやる人が増えるとコミュニケーションコストが増大してかえって遅延する現象は散見されますので、そういうコストが相対的に起きにくい仕事になるべく人を投入するという発想です。
ただ、これは、「低時給バイトさん」「事務職」ではだめです(チームの中にそういう人を入れるのはいい場合も多々ありますが、「低時給バイトさん」「事務職」ばかりを多数入れてもソフトウェア開発では大抵困ります。つまり、PG/SEレベルの、ソフトウェア開発の一般常識のある単価の高い人を敢えて雑用や事務に投入するんです。これの一つのデメリットはSE/PGにそんな仕事をさせるとモチベーションが下がって当然なので、長期には向きません。プロジェクトが長いなら少しずつメンバーを入れ替えながらがベターかと。
例)「このデータ加工しといて」と振ってExcelベース(関数とかVBAは使えてよ)なりスクリプト言語なりで加工する人
例)コピーを頼まれたらそれに徹する人 …ここだけ見ると単価高い人をそんな仕事に、と思うかもしれませんが、変にチームに投入して遅延を拡大させるのとどっちがいいんですかって話ですよ。
議事メモではなく議事録が必要なら、録音してテープ起こしするのの草稿を別の人がやる(ここ例えメインの仕事に入ってなくともSE/PGかどうかで品質が随分違う。もっというと、草稿の草稿は音声認識ソフトにやらせる手もある 録音レベルが悪いときついけど)…これは普通のプロジェクトでやってもまずコスト的に割が合わないでしょう。あくまでここに書いているのはすべて「赤字が出てでも早く終わらせる」みたいな特殊な状況なのでやってみるといい場合があるんじゃないの、というお話です。
例)必ずしも雑用ではないが、特にキーマンには秘書をつけてしまえ。その人のスケジュール管理から色々とね。秘書検定もってるエンジニアとかいたら最高ですが(どんだけおるんや) この人に用事があるんだけど今取り込み中…みたいな時って用事がすんでからタイムリーにってなかなかいかないんですよね。秘書がいたらなんとかできませんかね?
人を横断して作業効率化を図れる書類の自動化とか可能なら専任作ってExcel VBAでもスクリプト言語でもなんでもいいので作ってしまえ。
・アメニティの充実を図る。
機材のせいでボトルネックになってませんか?PCの性能は大丈夫ですか?ディスプレイは大きいですか?プリンタやコピー機の数は足りてますか?プリンタやコピー機の速度は十分ですか?カラー印刷出来ますか?ファイル共有サーバが遅かったりしませんか? ※PCを変更すると環境移行コストはかかりますが、一時的なものです。
事務専門でも出来る所では「コピー用紙がなくなってから補充までにタイムラグとかないですよね」とか
ポットに沸かしたお湯が空っぽとかないですよね? …まぁこれはエンジニアじゃない人に任せてもいい領域。
ホワイトボードに書いたものを電子データでPCに送れるとかいまどき常識ですよね?丁寧に書いてあったらOCRも可能ですよね?
経費で、高いのでいいからうまい弁当をオフィス配達してしまえ ※税金の問題等色々あるし、自分で選んだり外食に行く方が効率上がる人もいるので全員ってわけにはいかないんですけど。希望者だけでも。
赤字覚悟で増員してるのに、人を増やしたけど「予算がないからPCにいいのが調達できなくって」って話は実在するようですが、何かおかしくないですか?
1人月60万とか100万とか何人も入れるのに。会計上の問題とか壁があるので表面的な金額では決められないんですけど、でもおかしくないですか?
あ、上記のようなことを実際にやって酷い目にあったエピソードがあったら教えてください。「うまくいかない場面」なんて当然いくらでもあると思うので。
じゃなんで
人月150万で月7,80万も貰えたら苦労しねーよ。
月150万しか売り上げない営業がそんなに貰えると思うか?
とか誇らしげに言えんのよ。
人月は関係ないよ。
高いところは本当に優秀な場合もあるけど、どっかの人材会社から適当な人間を買ってきてその仕事に当ててる場合もある。
逆にいえば安いところの方は、人材から人を買っていない可能性が高い。
実際に見積りとってみるとわかるけど、同じ案件でも開発期間が会社によってバラバラ。
それに一見、開発費用が安いように見えても、保守とかのランニングで考えると結構高くなる場合もある(保守しないで作りっぱなしの無責任な会社の方がヤバいけど)。
ずつも何も
1mx1mx1m=1m3(立方メートル)
1人x1ヶ月=1人月 とかな。
割り算だともっとわかりやすくて、たとえば、1gの油を10mに引いて行ったら
1g/10m=0.1g/m となるよな?単位は消えないんだよ。
N人xM本=NM人本で NM人に1本づつくばるまたは、1人にNM本配れる状況という以上で、勝手に単位を削るほうがまちがっとるやろ。
どうしても法則性にこだわるなら
N人xM本÷1人=NM本 として N人にM本づつ配ったものを1人にまとめると何本になるか?という答えと、鉛筆が全部で何本あるか?という答えは同じである。
よって、NM本である。
としろや。とか思うわけだ。
交換法則を用いて
M本xN人÷1人=NM本
で。答えは、かわらんぞ?
先日、TBSの番組「夢の扉+」を見ていた。TBSの中で視ているのはこの番組だけだが。先日のテーマは「小さな町工場から日本の製造業を支える!」というもので、職人集団「チーム等々力」の免震テーブルの開発について綴られていた。
確かに、各職人の技術はすごい。ああいう職人技が日本を縁の下の力持ちとして支えているのも事実だと思う。例えば、新幹線の先頭ノーズはあれは職人手作業じゃなかっただろうか?
違和感を感じたのは、「職人が大学教授の求めているモノを理解出来ない」という点だった。結局番組では理系大学出身の技術者が、大学教授の要求(要件定義)を職人に分かるように図面に起こした事になっている。
それでいいんだっけ? 図面になっている物は作れるが、図面を起こす事が出来ないということだろうか?
我々IT技術者は、顧客のまだ具体的になっていない要求をヒヤリングするところから始まり、要件定義をし、設計し、実装し、テストし、納入し、運用・保守をする。だから、顧客の専門用語や技術も分からなければならないし、情報技術も分かっていなければならないし、運用・保守コストも考えなければならない。それに情報技術は進歩が早いにもかかわらず、分野によっては製品寿命が20年とかいうのもあるから、新技術だけ知っていても話にならない。
「チーム等々力」の方々は、いい製品を作るかもしれないけれど、IT業界的に言えば、コーディングだけ、という事に。否、それでも範囲が広い。コーディングは一種の「設計」でもあるから、範囲はもっと狭い。
そういえば、ITで「制作・製造」ってどの部分を指すんでしょうね。もしかして、コンパイル・リンクしている時間だけかも。なにしろ、コーディングも設計の一部であるから。
自分は、顧客の要求をヒヤリングするところから、運用・保守まで全てに関わっている。ヒヤリングしている時点でどう実装すれば良いか、どう保守するか、保守のための実装はどうするか、を考えながら顧客と接している(ここでいう実装とは、ハードウェアも含む)。
かなりゼネコン化されているので、元請けが仕事を取ってきて、こちらに仕事を発注する事になる。その時点で、かなりの情報が欠落している。元請けの方は、顧客(この場合エンドユーザー)の専門が分からないまま受注している事が多い。その上、実装を分からずに発注してくるから、かなり困る。結局、元請けに対し、かなりの懸案事項が発生する事態となる。顧客に対してこの設計では足りないとか、設計に対し実装不可能とか。それをいちいち指摘しないとならないが、これが時間がかかる。
こういう案件がたくさん来ると、今度は実装出来る人間に限界が出てくる。なので、実装するのをさらに下層の外注ソフトハウスに出すの事になるのだが、今度はこれが、エンドユーザーの事が分からないため、なんだかよく分からないブツが上がってくる。その上、金の切れ目は縁の切れ目だから、運用保守に関しては全く考慮されていないブツ。もちろん、中には優秀な外注さんもいて、すばらしいコーディングのブツが出来上がってくる事もあるが、そういう人に出会える確率は万分の一程度か。
そこへ追い打ちをかけるように、コスト低減要求と短納期要求、仕様変更。人月の神話。
顧客の頭の中を覗く人、顧客の要求を情報技術者向けに翻訳する人、翻訳されたものを実装する人、実装されたモノをテストする人、テストし終えたモノを納入・設置する人、運用・保守する人、がそれぞれ分業・連携取れていないのが、現日本のIT産業の姿です。
最近は自社の社員も質が下がってきていて、Windowsしかいじれないとか、統合開発環境内でしかブツが作れないとか、コンピュータがどう動いているかイメージ出来ないとか、果ては、顧客の専門用語が分からない、というのもいる。ソフトハウスに至っては、作ったはいいが、作ったモノに対してデバッグ出来ないとか言い出す始末。
というわけで、就活生には、ITはお勧めしない。もし、プログラミングだけしていたいというのであれば、メーカーではなく、小さなソフトハウスに就職した方が良い。でなければ、顧客と対等(同等)の(製品)知識と、新旧情報技術に対応出来るだけの能力が必要とされるのである。
こんなのシステム開発と言えるのか。
今ネットの蛸壺でおなじみはてなブックマークでも話題騒然のストーカー御用達サービス「カレログ」
(http://b.hatena.ne.jp/entry/karelog.jp/)
と言うサービスがありますね!
はてなは今すぐはてなココ等と言う誰が使ってるんだか分からない中途半端なサービスは捨て、このサービス をパクって からインスピレーションを得て、もう少しまじめなロギングサービスを始めるべきだと思った。
と増田の流儀に従って(?)煽り気味にスタートしてみたが実は中身はわりとまじめなつもり。
サービス名「ライフはてな」とかどうよ
以下に考えた内容を書いていく。
スマートフォン向け ライフロギングサービス。自分の端末にインストールしてもよし、誰かの端末にインストールしてもよし。
記録されるのは以下の情報。
これを基本とし、オプションで
なども記録できるようにしておく。
もちろん簡単な操作で(ウィジットなどで)ON/OFFができる。(当然パスワードも設定することはできるようにしておく)
以上は自動的に記録されていくが、明示的に
も可能なようにしておく。
このほかに、
といった機能があればなおよい。
その他、はてなグループ的な家族内グループウエアサービスのようなものも同時に提供したらどうか。
普通にライフログ的な使い方も考えられるが、一番は「みまもり」需要である。
子供はもちろん、離れて暮らす両親などといった人の端末にインストールして、生存確認や行動確認ができるようにしておくと言うものだ。
そんなのラクラクホンとか専用の装置でいいじゃない、と思われるかも知れないが、そういったサービスは普通に高いし使いにくい。またそれ以外の需要は満たせない。
また、うちの両親だけかも知れないが、スマートフォンは画面が非常に大きく、カスタマイズさえすれば普通の携帯電話よりも使い易いと言う意見もある。
子供も、子供用の端末だけで満足してくれるうちはいいが、だんだん成長してきてスマートフォンが欲しくなる子も出てくるだろう。
今後、スマフォの普及により、そういった需要は増えていくのではないか。
それを警備会社通報サービスを除き、一人月額300円くらいで提供できないか。
俺としてはこれができれば月額2000円でもってもよい気がしている。