はてなキーワード: 人月とは
ソフトウェア開発プロジェクト(一定規模以上)がトラブルが起こって納期までに終わりそうにない、赤字が出てでも終わらせないと困る時の別解
色々な方法があるんだけど、その中でもなぜかこういう方法をとるところが案外少ないように思われるので…。この方法はもちろん万能じゃないので、「こんな欠点がある」って突っ込みはいっぱいあるでしょうが、「いついかなる時でも使えない」話ではないレベルです。
・増員する、ただし、雑用係専用部隊を大幅に。
→業務メインをやる人が増えるとコミュニケーションコストが増大してかえって遅延する現象は散見されますので、そういうコストが相対的に起きにくい仕事になるべく人を投入するという発想です。
ただ、これは、「低時給バイトさん」「事務職」ではだめです(チームの中にそういう人を入れるのはいい場合も多々ありますが、「低時給バイトさん」「事務職」ばかりを多数入れてもソフトウェア開発では大抵困ります。つまり、PG/SEレベルの、ソフトウェア開発の一般常識のある単価の高い人を敢えて雑用や事務に投入するんです。これの一つのデメリットはSE/PGにそんな仕事をさせるとモチベーションが下がって当然なので、長期には向きません。プロジェクトが長いなら少しずつメンバーを入れ替えながらがベターかと。
例)「このデータ加工しといて」と振ってExcelベース(関数とかVBAは使えてよ)なりスクリプト言語なりで加工する人
例)コピーを頼まれたらそれに徹する人 …ここだけ見ると単価高い人をそんな仕事に、と思うかもしれませんが、変にチームに投入して遅延を拡大させるのとどっちがいいんですかって話ですよ。
議事メモではなく議事録が必要なら、録音してテープ起こしするのの草稿を別の人がやる(ここ例えメインの仕事に入ってなくともSE/PGかどうかで品質が随分違う。もっというと、草稿の草稿は音声認識ソフトにやらせる手もある 録音レベルが悪いときついけど)…これは普通のプロジェクトでやってもまずコスト的に割が合わないでしょう。あくまでここに書いているのはすべて「赤字が出てでも早く終わらせる」みたいな特殊な状況なのでやってみるといい場合があるんじゃないの、というお話です。
例)必ずしも雑用ではないが、特にキーマンには秘書をつけてしまえ。その人のスケジュール管理から色々とね。秘書検定もってるエンジニアとかいたら最高ですが(どんだけおるんや) この人に用事があるんだけど今取り込み中…みたいな時って用事がすんでからタイムリーにってなかなかいかないんですよね。秘書がいたらなんとかできませんかね?
人を横断して作業効率化を図れる書類の自動化とか可能なら専任作ってExcel VBAでもスクリプト言語でもなんでもいいので作ってしまえ。
・アメニティの充実を図る。
機材のせいでボトルネックになってませんか?PCの性能は大丈夫ですか?ディスプレイは大きいですか?プリンタやコピー機の数は足りてますか?プリンタやコピー機の速度は十分ですか?カラー印刷出来ますか?ファイル共有サーバが遅かったりしませんか? ※PCを変更すると環境移行コストはかかりますが、一時的なものです。
事務専門でも出来る所では「コピー用紙がなくなってから補充までにタイムラグとかないですよね」とか
ポットに沸かしたお湯が空っぽとかないですよね? …まぁこれはエンジニアじゃない人に任せてもいい領域。
ホワイトボードに書いたものを電子データでPCに送れるとかいまどき常識ですよね?丁寧に書いてあったらOCRも可能ですよね?
経費で、高いのでいいからうまい弁当をオフィス配達してしまえ ※税金の問題等色々あるし、自分で選んだり外食に行く方が効率上がる人もいるので全員ってわけにはいかないんですけど。希望者だけでも。
赤字覚悟で増員してるのに、人を増やしたけど「予算がないからPCにいいのが調達できなくって」って話は実在するようですが、何かおかしくないですか?
1人月60万とか100万とか何人も入れるのに。会計上の問題とか壁があるので表面的な金額では決められないんですけど、でもおかしくないですか?
あ、上記のようなことを実際にやって酷い目にあったエピソードがあったら教えてください。「うまくいかない場面」なんて当然いくらでもあると思うので。
中には凄まじく優秀な人達もいるんだけど、今じゃ就職でとりあえず大手だからと
理由で入ったのが半数以上だし技術なんてものが簡単に生まれるわけがない。
今となっちゃ神領域の技術者はどの会社も社員の2%ぐらいだろうね。
ところでWeb(笑)企業で努めてる人にはIT技術以外に精通している業務や知識ってあるの?
低能の人からどうやって金を巻き上げるかを考えるのって面白そうだね!!
じゃなんで
人月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円でもってもよい気がしている。
とぼくはおもう
注意しなければならないのは、IT系と一口にいっても、サブジャンルは腐るほどある点だ
Joel Spolskyは5つに分けていた
ソフトウェア開発には、しばしば交わっているがたいていは分かれている、5つの世界があると思う。その5つとは:
http://local.joelonsoftware.com/wiki/5%E3%81%A4%E3%81%AE%E4%B8%96%E7%95%8C
そして、これらのIT企業が、最先端のシステム開発をしているかというと、そんなことはないのである
ファイルサーバに空き容量が無くてローカルに退避する作業に一日費やしたりする
「打ち合わせご希望日を添付のエクセルシートに記載の上ご返信ください。なお、ファイル名は”社員番号_指名_記載日付”の形式でお願いいたします」
ほとんどの現場が、方眼紙状にしたエクセルを印刷して、判子をつく(客の都合でもある)
そんな作業ばかりしているし、本質的なコーディングの作業は1割もないのだ
夢打ち砕かれ
http://anond.hatelabo.jp/20070831005830
俺は80文字×32行の緑文字を見つめながら、遠い夢を見続ける。
どうせ細かい説明しても向こう分んないんだし。
どうしても工期短縮しろってんなら、じゃぁ、テストとかバグ取り出来ませんけど?と念書を取るべき。
何でだよって言われたら、「専門的な話になりますが」と断りを入れて、
・ポインタ使われていないのでコードが乱雑になっており、バグが発生した際に原因を解析できない可能性がある事
・古い仕様のコードが大量に含まれており、.net用に書き直すとなると、フローを再構築することになり、ほぼ一からの開発と変わらない事
辺りで良いんじゃないかね?
説明ができるというよりは、相手に言いたいこと言えるかどうか。
相手との関係がすでに悪いとか、なんか微妙なのは営業のせいだし。
上がってきた見積もりを持ってどう交渉するかだって、営業のスキル。
というか、そのために営業っているもんだしね。
技術屋は技術屋らしく、言いたいことを言った方が良いと思うが。
顧客との関係が良好だと、会計システムVCで組むのめんどくさいのでACCESSで良いっすか?ってのが通ったりもする。DBをOracleにして一点豪華主義。
かれこれ5年ぐらい走らせてるが、向こうがPC更新した時ぐらいしかトラブったこと無い。これも、ファイルパス変更しただけで動いたし。
給料に不満持ってるのに何も言わずに転職するのはマジやめてくれー。相談してくれたら普通にスキルに対して妥当な額の範囲ではちゃんと昇給できるのに。
マジレスすると、そんな相談する気なんて全く起こらなくなるくらい「こいつ(この会社)ダメだな」と思われてるから辞めてくんだよ。
あと「スキルに対して妥当な額」とかいう考え方がそもそも大きな勘違いで、報酬の多寡はスキルの高低なんかより勝ち馬に乗ってるかどうかの方が遥かに強く効くわけ。
今で言えば、労働集約型のチマチマした人月ビジネスしてるIT屋が、同じレベルの社員に対してDeNAとかと同レベルの給料払えるのかって話。無理でしょ。実際。
もっと言えば外銀とかでトレーディングシステム開発してる人達と同じレベルの給料払えるのかって話。
「まともな会社」の定義がさっぱり分からないけど、大して儲からないコスパ悪いビジネスやってる会社も「まともでない会社」と解釈することはできるわな。
K&R Cで書かれた部分はそのままモジュール化して、ラッパをかぶせて使えばいいんでしょ?
性能低かろうか、機能が足りなかろうが、元のコードが腐ってるせいにすればよい。そこで性能改善or機能補完を希望されたら、12人月の見積もりを出せばよかろうもん。
K&RのCで書かれたプログラムを渡された(もう少し正確に言えば、VisualStudioのWizardで作られたものにK&RのCでコーディングしてある(C++ですら無い)ので純粋なCでは無いが果てしなくK&RのCだ)。あと、これを作った人はどうにも「ポインタ」の概念が無いらしく、無駄に多次元配列だったり、配列のアドレス渡しとかが多用されている。
作業指示は、これを流用して、C++/CLIかつ.netFramework3.5使用かつ新規案件に対応せよ、との事。
個人的にはどう見積もっても3人で4ヶ月かかる量なんだが、予算が1人で1ヶ月、と言って来た。理由は「Cからの流用だから」。
参ったな。自分としては、C++/CLIはもはや別言語だと思っているんだが。
どうにも上司と顧客に説明出来ない。説明出来ないのは、自分が理解していないせいだ、と言われればそれまでなのだが、自分の感覚で言うと、高段者がうっている将棋や囲碁の一手を初心者に教える、とでも言うか、小学生に微分積分を教えるというか、そんな感覚がある。
いや、相手が、K&RやANSI、C++、C++/CLIを分かっている人間になら、説明は出来るのだが、相手のレベルに合わせて、説明が出来ない。
今回のこれに限らず、見積もりとかすると、「なんでこんなに時間かかるの?」とか「高い」とかよく言われるのだが、やっぱり説明が出来ない。デスマってるプロジェクトには、よくさらなる人員投入がされる事が多々あるのだが、デスマってる時点で負け戦だし、「混乱したプロジェクトに人を投入すれば、さらに混乱するだけ」と自分は思っているので、やめてもらいたいと思っている。
「あんたの小学生になる子供が、100人いたら、東大に合格するくらいの学力が発揮されるんですか?」と問いたい。
あれは、VisualBasic4が出た頃か。それまでWindowsプログラムというものをCまたはC++で書いていた自分には、驚異的な言語に思えた。そしてみんな言う。「VBで作れば簡単ですよ」
自分にはVBという言語はとてつもなく難しい言語に思えた(MFCは論外)。なぜなら「かゆいところに手が届かない」言語だったから。だから、皆が言う「VBなら簡単」の理由がさっぱり分からなかった。ちょっとした使い捨てツールや、極々Windows標準的な事しかやらないのであれば、VBは簡単な言語であったのは分かる。実際自分もそういう使い方をしていたから。
そして、うちの職場ではそんな製品を作る所では無く、仕様を満たすためにはサブクラス化とかWin32APIを使うとかしないと実現出来なかった。もちろん「VBで作れば簡単ですよ」と言っていた連中にサブクラス化など理解出来ようも無く、ただただ右往左往してデスマーチに突入していった。
その時も、お偉方や顧客に説明が出来なかった。「VBなら簡単」と言っていただろう、と言われるだけ。
まぁ、VBも.net時代になってから、だいぶマシになってきたと思うけどね。少なくとも、スレッドセーフになってくれただけでもありがたい。
まぁ、その辺はともかく、もしかして、デスマやIT土方とかなるのは「説明が出来ないから」なのではなかろうか?と思えてきた。必要な時間と予算を説明出来ないから、泥沼になるのではなかろうか、と。
説明が出来ない限り、プログラマーは永遠にIT土方であり、地位向上は望めないと思う。人月の神話じゃなく、ファンクションポイント法とか、なにか定量的に説明出来ればいいのだけど。ファンクションポイント法だって、それが分からない人には通じないわけで。「小学校に入学した児童にも分かるような」説明が出来ないとダメなんだろうなぁ。どうすればいいんだろ?
だから、100万件にするために、どんだけユーザー数が必要なの?
ユーザ数100人が たとえば1日10ツイートするとして 1000ツイート 100万件に達するのに 1000日 約3年
ユーザー数1000人なら 100日。
何が言いたいかというと、100日もかかるなら、バックアップタスク (たとえば5日ごとに分割)しても 1日あたりの件数はたかが知れてるから
余裕で持つだろ。という話。
ちなみに、100万件でもう崩壊しちゃうの? 数百万件ぐらいつっこんだことあるけど・・・このレベルは平気だよね?
Hadoop勉強するより先に、1万人のユーザーを集めることを先に考えたほうが良い。という話がしたかっただけ。
Hadoopを勉強する のが3ヶ月としても 3人月で人を雇うのと 3人月分の既存スペックのマシン+MySQLとどっちがいいか?というのは超微妙。
ユーザー数がたくさんいるなら、そのとおり。
テーブル分割やDB分割 サーバー分割が必要なのもそのとおり。
ただまぁ・・・単純な直列テーブルだけなら、やり方はいくらでもあるし、商用クラスをHadoopか?他の競合製品が出てこないか?というのは、しばらく様子見でしょ。
調べたけど、フェイルオーバー関連がまだ微妙な部分があって考えないといけないよね。
Google 自体が Hadoopのつかっていた、なんたらほうしきだっけ?やめて、次のアーキテクチャーにしました。ってレポでてるのに、次もHadoopか保証ないし。様子見。
思考実験 その3
物価を引き下げて、低賃金で皆が生きて行けるようになると仮定しても 弊害になるのは 既得権益層。
とすると、物価引き下げよりも、たとえば、4倍のインフレを引き起こしたほうが効果的なのだろうか?
4倍のインフレを引き起こしても 国家公務員の年収は変わらないから700万円 他方 現金収入はインフレの栄養を受けるから村人は800万円。
是正そのものは出来る。
1/4人月 で 衣食
1/4人月 で 娯楽費
とすると 時給3200円 月 384千円 家賃が9万6千円 水道光熱費衣食が19万2千円 ひとりのお小遣いは 2万4千円。
ただし、物価が4倍なので カップラーメン1個が400円とかそういう世界。
老人たちなどの貯金に関しては、どのみち生活保護もあるからかわりなし。
まぁ、そう考えると、
物価を単純に下げると、既得権益が問題になるし、既得権益者の年収を下げることには著しい抵抗があるだろうから。
インフレを引き起こして、既得権益者の年収を据え置くことで 実質的な年収を引き下げて 既得権益層を無くして、経済の流通を良くしたほうが良いと。
ただし、その過程で、下層の給与も上がらずに、物価は上がっていくから生活被害を食らうので、一律ベーシックインカム配布などで物価の上昇分だけをフォローしたほうがいいのか・・・
と考えると、4倍のインフレは引き起こせないにしても、一度社会をリセットするためにも、ある程度の計画インフレと、バラマキはセットになってくるのか・・・
思考実験 その2
年収で生活を図ると 都心部 農村部における地価の差・生活費の差が考慮できないので 人月を持ち出してみる。
1/4人月 で 衣食
1/4人月 で 娯楽費
仮に 時給800円 1日6時間労働 週休2日と仮定する 1人月は28日と仮定して20労働日 120時間 だから9万6千円
1/4が2万4千円 家賃が2.4万円 水道光熱費食費で 4万8千円 で 家族4人が暮らせるか? という 命題に等しく
逆に言えば、この水準まで物価が落っこちれば無理ではないということも言える。(都心部では時給が1000円を超え農村部では下がるであろうから適当にずらすとして)
免責条項や瑕疵担保責任っていうけど、
サービスや商品だから 売れる時期ってあるよね。 治しますけど1年後じゃ意味が無い。 自社でつくろうと、外注でつくろうと オープンソースでつくろうと
期日までに治らなきゃ意味が無い。外注で外注がデスマしてもねぇ・・・
結局、期日までに治すことを保証するのは自分たちだから、あまりかわらん。
瑕疵担保責任っていうけど、そういうのってえてして作らないSIerとかが言うものであって、プログラマーリーダーの話じゃないわな。
オープンソースだろうと、自分でつくろうと、使う以上は、ちゃんと中まで読んで保証しないとな。
結局1人月という1ヶ月働くことにお金払ってもらってるわけじゃなくて
総合して、あなたのサービスが、他社よりも 良くて早くできるからビジネスチャンスを物にできて、利益になります。利益になるんだから、分け前よこせ。ってのが、本来のソフトウェアビジネスだし。
そう考えるとねぇ・・・瑕疵担保責任があるのは、自分であって、他人じゃないからねぇ・・・程度問題とかいろいろあるけど、ざっくりいうと。
あえていうなら、オープンソースのデメリットは、バグを治して、コードを作者に送りつけても、なんつーかリジェクトされて、違う治し方をされるとか。そういう時だな。