私には仕事があり、暇なときに自分のソフトウェアをいくつか書きたいので、皆さんがこのような小さなプロジェクトをどのように編成、計画、開発しているかを知りたいと思います。仕事ではないので、他のことで邪魔されるかもしれませんが、どうすればうまくいくのでしょうか?
これが私が役に立つと思ったいくつかのことです:
携帯電話の電源を切り、テレビを配り、インターネットを切断します。
あなたの状況に応じて必要になるかもしれないさらなるステップ:あなたのガールフレンドを捨て、あなたの妻のための趣味を見つけ、あなたの子供を売り、そして家政婦を雇う。
もっと深刻なことに、気を散らすものがたくさんある夜に仕事をしようとするよりも、早朝の方がはるかに生産的だと思います。副作用として、早く寝ると、私の経験でははるかにエネルギッシュで幸せな人になります。
私が学んだ最も効果的な方法の1つは、パートナーをつかむでした。あなたがプロジェクトに挑戦し始めるとき、それは非常に孤独で気のめいるようになることがあります。ワンマンショーでは、お店を折りたたんで家に帰るのが簡単になります。
パートナーと一緒に、あなたはあなたの約束を果たすために必要なものを提供する義務を見つけるかもしれません、それは「私たちは成功するでしょう」であるべきです。さらに、パートナーがいる場合は、彼からアイデアを跳ね返すことができます。箱から出して考えることははるかに簡単になります。
他のヒントがあるかもしれません。マイルストーンを毎日ではなくても毎週設定します。
私は、実際の仕事に出入りする長い電車の中で、メモ帳(ペンと紙)にアイデアを書きます。私はおそらく、実際のコーディングの1時間ごとに、平均して約3時間の計画と作成を行っています。計画と設計に多くの時間を費やしているため、実際に座ってコードを書くと、コードの品質が大幅に向上し、頻繁に書き直す必要がなくなります。そのすべての時間をコードを書くだけに費やした場合、私はおそらくわずかに生産性が低下します。
それに加えて、 FogBugz 自宅で無料で使用することもできますが、プロジェクト管理ツールとしてはあまり好きではありませんでした。
それをcode.google.com(または選択した他のオープンソースホスティングエンジン)に置き、人々がその概念に本当に熱狂する可能性のあるメーリングリストやサイトなどに「フロッグ」して、リッピングしましょう。 svnまたはhgにいくつかのセミワーキングコードが存在するまで、多くの牽引力を得る可能性は低いですが、あなたは決して知りません!-)
オープンソースが鍵です。プロジェクトにたまにしか作業できない場合、他の貢献者を参加させることができるまで、プロジェクトはどこにも行きません。つまり、オープンソースです;-)。
私は何年もの間かなり大きなc ++プロジェクトを持っています。 (コーダーのみ...)私のヒント:必要に応じて休憩してください:強制コード==悪いコード。さらに、あなたの指がタイプしていなくても、あなたの頭は続きます...(適切に)
FogBugz 試してみることをお勧めします。私は側で多くのプロジェクトに取り組む傾向があり、それで物事を続けることができません。私がそれについて好きないくつかの簡単なこと:
スレッドの他の場所で述べたように、FogBugzには最大2人用の無料バージョンがあります。ソースリポジトリの設定を検討している場合は、Beanstalk(beanstalkapp.com)を試してください。無料バージョンもあります。
Basecamp(basecamphq.com)も検討してください。個人的には使っていませんが、ほとんどの人が気に入っているようです。
2つの簡単なタスク:1)毎週の目標を設定します2)それらの目標に取り組むために1日1時間アパートを設定します
あなたが明確な刑務所を持っていない場合、あなたは何も達成しません。また、作業する時間を設定しないと、プロジェクトにスターを付けることはほとんどありません。
敬具。
私も同じ状況です。余暇には自分の小さなプロジェクトに取り組んでいます。
ここで重要な要素は、あなたのおもちゃを信じ続けることです。遅すぎることにイライラしないでください。もちろん、時間がない場合は遅くなります。数か月から数年かかる場合があります。期限を設定せずに、それを信じて作業を続けてください(ほぼ確実に見逃します)。
昼間は、今夜何をするかを考え、インターネットを調べ、情報を収集し、いくつかのブログと例を読んでください。夕方になると、何をすべきか、どのようにアプローチするかがわかります。
私がこれまで行ってきた仕事のほとんどは、仕事への行き帰りのバスに乗るのは言うまでもなく、ダウンタイムがたくさんある(ジャンクが発生するのを待つ)ようなものでした。
その結果、私は常にプロジェクトブック(たとえば、ディスカウントストアのアドレス帳)を持っていて、すべてのプロジェクトとアイデアを保管しています。その後、紙に物事をマッピングすることができます(つまり常にコンピュータよりも速くて簡単です)。そうすれば、すべての設計と疑似(疑似ではない)コードを実行できます。
コンピューターでの作業中にプロジェクトに行き詰まったときはいつでも、関連するコードのチャンクを印刷して、全体像を(モニターよりも高い解像度で)表示し、あらゆる種類のメモや変更を加えるようにしています。鉛筆で、はるかに簡単かつ高速に。
私はいつも鉛筆/紙でより生産的だと思います。さらに良いのは、この方法で、最短の休憩時間(たとえば、エレベーターを上がっているときや店で並んでいるとき)で物事(すばやく少しの作業でも)を実行できることです。このようにして、他の方法では無駄になる「無駄な時間」でプロジェクトに大量の作業を行うことができます。
コーディングプロジェクトに加えて、他のすべてのアイデア(脚本、スケッチ、あらゆる種類のリスト、発明など)があります。このようにいつでも私には自由な瞬間があり、いつでも見つけることができますsomeある種の生産的なこと。唯一の落とし穴は、しばらくするとかなり肥大化し、完了した/死んだプロジェクトなどを取り除く必要があるということです:)
ロジスティクスに関しては、私がいつもお勧めするもの、つまりリストを作成することしかお勧めできません。プログラムを使用する場合でも、紙を使用する場合でも、タスク(およびサブタスク、サブサブタスクなど)のリストを作成します。頭の中でタスクを追跡する必要がある場合、生産性を高めることは不可能です。 。血まみれに書き留めるように言ったのに、やることが多すぎて圧倒されてしまった母親に怒鳴った回数を数えるほど高くは数えられません。彼女が1か月間母親に会いにノルウェーに行ったときのことを覚えているので、私はここで彼女のすべての責任を負わなければなりませんでした。私は彼女に言い続けています。私はやるべきことの気紛れなチェックリストを持っていたので、圧倒されることなくそれをすべて行うことができました。
リストを作成し、作業を進めながらタスクを取り消します。あなたは驚いたあなたが目の前でタスクとあなたの進歩を見ることができるとき、物事がどれほど簡単になるか。
私は10年以上ペットプロジェクトに取り組んでいますが、計画を正気に保ち、モチベーションを維持するために私が行うことは年々変化しています。私は現在 Google Code を使用しています。ここでは、問題追跡システムを使用して、やりたい作業(およびユーザーからのバグ)を適切で簡単な方法で管理できます。また、ソース管理と問題追跡をうまく統合し、2つを同期させておくのも簡単です。これは、プロジェクトを管理するために私が見つけた最高のシステム(最低のコスト)です。
作業を追跡するために、次の3つのリリースのおおよそのマイルストーンのセットを定義し、やりたいことをそれらのマイルストーンに入れて、打ちのめします。轍にとらわれないことが重要ですが、このプロジェクトは部分的に私のためのものなので、時々新しい機能を追加したり、気まぐれで大きなチャンクを書き直したりします。確かに、それは計画に含まれていませんでしたが、時間通りに予算内で配達するために誰も私にお金を払っていません:)
ユーザーとやり取りするために、以前はメーリングリストを実行していましたが、現在はあまり人気がなく、ユーザーからのより多くの投資が必要になっているようです。私は自分のサイトにフォーラムを追加し( bbPress のおかげで)、それらからはるかに多くの取り上げと利益を得てきました。私が運営しているメインのウェブサイトは、ブログのように見せるために Wordpress の上にある非常に最小限のスキンです-構築済みのツールセットを使用してサイトを管理することは、時間を費やさないことを意味します非中核的な活動。 CMSではなくテキストエディタの開発に時間をかけたいです。最後に、ドキュメントについては、さまざまなアプローチを試しましたが、現在私にとってうまく機能しているのは、wikiをホストすることです。人々が貢献することは非常に摩擦が少なく、フォーラムでの質問に答えて何かを文書化するためにいつでも私が浸ることができます。私が作成していたコンパイル済みのヘルプファイルは完全に廃止されています。
私が学んだ最も重要な教訓の1つは、ノーと言う方法です。たくさんのユーザーを獲得すると、彼らは何百もの機能/構成オプション/バグ修正を要求し始め、私がやりたくない仕事の雲の下に住んでいるように感じるようになりました。他のプロジェクトを見て、「もちろん、いいアイデアですが、これには取り組みません」と言う方法を学びました。オープンソースの利点は、それが彼らにとって十分に重要である場合、他の誰かがそれを行うことができるということです。
やる気を起こさせるために、私はあなたが構築しているものを使いたいことが不可欠だと思います-あなたがあなたのコードをドッグフードしたり、それからお金を稼いだりしていないなら、あなたはおそらくそれに飽きて先に進むでしょう。
最後に、プロジェクトから休暇を取ることができることを忘れないでください-それは新しい熱意で新鮮に戻るのに役立ちます。
私は現在も同じことをしていて、派手でシンプルで効果的な解決策は望んでいませんでした。バージョン管理を行う無料のコードホスティングソリューションでは、 MonkeyGTD を使用して、プロジェクト内のすべてのアクションを記録および追跡します。ティックラー、時限アクションのアラートを設定することもできます。私の考えを整理する
次に、 MonkeyPirateTiddlyWiki を使用して、有用で将来再利用できると思われるものをすべて記録します。私の考えを固執する。
自動バックアップを備えた単純なhtmlファイルでこれらすべて。
基本的に、私は自分の一日を整理します。ジムに行くなど、他のルーチンをスケジュールするのと同じです。
私は特に、自分の個人的なプロジェクトに取り組むために1日の特定の時間を取っておくことを自分に言い聞かせています。さて、彼らは個人的なので、彼らは楽しいことをするべきです、それでそれはそれほど多くの努力を必要とすべきではありません。しかし、物事があなたを邪魔するなら、それは完全に大丈夫です。
結局のところ、特に個人的なプロジェクトに着手するときにソフトウェア開発について学ぶことがたくさんあるので、追求する価値があると自分に言い聞かせます。
さて、私は私の小さなプロジェクトを管理していません...それは私を管理します!
私がそれで遊んでいる気分になっているとき、それは私のすべてのエネルギーを吸収します。これは通常、数日間続きます。それから私はそれを放棄します(しかしもちろん一時的にだけです)。
結論:趣味の場合は、気が向いたらそれを行い、ストレスを感じさせないでください。
一般に、1週間にプロジェクトに数時間を費やしたい場合は、決まった日を指定するのが最善です。規則性は、物事を長期間にわたって続けるために非常に重要です。
それ以外に、バージョン管理管理を使用することをお勧めします(すでに述べたように、リモートマシンにバックアップがあるため、Google Codeをお勧めします。また、 OpenSVN または-があります。 SourceForge 。OpenSVNでは [〜#〜] trac [〜#〜] を使用できます。進行状況とバグを追跡するのに便利です)。
残りはプロジェクトのサイズによって異なりますが、日付のある粗いマイルストーンの中には、プロセスに悪影響を与えないものもあります。それを除けば、小さなプロジェクトであまり多くのプロジェクト管理を行うことはあまり意味がありません。 :)
このブログ投稿も非常に便利だと思いました: 「ゾーン」に入る、そしてクラフトとしてのプログラミングに関するいくつかのメモ
私の推薦:
PivotalTracker を試してください。プロジェクトが達成すべきことを「ストーリー」に入れ、見つかったバグを挿入します。 PivotalTrackerを使用しているので、チームや私自身のプロジェクトのモチベーションがはるかに高くなります。あなたは本当にあなたがしたこととまだやらなければならないことを追跡しています。
しかし、最も重要なこと:あなたはいつでも中断されるかもしれません。ワンクリックで他のプロジェクトの進捗状況を把握できるので、他のプロジェクトに割り込まれても楽しいです(私にはよく起こります)。そして、あなたが先週何をしたかをあなたの顧客に伝えることができます(プログラムがあなただけのものではない場合)。
もちろんそれは単なるツールですが、私が見た利用可能なものの中から、私のお気に入りです。
ベッドのそばにノートを置きます。私はいつも午前3時に最高のアイデアを持っています。
小さなプロジェクトを計画する場合、扱いにくくなる前に、スプレッドシートで多くのプロジェクト管理を行うことができます。あなたが一人しかいない場合、それはありそうにありません。完了したタスクと実行するタスクに注意して、1日10分を費やします。全体を最新の状態に保ちます。
私は「側で」経営している小さなコンサルティング会社を持っています。私は何年にもわたっていくつかのプロジェクトを行ってきました-それらのいくつかは私が他の開発者を連れてくる必要があるほど十分に大きいものです。私にとって最大のことは、時間の制約と予算についてクライアントと事前に理解することでした。私はフルタイムの仕事ができることを知っています-平日は夜2時間、週末は1日5時間働きます。それ以上に、私は自分よりも多くのスタッフに予算を組まなければなりません。多くの人が週末の1日5時間はそれほど多くないと言うかもしれませんが、私は彼らに言いますが、実際にこれを前に有料のクライアントで行ったことはありますか。あなたも世話をしなければならない生活の必需品があります-そして一日にとても多くの時間しかありません。これまでのところ、このシステムを使用しているクライアントに失望したことはありません。私にとっては、それが最も重要なことです。
「でも待ってください。彼は自分の小さなプロジェクトを言った」と言う人もいるでしょう。これは本当ですが、彼は彼自身のクライアントです。彼が「それを続けたい」場合、彼はすべてのプロジェクトを、たとえそのクライアントが自分自身であっても、答えるクライアントがあるかのように扱う必要があります。彼は自分の時間要件を設定し、それに応じて開発者の時間を「予算」にすることができます。
あなたの努力のアルシンで頑張ってください。
GTDは常に良い助けになります。あなたが進むにつれてチェックする一口サイズの実用的なアイテムのリストは、進歩と士気を最大に保ちます。作業する時間とスペースを確保することも重要です。
不可欠なもう1つのツールは、自分のプロジェクトに取り組んでいる他の誰か、またはあなたの説明責任を果たすためにあなたの動機を理解している誰かを利用できるようにすることです。週に数回、他の人と進捗状況を更新することで、会議で何もテーブルに持っていくことが非常に難しくなるため、一般的に生産性が維持されます。電話での会話だけでも機能し、プロジェクトに驚くほどの生産性を追加します。
プロジェクトも可能な限りユビキタスに保ちます。 TODO /プロジェクト仕様を職場や自宅でアクセスできる場所に置くことができれば、生産性が大幅に向上することがわかります。仕事で考えがあれば参考にして、家に帰って仕事をするときに自分の考えをチェックすることができます。私はスペック/ TODOに Evernote を使用し、外出先でのアイデアキャッチャーにMoleskineノートブックを使用しています。
あなたに責任を持たせるためにその人の方針に沿って、あなたはステータス投稿をするためにブログをセットアップすることもできます。これは多くの利点を提供します。 1つは、作業をポストサイズのピースに分割できるため、プロジェクトの個別のピースに一度に取り組み、それらについて書き込むことができます。第二に、それは他の誰かに何かをする方法を教えるのと同じように、それらを言葉にすることによってあなたの心の中で物事を固めます。最後に、顧客が製品がどのように生まれたのかを確認し、ストーリーを理解し、マーケティング/ブランディングを開始するためのコンテンツを用意し終えると、はるかに簡単になります。
S/wプロジェクト管理Webサイトを使用して、タスクとソースコードを追跡します。時間外プロジェクトでの作業の最悪の部分は、短時間でしか作業できないことです。そのため、中断したところからできるだけ早く再開できることが不可欠です。
個人的には Codespaces.com を使用しており、小さなプロジェクトの追跡に強くお勧めします。タスクボード、wiki、SVNリポジトリがあります。何よりも、500MB未満のプロジェクトでは無料です!
Gitサーバーとコード管理にCodebase(codebasehq.com)を使用しています。比較的安価な他のSaaSベースのプロジェクト管理アプリも多数あります。ベースキャンプ。
ただし、私がアドバイスしたい1つの重要なことは、あなたと一緒にコーディングする別の人を見つけることです。これにより、同じ考えを持つ別の人と一緒に作業しているときに、プロジェクトが非常に面白くなります。私が単独で取り組んだすべてのプロジェクトは、「コーディング仲間」で完了したプロジェクトよりもはるかに多くのグラインドで構成されていることがわかりました。
幸運を!
プロジェクトの組織については、自分で大規模なプロジェクトに取り組んでおり、考慮しなければならないことがたくさんあります。私は大規模なサイトのコーディングと開発の経験がありますが、これは100%自分のものになります。コードに取り組み始める前に考えを整理し、時間を無駄にしないようにするのに役立つ2つのツールを使用します。次のとおりです。
私は約3週間、包括的なマインドマップに取り組んでいます。これは、開発のあらゆる側面を省略していないことと、コーディングを開始する準備ができていると感じていないことを確認するためです。マインドマップは、完成したアイテムをハッシュして、私の進行状況を視覚的に追跡するのに役立ちます。
お役に立てれば。
私はwww.manymoon.comを使用しています
非常に使いやすく、小さなプロジェクトにも十分なパワーを備えています。
あなたはそれを試してみるべきです。基本バージョンは無料です。
それを続けるための最良の方法は、あなたの仕事と同じようにそれを真剣に考えることです。それが可能であれば、プロジェクトに気の合う友人をもう少し含めることをお勧めします。家族を含めて、ユーザビリティテスト、ドキュメントなどのプロジェクトの雑用を行うことをお勧めします。こうすれば、日常業務のようには聞こえません。誰もが協力的で、献身的で、見たいと思っているので、ぜひ取り組んでください。プロジェクトは成功します。
無料のFogBugzアカウントを取得します
まず、AlexMartelliが推奨することを行います...それらはすべて素晴らしいヒントです。
次に、fogbugzアカウントを取得します...あなたのような小さなプロジェクトでは無料です。あなたの考えを記録したり、タスクを分解したりするためにそれを使用してください。
プロジェクトに取り組む時間が少しある場合、プロジェクトの計画を立てることでどれほどの違いが役立つかは驚くべきことです。
http://www.fogcreek.com/FogBugz/StudentAndStartup.html?isl=140855