機能の追加をいつ停止するかをどのように知っていますか?


16

少し前に、非常に小さなpythonスクリプトを作成し、定期的にxmlフィードの新しいエントリをチェックし、存在する場合は新しいエントリをユーザーに警告しました。私は自分でこれを書いたので、本質的にはコンソールベースのプログラムであり、コンソールインターフェイスに慣れている人なら誰でも使用できます。

しばらくして、私はそれが他の人々にとってより有用であると判断し、それを整理し、入力をサニタイズし、バグを除去し始めました。スクリプトを書いたので、それを効率的、正確に使用する方法を知っていたので、他の人はそうではなかったかもしれないので、GUIを追加し始めました。これは単純なメニューとして始まり、その後、インターフェイスとオプションメニューの両方を備えたより完全なGUIに拡張されました。次に、保存済みのユーザー設定と、以前に検索したxmlフィード用のストレージを追加して、繰り返し検索を高速化しました。

問題が発生した場合のアプリケーションのデバッグに役立つロギングを追加し、選択したプラットフォームで使用可能な最新の安定したpythonコードベースにアプリケーションを持ち込み、ダイアログ機能を改善しました。

私は自分のコードをバグ修正してコメントしましたが、アルファテスターが利用できるようにする前にアプリを改善するためにできることはまだあると思います。私のオリジナルの20〜30行のスクリプトとはかけ離れています。私が予想していたことは、概念実証から許容可能な使用プログラムに移行するのに1〜2時間かかるだけで、10〜20倍かかりました。(私はまだ初心者で、スタッフには長い時間がかかりますが、それでも...)

素材の追加/調整/修正を停止し、赤ちゃんを屋外でクロールさせるタイミングをどのように知っていますか?

回答:


8

締め切りを迎えたとき。

締め切りがない場合、これはあなたの問題です...

ここに私が働く方法があります:

  1. 製品のバックログに新しい機能/バグを追加します。
  2. 私はビジネス価値に基づいて製品全体のバックログを優先し、推定します(個人プロジェクトの場合、最後はオプションです)。
  3. 私は自分自身に作業時間を割り当てます。リリース日はその時間の終わりです。
  4. リストの一番最初から始めます。私は一度機能に取り組んでいます。完了するには、ドキュメントを含む機能が本当に完全でなければなりません(機能の最後に、製品を出荷する可能性があります)。
  5. 割り当てられた時間が消費されるまで、次のものを受け取ります。
  6. 機能を構築するときに時間がかかる場合、一時的に破棄します。
  7. 割り当てられた時間が消費されると、最新のビルドを取得してリリースを作成します。
  8. ポイント1からプロセスを繰り返します。

うーん、ここのワークフローはとても好きです。これは趣味のプロジェクトです。収益化を試みるかどうかはわかりません。無料で提供されるか、オープンソース化される可能性が高くなります。
fearoffours

4
上記の提案ワークフローでは、価値はお金を意味しません。あなたは値が何であるかを決定します。

OK、これは素晴らしいです。本日前に投稿を見て以来、私はこれを適用してきました。締め切りは水曜日の午後3時です。物事がどこに向かっているのか、私は何に取り組んでいるのかについてもっと自信を持っています。このリリースの前に行うべきこと(スクリプトの冒頭のコメントで)と、後まで残すことができることを優先しました。そして、現在作業中の機能を書き留めて、一度にタスクに集中できるようにします。ありがとう!
fearoffours

3. I allocate work time to myself. The release date is the end of that time.@Pierre 303、あなたが言っtimeたとき、時間単位、つまりナイトリービルドという意味ですか?または全力疾走のような時間?
ケナンD

@LordCover:たとえば、私は3週間(週に5日、1日8時間)を割り当てて製品の作業をしています。3週間の終わりに発送します。

3

作るSRS要件に応じて、コードを。SRSに記載されているすべての目標を達成したら、製品を停止してテストします。


良い点。現時点では、その目的については何も書き留めていません。
fearoffours

SRSは優れていますが、個人プロジェクトの独身男性チームにとっては少しやり過ぎです。ドキュメンテーションは良いのですが、このタイプのプロジェクトでは、まだすべてのSRSが必要だとは思いません。
クリス

@Chris-SRSは常に良いことです。個人プロジェクトであり、今日無料でリリースされているものは、今でも無料のソフトウェアであり、何十人もの人々によって書かれています。なぜドキュメントがFacebookにとって重要なのかという素晴らしい例です。初期段階でドキュメントを作成し、そのドキュメントを更新する方が今日よりも簡単になりました。デザインを書き留めることができない場合は、デザインの説明、機能がどのように機能するのかをドキュメント化し、それをどのようにコーディングできますか?
ラムハウンド

2

短期的には、確実に機能し、クラッシュしないものがある場合。たとえあなたが無期限に取り組んだなら、それができるすべてをしていなくても。ことわざにあるように出荷は機能です。信頼性と制限された機能セットにより、現実の世界の実在の人々がコア機能をテストする機会が与えられます。この時点で持っている機能が少ないほど、これらの初期の問題を簡単に修正できます。コア機能がより確実に機能するようになると、最も重要で中心的なコードがまだうまく機能しているという知識を持って、他の「必要な」ものの実装を開始できます。

長期的に:ユーザー(およびもちろん)が必要に応じて新機能を迅速かつ簡単に実装できるようにするプラグインシステムを完成させ、文書化したとき。これが最後に追加する必要がある機能です。その後はすべてのプラグインです。


1

保留中の機能が存在する場合がありますが、ソフトウェアの安定性について確信がある場合は、リリースに進みます。安定性は機能よりも重要です。フィードバックを入手し、既存の機能を組み込んで、次に何をいつ配信するかを決定します!


1

いつまでもプロジェクトを看護できます。

非常に良いルールは、承認されたユースケースにないものは絶対に追加しないことです。これにより、あなたが持っているのが良いだろうが、誰も使用しないものがたくさんあることになりません。承認することで、プロジェクトでこれが必要であることにあなた以外が同意するようになります。


1

機能を追加する理由によって異なります。プロジェクトオーナーはそれを求めていますか?ユーザー?QA?プログラマー?

  • 必要な機能を追加します。
  • 重要な機能を選別します。
  • 便利な機能は無視してください。

プログラムの目的に焦点を合わせ、その目的に焦点を合わせます。その目的を拡張する機能要求は、スイスアーミーナイフになる前に徹底的に質問する必要があります。


私は製品に焦点を合わせ続けるというアイデアが好きです。私はそれをしようとしていますが、それでも自分を占有する方法を見つけます!
fearoffours

2
@fearoffours、あなたはいつでもあなた自身の仕事を改善する方法を見つけることができます。重要なのは、ユーザーにとって、どのように機能させるかを見つけることです。本当の障害を解決してください。滑らかでリアルなラフスポット。
Huperniketes

そのコメントに素敵なアドバイス、(+ 1)ありがとう!
fearoffours

0

機能の追加はもうやめません。アプリをできるだけ早く入手して、必要に応じてtxtファイルを書き込もうとしています。その後、いつ停止するか、別の何かに取り組むタイミングを決めることができます

また、(ハッキングに頼らずに)何かを成し遂げるために可能な限りのことをするのが好きであることにも役立ちます。


0

タイムボックスをお勧めします。自分に発言週を与えます。その週に完了する作業のリストを作成し、完了できない機能がある場合は、それを取り消すことができることを確認します。

週の終わりにそれをリリースします。早期にリリースし、頻繁にリリースします。


しかし、いくつかの機能が相互に依存している場合はどうすればよいですか?
ケナンD

0

信頼性が高く便利なものを手に入れたら、リリースしてください。機能の追加を停止する必要はありませんが、誰かがあなたがそこに出ているものを使用している場合、どの機能が必要かについてのより良いアイデアを得るでしょう。現在、あなたは推測しています。

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