タグ付けされた質問 「development-process」

ソフトウェア開発のプロセスに関する質問。

4
成熟したチームにとって良い「完了の定義」はどのようなものですか?
さまざまなソースで行われた定義の例を見ると、通常、次のような点が含まれています。 コード完成 単体テストの実行 ピアレビューまたはペアリングされたコード チェックインされたコード ドキュメントが更新されました … 私たちのチームにも同様のリストがありますが、これらのポイントが非常に明白であるため、これらの手順のいずれかをスキップすることは誰にも起こらないため、誰もそれを確認することはありません。つまり、それが主にアジャイルプロセスに移行するチームのためのツールであるのか、それを取り除くだけではいけないのかと考えていました。 一方、多くの文学は、すべての高性能チームが完了の強い定義を持っていると主張しています。この種のヒントは、ここで改善する機会を逃す可能性があることを示しています。 では、成熟したチームの完了の強力な定義の例は何ですか?一般的にどのような点が含まれていますか?

1
CMMIの有効性に関する経験的な証拠はありますか?
CMMI指向の組織におけるソフトウェアプロジェクトの有効性を調査する研究があるかどうか疑問に思っています。たとえば、CMMI組織は、非CMMI組織よりも時間どおりに、または予算通りにプロジェクトを完了する可能性が高いですか? CMMIは「能力成熟度モデル統合」の略です。カーネギーメロン大学(SEI-CMU)のソフトウェア工学研究所によって開発されました。 これは認定ではありませんが、レベル2やレベル3など、さまざまなレベルのCMMIに組織を「評価」するさまざまな会社があります(CMMIレベル1は、誰も望んでいない動物学のホッブス自由であると思いますつまり、以前にCMMIを聞いたことがない場合でも、全員が少なくともCMMIレベル1です。 私は間違いなく専門家ではありませんが、組織はさまざまな仕事の範囲内でCMMIレベルを評価できると考えています。つまり、サービス提供、ソフトウェア開発、ばかげているなどです。私の質問はソフトウェア開発の評価に焦点を当てています:組織ですソフトウェアプロジェクトのCMMIレベルXに評価されたソフトウェアプロジェクトは、CMMIレベルXに評価されていない別の組織よりも、ソフトウェアプロジェクトを予定どおりに予算内で完了する可能性が高いですか。 ただし、ソフトウェア指向のCMMIに関する明確なデータがない場合、CMMIの評価が他の活動にも及ぼす影響に興味があります。 私が最初に質問したのは、ソフトウェアで行われたさまざまな調査を見たからです(たとえば、The Mythical Man Monthのエッセイは、McConnellのCode Completeがそうであるように、多数の実証的調査を参照しています)。したがって、ソフトウェア開発の実証的調査を実施している組織があることを知っています。 。

7
バグのためにケースを再度開く必要がありますか、それともバグを新しいケースとして開く必要がありますか?
現在、私の職場では、さまざまなWebアプリケーションのすべての機能とバグを管理するためにFogBugzを使用しています。 Webアプリケーションの1つに新しい機能を追加すると、新しいケースが作成されます。たとえば、「CSVアップロードフォームの作成」です。 次に、私が費やした時間を記録してケースに取り組みます。このケースが完了したら、それを解決すると、ケースオープナー(通常はプロジェクトマネージャー)に割り当てられ、ケースマネージャーがケースを閉じます。 この機能にバグがある場合、プロジェクトマネージャーがケースを再度開き、バグの箇条書きリストを付けてケースを割り当てます。 私の意見では、これらの箇条書きのバグは個別のバグケースとして開く必要があると思います。そうすることで、追跡が容易になり、元の機能ケースのメモが散らからないようになります。 私のマネージャーは、機能に費やされた合計時間をすべて1つの場合に計算する方が簡単であると述べることに同意しません。 さらに、機能の参照番号が1つしかないため、クライアントの混乱が少ないと考えています。ただし、これは元のケースの完了後なので、バグは別のケースとして処理する必要があることを強調します。 バグは新しいケースとして再開する必要があると私は言っていますか?そして、これを管理するそれぞれの方法の長所/短所は何ですか?

4
コーディングの前に機能を知ることはどのくらい重要ですか?
私は、開発作業がオフショアされているソフトウェア開発会社で働いています。オンショアチームがサポートを担当し、クライアントと直接話します。クライアントと直接話をすることはありません。オンショアチームのクライアントと直接話をするだけです。 要件が発生すると、オンショアチームがクライアントと話し合い、要件ドキュメントを作成して通知します。要件を検討した後、設計ドキュメントを作成します(従来のウォーターフォールモデルに従います)。 しかし、プロセス全体で1つの問題があります。オフショアチームまたはオンショアチームの誰もアプリケーションの機能を完全に理解していません。私たちは、複雑な注文処理、カタログ管理、キャンペーン管理などのアクティビティを処理する大きな複雑なWebアプリを知っています。要件が明確ではないため、設計ドキュメントに取り組んでいます。次に、オンショアチーム、オフショアチーム、クライアント間で一連の質問/回答を行ったり来たりします。コードから機能を理解するように言われることがよくあります。しかし、コードベースが巨大であり、単純なメニュー項目を理解することさえ、数週間ではなくても数日かかるため、通常、それは現実的ではありません。クライアントに知識を伝えるよう伝えましたアプリケーションについてですが、役に立ちません。設計ドキュメントが完全でない場合や要件が明確でない場合でも、マネージャーからコーディングを開始するように指示されることがよくあります。要件の明確な部分をコーディングすることから始めて、残りの部分を待ちます。 これは通常、展開を1か月遅らせます。極端なケースでは、開発と本番環境でのエラーは非常に少なくなりますが、クライアントはそれを求めていなかったと言います。これは非難ゲームと一連の変更要求を開始し、非常に異なる何かを開発することになります。 私の質問は、アプリの機能を完全に知らない場合、どのように開発作業を行うかです。 更新 開発の方法論は本当に私の選択ではなく、私のチームのリーダーではありません。それはそれが始まった方法です。アジャイルの利点について人々に伝えようとしたが、役に立たなかった。その上、私のチームはアジャイル環境で作業するために必要な考え方を持っているとは思いません。

9
開発方法は開発者の個人主義を押しつぶすべきか?
私は大学の最終学期にいて、ソフトウェアエンジニアリングのコースを受講しています。クラスでは、さまざまなソフトウェア開発方法について学びます。私たちが重点を置き、プロジェクトの開発に使用したのは、ウォーターフォール法でした。 インストラクターが間違って実装したようです。クラス図では、プライベートプロパティを含むすべてのプロパティとメソッドをリストする必要がありました。私はいくつかの本、つまりClean Codeを読みましたが、これは関数を可能な限り短くし、焦点を絞っていると述べています。他の開発者の助けにならない場合、ダイアグラムにすべての小さな関数をリストするのは面倒です(それらは非公開で、他の誰も使用しません)。さらに、プログラムを設計するときにすべての小さな関数について考えることはないかもしれません。リファクタリングするときにそれらが一緒に来るかもしれません。 インストラクターは、すべての機能をリストするように依頼して、私たちに間違ったことを伝えましたか?そして、これらの設計方法は、開発者の個人主義を押しつぶして、コードを最もよく理解できるようにコードを記述しますか?

4
カスタムショッピングカートを開発する価値はありますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私たちの職場には、cakephpモジュールのハンサムなライブラリーがあり、ショッピングカートがプロセスを遅くするまで、カスタムWebサイトを適切なペースで開発しています。さまざまなプロジェクトでさまざまな(Magento、Opencart、Zencart)ショッピングカートを使用しました。これらのショッピングカートをコアのCakePHPアプリケーションとマージする必要があります。通常、非常にカスタムの要件により、ショッピングカートはアップグレードできなくなり、多くの時間がかかります。 独自のショッピングカート(現時点では非常に基本的なものであり、先に進むにつれて拡張する)をゼロから作成して、カスタム要件に簡単に適合できるようにすることを考えています。やる価値はありますか? 更新8月11日 独自のショッピングカートを開発し続けました。これが皆さんと共有したい私の経験です。 利点 新しいカートは、変更や拡張が簡単です。 あいまいな要件やカスタム要件がある場合に時間を節約し、既存のコードライブラリからモジュールを直接インポートできます。 カートとカスタムWebサイトにデュアルテンプレートを実装する必要はありません。 ショッピングカートとカスタムWebサイトの単一の管理パネル。 制限事項 それでも、市場の他のカートと比較して十分に成熟していません。 セキュリティ上の懸念。私たちはたいていCakePHPのセキュリティに依存しています。 機能がない 直面する問題 配送/支払いゲートウェイの開発は本当に大変でした。以下のよう@davidhaskinsが指摘しました 標準のショッピングカートをハッキングしてニーズを満たすために費やす時間を大幅に節約できました。

2
Web開発の準備とプロジェクト全体のワークフロー
私はWeb開発プロジェクト(フロントエンドとバックエンド)で一人のプログラマーとして働いています-私はいくつかのプロジェクトを完了しているので、これはかなり新しく、いくつかのアプローチを読んで試してみて、ある方法に到達しましたそれらについて。質問と私の説明はかなり長いので、しばらくお待ちください。 私が探しているものは、次のとおり です。1.何を構築する必要があるかを正確に理解した後、開発を開始する前に通常行われる準備/計画。 2.経験から、私が現在フォローしているプロセスについてのフィードバック/提案を教えてください。 私が扱うクライアントは、一般にスタートアップであり、予算が限られているため、時間単位で課金することはできません(これは、大企業が通常、クライアントに[人/時間]で開発プロジェクトに請求する方法です)。固定予算で作業します。 これが私が現在従うプロセスです 。1.プロジェクトの範囲を測定し、2、3回の会議で彼らが何を達成しようとしているのかを理解しようとします。 2.彼らがプロジェクトから何を得ることが期待できるかを一般的に説明する見積もりで大まかな球場図を与えます、私は機能について具体的にしようとしますが、私は知っているのでこれにあまり多くの時間を入れませんクライアントは単に見積もりを求めているだけで、実際には変換しません。 3.支払いと作業に関するJeff Atwoodの提案に従います。 15%の支払い-作業を開始する前の事前準備 このフェーズでは、最終的なWebサイトのHTMLモックアップが作成され、Webサイトを可能な限り詳しく説明するフローチャート(yEd付き)と、フローチャートにはない他の機能を説明するドキュメント。これは、プロジェクトのすべての詳細を調べ、適合する価格と、合意された価格で実装するにはあまりにも多くの作業が必要なものを完成させることによって行われます。詳細については前に説明していませんので、これらの一部は多かれ少なかれ実際に何が得られるかについての交渉です。これは固定予算プロジェクトであるため、固定要件が必要です。それ以外の場合、機能が追加されても価格は下がり続けます。 配色、デザインワイヤーフレーム、デザインPSDも完成します。 35%の支払い -開発 の開始プロジェクトは修正され、開発を開始します。サーバーでサイトをホストしています。クライアントはフロントエンドにアクセスできますが、コードにはアクセスできません。 30%の支払い -コードをクライアントのサーバーにシフトする/クライアントにサーバーアクセスの詳細 を与えるサイトをライブにする 20%の支払い -すべてのバグが修正された後、サイトが稼働してから数週間。 質問: 1.何を構築するのかが正確にわかったら、コーディングを開始する前にどのような計画を立てますか? 2.経験から、プロセス全体のどの部分を異なる方法で実行しますか?

11
複数のプラットフォームをターゲットとするアプリケーションを開発するために従うべきアプローチ
複数のプラットフォームをターゲットとするアプリケーションの場合、主に2つの開発アプローチが見られます。 Javaのような開発プラットフォームに移動します。1つのコードソリューションを用意し、中間ランタイムに異なるプラットフォームを処理させます。プラットフォームで問題が発生した場合は、コードを少し調整してください。しかし、それはすべて同じにしてください。 コアロジックとUIを分離するモジュラーコードを作成します。同じコアライブラリを呼び出すプラットフォームごとに個別のUIを開発します。ターゲットプラットフォームごとに個別にアプリケーションをビルドします。 それで、どちらをフォローしますか?答えは「それは場合によります」から始まります。しかし、私はこれらのアプローチとそれらのいずれかを選択するために考慮されるべき要因についてのあなたの意見を聞きたいと思います。


5
開発サーバーとローカル開発
私がこれまでに取り組んだ2つのプロジェクトでは、チームは開発サーバーよりもローカル開発環境を好みます。 あるプロジェクトリーダーは、インターネット接続を必要としないため、ローカルの方が優れていると述べました。しかし、これは開発時に想定されているようです。 通常どちらが良いですか?

8
テストを行うプログラマ
プログラマーが帽子をかぶって、お互いの作業をテストするのがどれほど典型的なことかと思います。チームが、タスクの形式化からリリースへの移行に「責任を共有する」アプローチを取りたいと仮定します- プログラマーが機能を記述しない限り、ソフトウェアテストとして作業することをお勧めしますか? これは頻繁に起こりますか? プログラマが自分の作業をどの程度「テスト」できるか? TDDと単体テストを使用しても、開発プロセスでソフトウェアテスト装置がまだ必要ではありませんか?

5
私は、既存の完全に文書化されていないソフトウェア製品の文書化作業を主導する任務を負っています。どのようなリソースが役立つのですか?
私はテクノロジー企業のソフトウェア開発者です。私が取り組んでいる製品の文書化作業を主導する任務を負っています。目標は開発者の内部でドキュメントを作成することであり、プロジェクトはビジネス側に波及し、そこで要件のドキュメントがカバーされます。 このプロジェクトは挑戦的です。具体的には、次のような製品を扱っています。-少なくとも6年間、長い間使用されています。-あちこちにある古くて小さな断片を除いて、ドキュメントの形式はありません。-コード内にコメントがありますが、それらは技術的であり、包括的な技術的な動作を伝えません(技術的な側面でも)。-ドキュメントがほとんどないか、まったくないため、多くの場合、不必要に複雑になっています。 また、このプロジェクトに取り組む時間はあまりありません。 私は正式な文書やライティングの背景、トレーニング、または経験がありません。私は執筆やオフィス内でのコミュニケーション能力を発揮したため、このプロジェクトに割り当てられたのかもしれません。 このプロジェクトの準備と対処に役立つリソースに関するアドバイスや推奨事項を教えてください。マイルストーンを含む計画の設計を思い付き、ベストプラクティス、タスクの委任、テンプレート、バイインなどについて学ぶために、本/ウェブサイト/フォーラム/その他への参照を探しています。 私は特に、既存の、文書化されていないプロジェクトに優れた文書を導入することをターゲットにしたり、特別な言及をしたりするリソースに期待しています。

4
ユーザーストーリーの承認基準に関する詳細はどこに記述しますか?
受け入れ基準に関するこのブログの投稿で、著者は適切な受け入れ基準は次のようでなければならないことを説明しています。 解決策ではなく意図を述べる(たとえば、「ユーザーはドロップダウンからアカウントを選択できる」ではなく「ユーザーはアカウントを選択できる」) 実装に依存しない(理想的には、この機能/ストーリーがWeb、モバイル、音声起動システムなどに実装されるかどうかにかかわらず、フレージングは​​同じです) 比較的高いレベルである(すべての詳細が書面である必要はない) 次のような詳細: 列見出しは「バランス」です ローリングバランスの形式は99,999,999,999.9 D / CRです。 チェックボックスではなくドロップダウンを使用する必要があります チームの内部ドキュメントまたは自動受け入れテストのいずれかに移動する必要があります ただし、GUIテストを実行するためにCucumberまたは同様のフレームワークを使用することについて眉をひそめる人々をよく耳にします。さらに、内部ドキュメントを使用すると、ドキュメントを定期的に更新できないために多くの問題が発生する可能性があります。 私はまだ、お客様との会話中にそのような詳細をキャプチャする効果的な方法を見つけるのに苦労しています。

4
技術を理解していない会社のコンサルタント![閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 7年前休業。 他に3人のプログラマーがいる会社でコンサルタントとして働きました。私の仕事はすべての古いシステムをJavaやSpringなどで書き直すことですが、スタッフのプログラマーはperlしか知らず、マネージャーはプログラミングを知りません。 私はここに書き直すプロジェクトが6つあるが、誰も設計ドキュメントや仕様を持っていないことを彼らに理解させようとしています。スタッフのプログラマーはドキュメントを書く必要がありませんでした。さらに、私はマネージャーに新しいjava techのものを理解させることができません..彼はスタッフの何人かに物事についての意見を求め続けますが、スタッフはそれを知らないか理解していません。 何を構築するかを知るために、スタッフプログラマーまたは誰かがデザインドキュメントを書かなければならないことをマネージャーに理解させるために、ここからどこへ行くのですか。または、ドキュメントを作成する必要がある場合、どのようにして情報を取得しますか?

1
プラグインベースのソフトウェア設計
私はソフトウェア開発者で、ソフトウェア設計のスキルを向上させたいと思っています。ソフトウェアは機能するだけでなく、再利用可能で後の目的に拡張できるようにしっかりしたエレガントなデザインにする必要があると思います。 今、私は特定の問題の良い実践を理解する助けを探しています。実際、私はプラグインを介して拡張可能なソフトウェアを設計する方法を見つけようとしています。 私が持っている質問は次のとおりです。 プラグインはお互いの機能にアクセスできますか?これは私が推測する依存関係をもたらすでしょう。 ビデオと音楽を再生するが、後でビデオのステータスを読み取ることができると言うプラグインを介して機能を追加できるマルチメディアソフトウェアを開発したい場合、メインアプリケーションがプラグインに何を提供する必要がありますか(時間、bps、...)そしてそれを表示します。これは、プレーヤー自体がメインプログラムの一部であり、そのような情報を取得するためにプラグインにサービスを提供する必要があるか、またはプレーヤーをプラグインとして開発する方法もある方法で可能性を提供する必要があることを意味しますかそれと対話するために他のプラグインに? ご覧のとおり、私のソフトウェア開発スキルの向上に努めているため、私の質問は主に学習を目的としています。 ここで助けを見つけて、私の質問に何か問題があれば謝罪したいと思います。

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