- 締切済み
プロの人のプログラム完成までの所要時間
ちょっとしたプログラムを作るのにもすごく時間がかかってしまい ふと思ったのですが、プログラムを作るのを職業にされてる人は どのくらいのスピードでコードを書くことができるのでしょうか? 例えばWindowsに付属しているmspaint(ペイントソフト)と ほぼ同じものを作るとしたらトータルで何時間くらいかかるでしょうか? プロの方がおられましたらご回答頂けたらありがたいです。 よろしくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
みんなの回答
- Ishiwara
- ベストアンサー率24% (462/1914)
#6です。 すみません。「適格に → 的確に」です。 なお、プログラマーの仕事として、ハードに例えるなら「巻き線」「ハダダ付け」に相当する手作業も必要なことはもちろんです。例えば、小さな並べ替えルーチンをチョコっと間違いなく作るという器用さもたいせつです。
- Ishiwara
- ベストアンサー率24% (462/1914)
大昔のプロです。 プログラマーは、実に「得体の知れない」職業です。 ハードウエアに例えてみましょう。 電車の模型を作るとします。ピッタリのモーターがあれば、ねじ回しで取り付ければ終わりです。少し仕様の異なるモーターがあれば、何とか使えるかもしれません。まったくなければ、自分で線を巻かなくてはなりません。つまり、どれだけ「部品」が手に入るかで、手間が何百倍、何万倍、またはそれ以上違います。 次に、電車が要求している仕様(どれだけの電流が供給でき、どれだけの力が必要か)と、モーターが持っている仕様(どれだけの電流が受け入れ可能で、どれだけの力が出るか)との「マッチング」が必要です。ソフトの本体には「部品の入り口」があります。部品のほうには「出口」があります。優秀なプログラマーとは、この入口・出口の調整がすばやく適格にできる人のことです。 たいへん抽象的な物言いですみませんが、同じプロのプログラマーでも、能率が数百倍違うことは、ざらにあります。
- fioletti
- ベストアンサー率0% (0/2)
MS Paintは世界中の各言語へローカライズするだけでも大変でしょう。 OSが変わる節目とかでUNICODE化とか視覚スタイルの適用みたいな地味な改修しているでしょうから、莫大な費用と時間がかかっていると思います。 ただしペイント自体がインプレースアクティベーションできるので、「全く同じ動作をするもの」をであればリンク先みたいな作り方ができるので、結構楽かもしれないと思います。
- lv4u
- ベストアンサー率27% (1862/6715)
こんにちわ。プログラマーやっています。 >>例えばWindowsに付属しているmspaint(ペイントソフト)と ほぼ同じものを作るとしたらトータルで何時間くらいかかるでしょうか? 開発ツール(言語)を何にするか?その分野の知識がどれだけあるかによって凄く変わると思いますね。例えばDelphiなどを使えば、それなりに動くものは、数日程度で作れると思いますけど、製品と同等レベルにまで仕上げるなら、1ヶ月くらいはかかるかもしれないですよね。それは、画像処理や座標計算とかファイル入出力の知識の有無が影響するからです。 以前、市販ソフトに不足する機能があって、「似たような動作をする画面を作成してください」って仕事があり、それ自体はそんなに難しい画面ではなかったのですが、元のパッケージがよくあるような画面動作じゃあなかったので「似たような動作」をさせるには、こちらが提供したツールでは無理でした。その仕事はヨソに依頼していたのですが、担当していた女性が、残業&年末年始の休日出勤となり、退職してしまったそうです。最終的には、その「似たような動作」にこだわった上司が引き取って仕上げましたけど、自社のツールが使えない部分の機能のフォローは大変そうでした。「似たような」の言葉の怖さ、契約の怖さを感じたものです。 結局、プログラム作成の早さってツール等である程度早くなるでしょうけど、プログラマの知識の理解・吸収の速度や、ユーザとの画面や仕様の合意などは、そんなにスピードアップされるものではありません。それを無視して作成しても、バグだらけ、あるいはプログラマは正しいと主張するけど、ユーザは、「思ったものと違う!」という製品ができるだけですよね。 プログラムを作るって、単に設計書をみてコード化するだけって思われますけど、実際は知識のコード化であり、さらにコード化は工程としては、「製造」ではなく、実際には「設計」フェーズです。知識が無ければ、その学習時間がかかりますし、さらに「良い」設計には時間がかかりますからね。画家や彫刻家、あるいは詩人・俳人の仕事に似ているかもしれません。コードの分量で計るのは誤解の元でしょうね。
- imogasi
- ベストアンサー率27% (4737/17069)
長らくのプロでないのですが、私の経験からの考えを述べます。 質問者の発想がピントハズレと思います。 ●プロはより便利な、販売されている「部品」を購入します。 すると教科書に書いてあるような苦労はなくなる部分があります。 ●過去に自社開発したものがあれば修正して再利用します。 ●また言語に備わっている「クラス」を利用します。 mspaint程度ならそういう機能のメソッドなどを備えたオブジェクト があります。「継承」という概念は、既存のソフトに、機能追加を やり易いように目指している概念と思います。 ーーー ゲーム業界でも、市販の「ゲームを作るプログラムの書き方」の本的な方法の延長でなく、部品をくみあわせて作っているものと思います。 想像ですが、爆発(家)と指定すると、家が爆発した画像が発生し、爆発(飛行機)とすれば、飛行機が爆発する画像が出来る、というイメージです。専門メーカー(世界中の)が作って売り込んだり、自社製作したりしていると思います。 家を建築するプロの現場を見ていても既製品のウエイトはどんどん増えているようです。かんなやトンカチの場面は少なくなっていくばかりのようです。 諸賢の批判を乞う。
- big_dipper
- ベストアンサー率31% (78/246)
プログラミングではお金をもらっていませんが、関わりのある業界の人間として回答するなら、「仕様がはっきりしないので回答できない」が回答になるかと思います。 仕様がはっきりしないと工数が出せない。すなわち、時間が見積もれません。 「mspaintとほぼ同じもの」というのがくせもので、どのレベルから作成するのか、保守性をどう考えるのか等未確定の事項が多く「ほぼ同じ」ではプロとしては回答不能と思われます。 前提条件を加えずに「xx時間(分)」等とだけ答えたら、プロでは無いでしょう。
- chie65536
- ベストアンサー率41% (2512/6032)
>例えばWindowsに付属しているmspaint(ペイントソフト)と >ほぼ同じものを作るとしたらトータルで何時間くらいかかるでしょうか? 1~2日。 なぜ1~2日で済むかと言うと「手本通りに作るのみで、仕様設計も画面設計もしなくてよい」から。 これが「何も無い状態でゼロから作る」となると「仕様設計やら画面設計やら、色々と自分で考えなきゃならないので、かなりかかる」事になります。 プログラム作りの大半は、キーボードを打ってる時間ではなく、仕様を決めたり、画面構成を考えたり、ユーザーインタフェースをどうするかとか、動作試験で考えられる限りの異常な使い方を全て試みるとか、キーボードを叩かずにウンウン唸ってる時間で占められます。