web-dev-qa-db-ja.com

ソフトウェアプロジェクトのスタートアップの開始時に何をすべきですか?

簡単な紹介

私の大学の学期には、8週間のプロジェクトが含まれており、実際に必要な実用的な経験を得るために、ソフトウェアが必要な会社で働いています。私は他の5人の学生とそのようなプロジェクトを始めたところです。このプロジェクトには、生徒1人あたり週約40時間を費やす必要があります。私たちはソフトウェア開発方法としてSCRUMを使用しています。これは教師によって割り当てられました。

質問

プロジェクトの1日目が終了しました。「現実の世界」でプロジェクトを開始する方法について、いくつか質問がありました。最初の日は、プロジェクト計画書(英語の用語がわからない)での作業、会社とのアポイントメントの作成、および要件の指定とグループ内の動作の標準の設定を開始する機会が含まれていました。

しかし、これらのアイテムは完了するまでそれほど長くはかかりませんでした。明日と会う翌日に具体的な計画を立てました。これにより、数時間の「作業時間」が未使用のままになります。プロジェクトの開始時に1日の時間ごとに作業を行うことができないのは通常ですか、それともプロジェクトのこの段階で実行する必要がある作業を確認するだけの経験がないのですか、それともおそらく上記のリストは速すぎますか?

これは「現実の世界」でどのように機能しますか?あなたは「今何をすべきか」と思って時間を費やしていますか?

7
Willem

特定のプロジェクトについては、クライアントが望むものを見つけるまで、あなたができることは多くありません。しかし、あなたが今できることがいくつかあるので、あなたのチームは準備ができています。

  1. バージョン管理をどのように処理しますか?
  2. コードレビューを行いますか?
  3. 朝会はいつ行われますか。ルールは何ですか?
  4. 誰もがどのような役割を果たしていますか?
  5. ビルドはどのように処理されますか?
  6. 誰もがアクセスできるようにドキュメントをどこに置くか?

このすべてを必要な言語でテストするか、チームで使い慣れたものを選択するために、グループに非常に単純なプロジェクトに取り組んでもらいます。

17
JeffO
  1. バージョン管理システムをセットアップし、その構成を文書化する
  2. 自動ビルドシステムをセットアップする
  3. ビルドシステムと統合する自動ユニットテストをセットアップする
  4. 継続的インテグレーションシステムから自動的に生成されるドキュメントやレポートなどの静的コンテンツを提供するようにWebサーバーを設定します。
  5. 継続的インテグレーションサーバーをセットアップしてビルドとテストを実行し、結果を公開する
  6. プロジェクトなどの「ライブ」ドキュメントに使用するWikiを設定します。

  7. 機能とタスクのバックログを管理するために何を使用するかを決定する

  8. 誰が製品の所有者で、すべての作業を追跡する責任があるかを決定します
  9. チームがコミットされた作業に集中し続けることを確実にするだれを決定する
  10. ビルドが製品所有者にリリースされる頻度を決定し、このスケジュールを守る。
12
user7519

the opportunity to start specifying the requirementsthese items didn't take that long to finishを一緒に見ると、内部アラームが鳴っています。他の答えは健全な環境を設定するための優れた方法を提供しますが、最大の危険の1つが仕様にあることに注意してください。したがって、このフェーズに時間を費やす可能性があります。 8週間のプロジェクトでは、1週間(フルタイム)にすることができます。

難しいのは、欠落している仕様と、現在の仕様で機能していないものを見つけることです。自分の仕事を批判するのは本当に難しい。あなたがしなければならないことは、少しまたはロールプレイングです。一部の人々はクライアントであり、他の人々はプロジェクトのメンバーです。クライアントはあなたの仕事を判断する人です(教師、メンター...)。彼はプロジェクトの外部メンバーである可能性があります(この種のプロジェクトの経験を持つ誰かを見つけてください)。反復は次のようになります。

  • クライアントは要件を読み取ります
  • クライアントは、不足している要件、機能仕様、起こり得る障害の評価、テストの構成、フレームワークの選択について質問します...
  • プロジェクトチームが回答し、ドキュメントを更新する

あなたがしたいことをあなたが知っている人は、あなたはあなたのチームのためにワークフローを設定し始めるかもしれません。

この作業の最後には、それぞれの基本的なタスクの内訳を備えた一連の機能が必要です。マイルストーンを設定します(3週目はマイルストーン1と2を終了する必要があり、6週目は安定したソースコードを7週目と8週目にテストして小さなバグ修正とドキュメントの執筆に固執する必要があります...)。マイルストーンを開始するときは、どこかにタスクのリストを公開し(Excelシートまたはこれにバグトラッカーを使用することもできます)、誰が何から始めるかについて合意します。誰かが彼の仕事を終えると、彼は別の仕事を引き受けます(そしてそれについて話し合います)。その前に、他の誰かが彼が何をしているかを簡単に見て、それが正しく完全かどうかを確認する必要があります。

このワークフローをすべて設定することは、初心者にとっては少し難しい作業ですが、Nice wikiサービスを用意するよりもはるかに重要です。どのように働くかを考えるには、少なくとも1週間はかかる必要があります。ここで説明した組織を適用する必要はありませんが(これはほんの一例です)、自分に合ったものについて考え、必要なツールをセットアップするために少し時間をかける必要があります。目標は、すべての人を引き付けることです。 「私は今何をすべきか?」という質問に対する簡単な答えが常にあるはずです。

5
Simon Bergot

ソフトウェアプロジェクトの開始時に何を行う必要がありますか?これは「現実の世界」でどのように機能しますか?「今何をすべきか」と疑問に思っている時間を費やしていますか、それとも自分の明確な見解を持っていますか?その瞬間に行うことになっている?

ソフトウェアプロジェクトの開始時に私が期待していることは、一緒に働いている人々を知るために時間を費やすことです。

チームのプラクティスと手順を時間をかけて開発および変更するのが好きですが、プロジェクトまたはチームの開始は、いくつかの最初の基本ルールまたは「チャーター」に同意する絶好の機会です。

どんな状況やメンバーの混合でもチームのために機能する一緒に作業する方法を見つけてください。そして、目前の状況で電子メール、IM、チケット追跡、Wikiなどに最適なツールを見つけてください。特定のニーズを満たすためにこれらのツールの使用と適応に慣れ、迅速な変更が必要になったときに、それらを作成することに熟練します。

0
Michael Durrant

はい、プロジェクトの開始には時間がかかり、独自のスケジュールを持つ他の人とコンサートをする必要があるため、1日が足りないことがよくあります。 (他のいくつかの質問はあなたが考慮したいかもしれないことを提案しましたが、あなたのプロジェクトの会社のパートナーもそれらの要件を持っているかもしれません、それらについて話し、彼らにとって重要ではない場合何かを提案する準備ができています)。

私の考えに戻ると、あなたの質問の核心です。私の実践では、プロジェクトの開始は段階的に行われ、チームの一部のみが新しいプロジェクトの作業を開始し、時間の一部のみを実行しますが、以前のプロジェクトは完了します。

0
AProgrammer