一人プロジェクトを整理する方法は?[閉まっている]


21

時々(読みます:ほぼ毎日)新しいアイデアを思いつき、お気に入りのエディター/ IDEで新しいプロジェクトを開始し、コーディングを開始し、翌日それを削除して新しいものを開始します。私は現在約6年間プログラミングを行っていますが、その6年間で非常に小さなプロジェクト(Pastebin.comのダッシュボードウィジェット)を実際に1つだけ完了しました。これはコーディングの学習には素晴らしいかもしれませんが、私は本当に何かを完成させたいです。

実際のコーディングの前、間、後に行うべきことは何ですか?そのようなワンマンプロジェクトを整理する方法を教えてくれる優れたリソースは何ですか?


問題があれば、WebまたはMacの開発をしたいです。


8
あなたが投稿したことから、それは組織の欠如のようには聞こえません。代わりに、プロジェクトを完了するための関心や意欲がないように思えます。プロジェクトをフォロースルーするのではなく削除する理由はありますか?使用しているプロジェクトやテクノロジーに本当に興味がない場合は、フォロースルーしても意味がありません。さもないと面倒になります。
トーマスオーエンズ

1
@Thomas Owensは、未完成のプロジェクトを削除する主な理由は、プログラミングフォルダーが乱雑に見える(つまり、二度と使用しないファイルが含まれている)ためです。私はテクノロジーに非常に興味があります。そのときのモチベーションの欠如だけだと思います。
右折

回答:


18

長期的な本当の問題は、組織ではなく動機付けだと思います。

  1. ユーザーを見つけて話しかけます。プロジェクトをそれらの人々への一種の贈り物(または販売可能な製品)として見る。(アイデアをバウンスする人は、たとえ実際にあなたとコードを開発していなくても素晴らしいです。)

    その社会的動機を持つことは、単なる個人的な好奇心よりも、長期的にプロジェクトを面白く保つために非常に強力になるでしょう。

  2. あなたの目標は、一口サイズの小さな便利な機能の塊であるべきです。SourceForgeまたはGitHubに載せて、突然流星に見舞われたとしても、プロジェクトを生き残りのチャンスが必要なものとして扱います。

    これにより、リリースが増え(ユーザーからのフィードバックと熱意が増える)、他の人がプロジェクトに貢献することを決定する可能性が高くなります。

  3. 特定の学習目標を自分で選んでください。このプロジェクトは、どのような技術やテクニックを学ぶのに役立ちますか?技術が問題領域に適していないことが判明した場合、少なくともバージョン1.0を終了してそれを脇に置くことに興味がありますか?

    そのような目標の例には、パーサー、ネットワークプロトコル、ゲームAIの側面、学習フレームワークまたはツールキット、新しい言語などの記述が含まれます。

最悪のシナリオとは、3つすべてが欠落していることを意味します。あなたは、あなたが存在するかどうかわからないコードを含む、リリースされていないツールの「大規模な書き換え」を繰り返し行います。


2
「突然流星に見舞われた場合」の+1。いいえ、真剣に、先延ばしに対する優れたヒント。
ランドルフリンコンファドゥール

経験の恩恵の後に追加する1つのこと:助けが必要な場合、たった1人の開発者にとどまりたくない場合は、おそらくオープンソースプロジェクトを宣伝する必要があります。「あなたがそれを構築するなら、彼らは来るでしょう」は非常に信頼できません。
ダリエン14

2

プロジェクトの作業中に新しいプロジェクトのアイデアを思いついたら、プロジェクトのアイデアのリストにそれを書き留めてください。その後、現在のプロジェクトに戻ります。プロジェクトに価値がある場合は、新しいプロジェクトに気を取られないようにしてください。次の手順は、優れたアイデアである場合にのみ使用してください。

プロジェクトを開始する前に、計画を立ててください。それは何をしますか?どれくらい大変ですか?既知と未知は何ですか?何がうまくいかないのでしょうか?どのくらい時間がかかりますか?[今すぐ先に進むか停止するかを決めることができます。]計画を守ります。[プロジェクトに取り組んでいる場合は、新しいプロジェクトを脇に置き、他の元のプロジェクトに取り掛かります。]

プロジェクトを開始したら、IDEで別のプロジェクトとして設定します。(したがって、次のプロジェクトを開始するために削除する必要はありません。)新しいプロジェクトとしてバージョン管理ソフトウェアにチェックインします。(別のプロジェクトの邪魔になっている場合は、削除できます。)プロジェクトが正しく動作している場合は、プロジェクトをチェックインします。(これで、軌道に乗らない場合は戻ることができます)

プロジェクトで発生する問題を追跡します。これは、プロジェクトでいくつかのテキストファイルを使用して実行できます。TODO、Changelog、README(既知のバグや問題を含めることができる)などのファイルが適切な場合があります。

コードを取得すると、バージョン管理でタグが機能します。共有する価値がある場合。

あなたの計画に戻って、あなたがどれだけうまくやったかを見てください。教訓文書を自分で作成してください。あなたは何を学び、どのくらいよく見積もりましたか?どんな問題を見逃しましたか?どのような問題を過大評価しましたか?他に重要だと思うもの。

プロジェクトを放棄するときは、教訓を学んだプロセスを実行します。プロジェクトを放棄した理由についてのメモを追加します。

1か月に1回程度、学んだ教訓を確認してください。時間が経つにつれて、レビューの間隔を長くすることができます。


2

1つのチームでアジャイルを行う」へのリンクです。興味深い読み物です!

また、「作業中」に行うソフトウェア開発の分野が重要である理由を検討することもできます。チームに10人いる場合にのみ重要ですか?いいえ、彼らはあなたがあなたのプロジェクトについて考えるのを助けるので重要です。

あなたのターゲットオーディエンスは誰ですか?(それがあなたなら、素晴らしい-しかし、あなたが元々アプリを望んでいたものを覚えている)

UIを実行している場合は、視聴者のニーズを検討し、UIのハードコア開発に進む前にモックアップを行います。

ビジネスロジックを見ている場合は、TDDまたはBDDを試してください。攻撃する前に、アプリがどのように機能するかを考えてください。Fitnesseなどのハーネスで包むことを検討してください。アプリをテストする場合、最も簡単に開始できる場所はstartです。


1

コメントを入力して、プロジェクトの削除を停止してください!

私は通常、自分のコンピューター上で積極的に開発していない(または近い将来積極的に開発する予定の)プロジェクトを保持しませんが、ソースファイルはSVNリポジトリに存在し、すべて(IDE構成ファイルを含む)がバックアップされます外付けHDD。それはあなたの質問に答えるのではなく、あなたの仕事を削除するのをやめ、自分自身のやる気に焦点を合わせます。

ホストされたリポジトリを探している場合は、Google Code、SourceForge、GitHub、およびBitBucketをご覧ください。ファイルをアップロードして、どこかに保管し、関心が新たになったらプルダウンします。プライベートにすることもできますが、恥ずかしくない場合はパブリックにすることができます。おそらく誰かがあなたの仕事を再開したり、あなたの例から学ぶことに興味があるでしょう(特に興味深いライブラリやフレームワークを使用している場合)。

時間が経つにつれて、あなたのモチベーションに取り組んでください。一度に1つのことに集中するようにしてください。コードを本番品質にすることはできないかもしれませんが、おそらく、サンプル品質、または他の人があなたのスキルセット、知識を確認したり、特定の方法を学ぶために見ることができるものにすることができます。


1

まず、プロジェクトとプロジェクトがあります。テクノロジーやライブラリを試してみるか、他の方法を試してみると、おそらくIDEでプロジェクトを作成し、このことがおもしろいかどうかを調べてから、プロジェクトを削除してください。大丈夫、誰もがこれを行います。

別のタイプのプロジェクトは実際のソフトウェア/サイト/などです。これはビジネスです。そこでは、これらの「プロジェクト」、ファイル、プログラムは単なるツールであり、そのような複雑なものを開発するにはモチベーションと目標が必要です:

  • 開発するもの(Webサイト/テキストエディター/モバイルアプリ/ ...)
  • あなたはそれを何のために必要としますか(お金を稼ぎ、いくつかの新しい技術を拾い、オープンソースに貢献します/ ...)
  • いつ(あなたはプロジェクトにどれだけの時間を費やしますか、それをどのくらいの期間予定していますか)

開発するものは新しいものでなければなりません。要求する機能の一部が欠落していると思われるため、別のテキストエディタを作成する場合は、おそらくそれを行う必要はありません。数百のオープンソースツールがあり、そのうちの1つに貢献しています。

スクリプトのような小さな使い捨てツールを作成した場合でも、それらのリストを記載する必要があります。問題自体を解決する方が簡単です。

コードの記述にこだわっている場合(たとえば、コードを大幅に書き換える場合)、おそらくそれを行うには十分な経験がありません。プラットフォーム(mac / web / etc)などのソフトウェアエンジニアリングに関する優れた本を読み、同様のことを行う経験豊富な開発者が書いたコードを読んでください。今やるべきことはたくさんあります(github、Googleコード、プログラミングブログ、stackoverflow)。

非常に複雑な問題(たとえば、コンパイラやオペレーティングシステムの作成者)を最初から解決しようとせずに、最初に小さなタスクに分解します。ほとんどの場合、誰かが問題の解決に役立つライブラリを既に作成しています。


0

あなたが愛する人にウェブツールに本当に必要なものを尋ねてから、実際に彼または彼女のためにそれを作ることを考えましたか?

これは、実際に終了して配信する動機付けを提供する必要がありますが、これは難しい部分です。また、あなたの愛する人にとって有用であるならば、あなたはアプリケーションをサポートし維持するという利益を得ます。役に立たない場合は、経験から何がうまくいかないかを学ぶことができます。

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