7

私が書いているソフトウェアは、以前に認識していたよりもかなり複雑に見えます。いくつかのサブタスクを実行し、まったく異なる一連のタスクを持ち、他のアプリケーション、モジュール、およびプログラミング言語に統合します。やらなければならない ToDo は何百もありますが、すべてが少し複雑すぎて、単純に考えることはできません。「ただ書く」以外に、ソフトウェアを設計するための良い方法は何ですか? どうにかしてプロジェクトを整理する必要があります。次に何をすべきかを考えるために最初に 1 時間も費やすことなく、何を書くべきかを知る必要があります。

誰かが同様の状況にありましたか?

4

5 に答える 5

7

ほとんどの開発者は、あなたが求められていることの全範囲に気付いたときに、その「ああsh**」の瞬間に出くわしたと思います:)

あなたは一人のチームとして働いているようですので、ここに私のヒントがあります:

  1. クライアントと話してください-これを十分に強調することはできません。あなたは今、オープンで正直な会話をする必要があります。彼らが棒で月を要求し、あなたがタペンスを支払われている場合、誰もこの努力から正しい結果を得ることができません。

  2. システムを高レベルの機能に分割し(たとえば、アプリケーションはXをシステムYにエクスポートします)、クライアントと協力して、段階的に実装できる適切な垂直スライスを特定し、それらに優先順位を付けます。

  3. 機能内でサブタスクを整理して優先順位を付けます

  4. marcggが示唆しているように、タスクを管理可能なチャンクに分割してみてください。私は通常、最大で4日を使用します。これより長く、正確に見積もるのに十分な詳細を理解していないため、さらに絞り込みます。 ただし、すべてを詳細に見積もる必要は必ずしもありません。あなたとクライアントの両方が、タイムスリップが発生する可能性がある場所を理解している限り、後で物事を改善することに同意することは問題ありません。

  5. JIRAなどの適切なタスク追跡ツールを入手してください。脳からタスクジャグリングをオフロードして、ソリューションの実装について気を配る能力を持たせたいと考えています。

  6. 出荷は機能であることを忘れないでください-6か月間狂ったようにコーディングの穴に消えないでください。プロトタイプ(または機能のサブセットが増えている、より適切に機能するバージョン)を定期的に提供し続け、クライアントだけでなくクライアントと連携ます。

于 2010-02-15T10:53:03.497 に答える
6

プロジェクトを小さなタスク (1 日未満の作業) に分割します。グループごとに整理します。それらに優先順位を付けます (おそらく、Y を実行するために機能 X を実行する必要があります)。コーディング開始!


どんなに複雑なプロジェクトでも、小さなタスクの連続にすぎません。それが理解できれば、集中してプロジェクトにアプローチする方法を見つけるのが簡単になります。もちろん、すべてを小さなタスクに分解するのは仕事であり、簡単なことではありません。この経験がない場合は、同僚の助けを借りてみてください。しかし、経験を積むための最良の方法は、試してみることです!

状況と個人的な好みに応じて、スクラムやかんばんなどのアジャイル手法の使用を検討できます。また、何をしなければならないかを追跡するために、プロジェクト管理ツールを使用する必要があります。ポストイットから重要なトラッカーまで何でもかまいません。あなたにぴったりのものを見つけてください。

于 2010-02-15T10:28:05.747 に答える
3

SCRUM と TDD を使用してみてください。

明確で短い目標を設定して短いイテレーション (1 ~ 2 週間) を計画し、エンド ツー エンドのシナリオをできるだけ早く作成して、必要なインフラストラクチャのみを作成するようにします。

TDD を使用します。不明確な目標に直面している場合に役立つことがわかりました。コードを作成する前にテストを作成することで、一度に 1 つの機能に集中することができます。

于 2010-02-15T10:28:23.360 に答える
1

ソフトウェアを 1 つのスパゲッティ プレートのコードとして扱うのではなく、いくつかの機能で整理する必要があるようです。

静的アーキテクチャーの UML や動的アーキテクチャーの MSC など、何らかの形式主義を使用して思考を構築したい場合があります。

于 2010-02-15T10:30:13.917 に答える
1

私は、はるかに小規模な同様の状況にしか遭遇したことがありません。ただし、これらのヒントが役立つことを願っています。

  • ソフトウェアの大まかなアーキテクチャを把握するための設計セッション (できれば同僚と) を行う
  • 複雑なストーリーを、1 つずつ管理可能な小さなサブタスクに分解してみてください
  • 単体テストを書く - これにより、既存の設計が正しくないと感じた場合に、何かを壊すことを恐れずにコードを大胆にリファクタリングできます
于 2010-02-15T10:33:06.170 に答える