1人のプログラマが自分でできることはどれくらいですか?[閉まっている]


13

ソフトウェア製品がチーム全体で開発を行う場合、1人のプログラマが自分でどれだけ達成できるでしょうか?言い換えれば、一人でPhotoshopやMS wordなどを書くことができますか?そして、できなかった場合、Web開発は1人のプログラマーが多くのことを行える領域になりますか?


2
ここで何が尋ねられているのか分かりません。あなたがソフトウェアを開発するためのモジョを持っていれば、あなたは確かに自分でそれを達成することができます-ウェブであろうとなかろうと。MZが1日ですべてのFacebookを開発しなかった後、時間がかかる場合があります。
CoolBeans

単一の開発作業については、blitwise.comご覧ください。
マイケルK

コーダーの生産性は非常に大きく異なります。いくつかのコーダーコード速く、他のものより10倍+ ...
デニス・デ・Bernardy

2
単一の開発者の建物、フォトショップ、MSワードの場合、サイズは約100分の1になります。私はそれを悪いこととは思わない。
-JeffO

1
場合によります。:
リチャード

回答:


14

小さいスタート

Linuxは現在、最初のイテレーションよりもはるかに大きいですが、重要なことは、トラクションを得るのに十分なものが入っていることです。

その価値がある場合にのみ

私は、大きなものは他のものと根本的に異なる場合に行う価値があるという個人的なルールを持っています。さもなければ、あなたは紅海に飛び込んでいます

開始するのは良いが、常に持続可能ではない

あなたのソフトウェアが十分に優れているなら、あなたはそれを真剣に考えたいかもしれません。たとえば、Minecraftの作成者であるMarkus "Notch" Perssonを取り上げます。IIRCは彼だけでゲームを開始し、ゲームが人気を博したとき、彼は協力者を探し始め、さらには会社を設立しました。

大きなプロジェクトは、単独で何かを成し遂げることに報いる一方で、単一の天才ではなく、開発者のコ​​ラボレーションによって潜在能力を発揮します。

神話

チェックアウト天才プログラマーの神話あなたはそこにすべての偽の期待を取得する必要があり、GoogleのI / O 2009でベン・コリンズ-サスマンとブライアン・フィッツパトリックによって話を。私がここで言いたい主な点は、一人の開発者が全体の功績を認められることもありますが、背後にはもっと多くの人がいることです。

間違いなく可能

Linus Torvalds以外の別の例は、John Carmackです。EAが2か月間チーム全体を見積もったわずか4日間でWolfensteinを移植しました。

それはコードの量ではなく、そのアーキテクチャと技術的な知識ではなく、予想よりも少ないコードで大きなことを達成することができます。

スキルと知識(平均レベルを超えている)を考えると、多くの作業を少しのように感じることができます。


7
IMO + 1、LinusはCarmackにたわごとがありません。彼のものは伝説のものです。
スティーブンエバーズ

1
誰のものが伝説のものですか?ライナスまたはジョン。スラングを取り戻せませんでした
チャン

1
@RYUZAKI:@SnOrfusのコメントは、英語のstackexchangeに関する完全な質問だと思います。
スポイケ

1
@RYUZAKI-ジョンはSnOrfusのコメントで、伝説のようなものを持っています。
オコド

1
カーマックは、4日間の仕事で2か月分の完全なチーム給を受け取ったのでしょうか、それとも単に後ろをたたくだけでしたか?
ドリュー

5

私が行っている仕事の性質上、私は自分でかなり大きなアプリケーションをいくつか開発しました。はい、それは実行可能です。私はこれについて何時間も続けることができましたが、今はあまり時間がないので、個人的な経験からの長所と短所があります。

長所:

  • あなたは完全にコントロールされており、戦うチームはいないので、あなたが思う/知っていることが最善で行くことができます。コードの小さな側面についての無限の議論で時間を無駄にしません。
  • 頭の中にアーキテクチャ全体があり、それについて文字通りすべてを知っています。すべての答えを自分で知っているので、カスタマーサポートは簡単です。
  • プログラミングのすべての側面について多くを学びます。低レベル、中レベル、高レベル、ユーザーインターフェイス、...

短所:

  • 戦うチームがないので、時には誰にも言わずに悪い決断をする
  • 簡単に迷子になり、もはや全体像をつかむことはありません。そして、あなたを助けることができる人はいません。(SO / SAなどは除く:])
  • プログラミングに費やすよりも、カスタマーサポートに多くの時間を費やす

3

いくらかの献身とスキルがあれば、一人でも間違いなく多くのことを達成できます。簡単なことではありませんが、優秀なプログラマーであるだけでは十分ではありません。プロジェクトを成功させるには、ユースケース、ユーザーインターフェイスの設計、ドキュメント、サポートなどについてよく考える必要があります。物事が順調に進み、ユーザー数が増加すると、すべてが独力でますます非現実的になります-それは、より多くの人々がプロジェクトに参加する(コミュニティ参加、人を雇うなど)か、プロジェクトが死ぬポイントです。


1

それは、彼/彼女が開発しようとしているソフトウェア、時間の制約、およびスキルに依存します。彼/彼女が単純なMISアプリケーションを開発している場合、彼は短時間でそれを行うことができる可能性が非常に高いです。Photoshop、MS Word、Blender、Flashなどのような複雑なソフトウェアを開発しようとすることは可能ですが、時間がかかり、最も基本的な機能があり、機能はシンプルです。


1

そのすべては、スキル、費やされた時間、およびそれを行う意欲に依存します。知識が多いほど、何かを成し遂げるのにかかる時間が短くなります。唯一の開発者としてコードベースの非常に親密な知識を得ることができます。これは、把握/リファクタリング/デバッグのプロセスを高速化することもできます。

私は個人的にデスクトップからサーバーへの転送アプリケーションに取り組んでいます。サーバーアプリケーション、デスクトップアプリケーションをコーディングし、すべて自分でテストしました。アプリケーションのインストーラーも作成しました。Windowsのシステムトレイアイコンへのドラッグアンドドロップを許可する方法を見つけ出し、新しいJavaライブラリをゼロから作成することさえできました。私は1年の間にこれを行いましたが、まだ開発とテスト中です。

このプロジェクト全体は、1つの主要な試練でした。毎日放課後、私は週末だけでなくプロジェクトに取り組みました。MS Word、Photoshopなどのように大規模ですか?いや。プロジェクトはまだ大規模で成長し続けていますが、多くのことを達成することが可能です。


それが私が思っていたことを見てください...それはもっと時間がかかるかもしれませんが、すべてのコードが何をしているのかを知っているので、おそらくデバッグが簡単になるでしょう。そして素晴らしい学習体験。
fender1901

@ fender1901まあプログラミングは常に学習体験であるべきです。そうではない日は、すべてを知っているか、より難しいタスクを見つける必要があるときです。

1

私は現在、自由時間に自分でそのようなプロジェクトに取り組んでいます(デスクトップアプリケーションではなく、Webアプリケーションですが、原則は同じです)。これまで私が見つけたものは次のとおりです。

1)車輪を再発明しないでください。すべてをゼロから行うのではなく、既存のライブラリ/フレームワークを使用します。ここで1つ注意点があります。ライセンスが目的のディストリビューション/リリース/どのモデルにも適用されるため、ライセンスに注意を払ってください。一部のコピーレフトライセンスでは、「派生著作物」をオープンソース化する必要があります。一部のライセンスでは、非営利的な使用のみが許可されています。使用するライブラリ/フレームワークを追跡して、「クレジット」画面/エリア/その他で適切な属性を提供できるようにします

2)繰り返し作業します。これはdukeofgamingが「Start Small」で言ったことに関係しています。結果を見ることができれば、プロジェクトに固執する可能性が高くなります。何かが機能していることがわかるまで、開発は暗闇で絵を描くことに相当します。

3)早い段階でフィードバック/ヘルプ求めることを恐れないでください。おそらく、あなたはすべてが得意ではありません。コーディングの低レベルの核心が得意であれば、おそらくUIが苦手でしょう。逆も当てはまります。特定の地域であなたよりも優れている人からアドバイスを受けることは決して痛いことはありません。多くの人は、誰かが自分のアイデアを盗むのを心配しているので、これを避けます。これについて心配する必要はありません-誰かがあなたをコピーしようとした場合、それはあなたが価値のある何かにいることを意味します。アイデアは安価で、実装が重要です。AppleはMP3プレーヤーを発明しませんでした。Microsoftはオペレーティングシステムを発明しませんでした。Facebookはソーシャルネットワークを発明しませんでした。Googleは検索エンジンを発明しませんでした。彼らがしたことは、それをユーザーにとって魅力的なものにすることでした(そして吸うことはありません)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.