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

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


2
ソフトウェア開発に対する増分アプローチと反復アプローチの違いは何ですか?
インクリメンタルアプローチは、生成物が終了するまで(たびに加算されるもう少し)モデルは、設計、実装、および漸増試験されたソフトウェア開発方法です。開発と保守の両方が含まれます。製品は、すべての要件を満たしたときに完成品として定義されます 反復設計は、プロトタイプ試験、分析、および製品またはプロセスを精製する循環プロセスに基づく設計手法です。設計の最新の反復をテストした結果に基づいて、変更と改良が行われます。このプロセスは、最終的に設計の品質と機能を改善することを目的としています。反復設計では、設計されたシステムとの相互作用は、連続したバージョンまたは設計の反復が実装されるときに、プロジェクトを通知および進化させるための研究の一形態として使用されます。 両方の方法は、システムの一部を作成し、すべてのテストケースに合格するようにシステムを調整し、システムの別のコンポーネントを追加し、再度調整することに関するものと思われます。 これら2つのソフトウェア設計方法の実際の違いは何ですか これらの2つの方法を組み合わせて、反復および増分設計アプローチを形成する方法

4
ワンマンチームのソフトウェアライフサイクル手法[非公開]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 私は修士プロジェクト用のソフトウェアシステムを構築しており、「ワンマンチーム」に適した特定の方法論に関するアドバイスを探していました...

6
より経験豊富な開発者がいない場合に、実際のプロジェクトで作業しながらスキルを向上させるにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私はC#とASP.Netで働いている小さな会社の主任開発者です。私たちのチームは、開発と設計の経験が少ない2〜3人の小規模です。私はより多くの上級開発者から学ぶ機会がありません。自分のチームの誰も私を導き、最良のアプローチを選択するのを手伝ってくれる人はいません。 経験豊富な開発者がいない場合、実際のプロジェクトに取り組みながらソフトウェア開発スキルを向上させるにはどうすればよいですか?

5
RAD環境でリリース品質を改善する簡単な方法
ここに少しの背景があります-私たちは、大規模な非ソフトウェア会社の内部ソフトウェア開発を担当するRAD開発者の小さなチーム(5人)です。「内部ソフトウェア」は、MSSQLサーバーをバックエンドとして使用するデスクトップ.N​​ETアプリケーションと、バックグラウンドで実行されるPythonスクリプトからMS Word文書やテンプレートに至るまでさまざまです-技術の動物園。 チーム全体は、ユーザーから要件を取得し、コードを作成し、テストし、運用環境に展開できるすべてのアロンダで構成されています。本番環境のソフトウェアは、別のチームによって管理されていますが、通常、何か問題が発生した場合は簡単に介入できます。 これまでのところはすべて良さそうですが、問題があります-RADチームであるため、頻繁にリリースする必要があり、1つまたは2つのアプリケーションの新しいバージョンをリリースせずに1日を過ごすことはできません(または、スクリプト、更新されたWordドキュメント、C ++コンソールアプリなど)を本番環境に追加します。開発テストを行い、エンドユーザーがUAT環境でソフトウェアを実行できるようにすることで、エンドユーザーも関与させます... ...しかし、バグはとにかく生産に忍び込んでいます。ユーザーはこれらのバグと時折の不安定性が本当に欲しいものをすぐに手に入れるために支払う価格であることを理解していますが、同時に考えさせられました-おそらく開発やリリースのプラクティスを改善して安定性を改善できるかもしれません新しい機能を追加するときに導入するバグの数を減らします。 良いこと-そもそもプロセスがあまりないので、改善を開始しやすいはずです。悪いこと-実装する時間とリソースがあまりない小さなRADチームであること大きなことですが、次のイニシアチブについて検討しており、フィードバック、ヒント、ヒント、提案を歓迎します。 現在、一部のアプリケーションは、ユーザー受け入れテストをバイパスして、開発者テストの直後に本番環境にリリースされています。その慣行は中止されるべきであり、小さな変更でさえエンドユーザーがテストする必要があります。各アプリケーションには、エンドユーザーから選択された専用のベータテスターがあります。ベータテスターが新しいリリースを承認した場合のみ、テストから実稼働環境に昇格されます。 コードレビューは実施しませんが、変更セットをチェックインする前にコードレビューを開始します。また、「ロールアウトレビュー」についても考えていました。基本的に、開発者の1人がソフトウェアロールアウト(バイナリのコピー、設定の更新、データベースへの新しいテーブルの追加など)を行う他のウォッチと一緒に隣に座っている必要があります-通常は5〜10分かかるため、「ロールアウトレビュー」の時間はあまりかかりません。 新しいリリースが、本番環境から撤退し、適切な以前のバージョンに置き換えられるほどバグが多いことが証明されている場合に、ロールバック時間を短縮する方法。すべてのリリースの履歴を(バイナリとして)保存して、1つのバージョンに簡単に戻せるようにします。また、「新しくリリースされたバイナリを以前のバージョンのバイナリで上書きする」のは簡単ですが、エラーが発生しやすい手動プロセスです。また、「ロールバックが失敗し、システムがバグの代わりに使用不能になる場合はどうするか」を時々要求します。 ここでアイデアを使い果たしました。これらについてのフィードバックを受け取りたいと思います。簡単なリリース/開発プロセスの改善アドバイスを共有できれば、それは素晴らしいことです。

16
デバッグに費やす時間を減らす方法 [閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 5年前に閉鎖されました。 パレートルールに従って、プログラマーは本当に便利なことに時間の20%しか費やしません。 デバッグに80%の時間を費やし、小さなものを修正してすべてが機能するようにします。 デバッグに費やす時間を減らす方法はありますか?

6
普遍的にクロスプラットフォームのC ++コードを作成し、すべてのOS向けに製品を出荷するのはそれほど簡単ではないことを説明するにはどうすればよいですか?
私たちの会社はWindows向けにさまざまなデスクトップ製品を出荷しており、多くのLinuxユーザーはフォーラムで何年も前にLinux向けの製品のバージョンを書いておくべきであると不満を述べています。 私たちは貪欲な会社です 私たちの技術スペシャリストはすべて、資格のない馬鹿です 私たちの平均的な製品は、300万行のC ++コードのようなものです。 私と私の同僚の分析は次のとおりです。 クロスプラットフォームのC ++コードを書くことはそれほど簡単ではありません 多くのディストリビューションパッケージを準備して、Linuxのすべての普及バージョン用に維持するには時間がかかります 私たちの推定では、Linux市場は全ユーザーの5〜15%程度であり、それらのユーザーはおそらく私たちの努力にお金を払いたくないでしょう。 これが提起されたときの応答は、私たちが貪欲な不十分なバカだということです。 クロスプラットフォームコードを記述し、多数の配布パッケージを維持するのに多大な労力がかかるという事実の評価はどれほど合理的ですか?疑いの影を越えて、正確にどれだけの労力がかかるかを示す実際のストーリーで、簡単で詳細な分析をどこで見つけることができますか?

8
ソフトウェア会社には、研究および/またはユーティリティライブラリの専任チームが必要ですか?
私はさまざまな銀行やいくつかの小規模なeショップ向けのWebアプリケーションを扱う会社で働いています。私たちは約20人の開発者を雇用し、4〜5つのプロジェクトをいつでも開発しています。開発チームはあまりやり取りせず、同じ問題の多くがさまざまな方法で行われます(良いものから悪いものまで)。 会社が現在のフレームワークを研究し、機能の共通ライブラリと共通フレームワークを継続的に改善し、現在および将来のプロジェクトをより速く、より効率的に構築するプログラマーのチームを持つことは良い考えだろうかと思いました。 このようなチームはどのくらいの大きさにすべきですか? また、他の人を訓練する常任のメンバーが必要ですか、それとも人を交代させるべきですか? 更新:私は、人々が興味をそそるかもしれない楽しみのために取り組むことができる一般的なプロジェクトについて考えていました。人々が仕事のプレッシャーを抱えているとき、彼らが思いつく解決策は最良ではないようです。

6
あなたのチームは、作業方法(スクラムなど)に従わなくてもうまく機能していますか?
私は過去9年間に多数の小さなチームで働いてきました。それぞれには、短い会議、改訂管理、継続的統合ソフトウェア、問題追跡などの明らかな優良事例がありました。 この9年間、開発方法論についてあまり聞いたことはありません。たとえば、「私たちはスクラムをやっている」、「アジャイルをする」、または参照を超えるものはありませんでした。すべてのチームはうまく機能しているように見えましたが、多くのプロセスを踏まなくても、ただのフリーフローで、自然にうまく機能していました。 スクラム/アジャイル/その他に遭遇することなく、他の誰かが長期間進歩しましたか? 私がこれらにさらされた唯一の露出は、このようなサイトを通してです。私はスプリント会議のような質問を読みます-何を話すべきか ...そしてすべての話は方法論の有限状態機械に従う人々のようなほとんどロボットのことを説明しているようです。それは本当に(誇張されていますが)そのようなものですか?インターネットに投稿している人々は、「ベストプラクティス」を大声で支持しているだけで、教科書の見方も同じで、実際に人々がどのように働いているのかを反映していないのでしょうか? さらに(私は英国にいるので、関連があるかもしれません)...私が取り組んでいるチームのいずれかに方法論が導入された場合、彼らはそれを愚かで不必要であるとして拒否するでしょう...オン。同意する傾向がありますが、次のプロセスは少し不自然に思えます。これは典型的ですか、それとも一般的ですか?

5
潜在的な利害関係者が多すぎるときに開発プロジェクトを開始する方法
私は大学で(唯一の)Webアプリケーション開発者として新しい仕事に就きました。 大学には多くの異種のシステムがありますが、どれもかなりひどくコーディングされたレガシーシステムです。ほとんどがPHPで構築されており、出席、試験結果、採点などを処理します。 私の最初の仕事は、このデータを大量に組み込むシステムを構築することです。現在、さまざまなデータベースに格納されており、それを引き出すためのフレンドリーなAPIはありません(既存のシステムは、データとビューを分離せずにPHPでコーディングされています)学生に関する牧歌的な情報を記録し、教師や上級スタッフに有用な方法で提示するための新しいプラットフォームを使用して、学生に関する問題に迅速に対応できるようにします。 最初の会議では18人が参加しました!多数派を代表する明確なリーダーや声はありませんでした。識別可能なクライアントはありません。会議は、学部長からのマイナーな機能に関する詳細な実装のアイデアから、Excelスプレッドシートをデータ入力に使用すべきかどうかについての議論へと変わりました。 想像できるように、私の頭は最後に回転していました。私は実際にはたくさんの良いアイデアを持っていましたが、それらを聞くことはできませんでした。マーケティング代理店の開発チームの一員になる前、これは私にとって非常に新しい役割です。プロジェクトマネージャー、クライアント、デザイナー、開発者という非常に明確な役割がありました。 経験豊富な開発者やマネージャーが、プロジェクトチームに似たものに同僚を誘い込む方法についての指針を教えてくれるかどうかを知りたいです。アジャイルは進むべき道ですか?すべての異なる声を処理する方法はありますか?いくつかのプロセスを非常に迅速に導入する必要があることは明らかですが、それが何であるかはわかりません。

3
各環境にあるコードのバージョンをどのように追跡できますか?
私のチームは現在、次のような非常に単純な分岐/展開プロセスを使用しています。 ┌────────┐ ┌────┐ ┌──────┐ Environments: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ Builds: │ DEV │ │ QA │ │ PROD │ └────────┘ └────┘ └──────┘ ▲ ▲ ▲ │ │ │ ┌────────┐ ┌────┐ ┌──────┐ Branches: │ …

3
アプリケーション全体で静的ロギングメソッドを使用する代わりにLoggerオブジェクトを作成する理由
単純なRuby on Railsアプリケーションの例を取り上げます。Loggerアプリケーションのロードプロセス中にオブジェクトを作成します。 # in environment.rb config.logger = Logger.new(<STDOUT | file | whatever>) # and in our application we use this object logger.warn "This process is taking too long to process. Optimization needed." 私の質問は、なぜロギングにクラスメソッド(または静的メソッド)を使用しないのですか?Logger.warnよりもスケーリングしませんLogger.new.warnか?または、少なくともLogger.warnより直感的ですLogger.new.warn。 Logger.newシングルトンオブジェクトであっても、どのような利点がありますか?

7
プログラマーとして、開発プロセスで使用される方法を気にしますか?
私は就職市場にいて、給与、業種など、次の仕事の優先順位を持っています。しかし、要件のリストに載っていないことの1つは、開発プロセスの方法論です。私の仕事はソフトウェアを作成することだと感じており、プロセス構造はスクラムでもウォーターフォールでも何でも適応できるものだと考えています。 開発プロセスの方法論はあなたにとって優先事項ですか?

3
1〜3人の開発者からなるチームが10人以上に成長した場合、どのような管理/開発プラクティスを変更しますか?
私のチームは数年前にクライアント用のウェブサイトを構築しました。サイトのトラフィックは急速に増加しており、クライアントはメンテナンスと機能要求のニーズを満たすためにチームを成長させるように求めています。 私たちは少数の開発者から始めましたが、チームは成長しました-今では2桁になっています。 チームが小規模な「ガレージサイズ」チームから10人以上の開発者に成長する場合、どの管理/開発の変更が最も有益ですか?

7
ソフトウェア開発の実践に関する未確認の声明を誰かが提供した場合、「引用が必要」と答えますか?[閉まっている]
ここで何が求められているかを伝えるのは難しいです。この質問は曖昧、曖昧、不完全、過度に広範、または修辞的なものであり、現在の形式では合理的に答えることができません。この質問を明確にして、再開できるようにするには、ヘルプセンターに アクセスしてください。 9年前に閉鎖されました。 最近、グレッグウィルソン(ソフトウェア大工仕事の最高科学者)の講義に出席しました。要約から: ソフトウェア開発の実践についての主張は証拠に基づいているべきであるという考えはまだソフトウェア開発者にとって異質ですが、これはついに変わり始めています:特定のツールまたは実践がソフトウェア開発をより速く、より安く、またはより信頼できると主張する学者は現在ある種の実証研究でその主張を裏付けると期待されていました。 全体として、講義は非常に有益であり、開発への私のアプローチについて非常に深く考えさせられました。特に、私は今、引用を探して多くのステートメントをバックアップしていることに気づきました。以前は、提供された真実を単純に繰り返す習慣に陥っていました。おそらく後で確認するための精神的なメモがありました。 率直に言って、私はだまされていました。 講義からの例を以下に示します。 「コードの25%を超えるリファクタリングが必要な場合、コードを書き直す方が迅速です」。 もっともらしいですが、本当ですか?これを裏付ける研究はどこにありますか?すべての言語に当てはまりますか?等々。 OK、これを極端なものにして、第一原理から自分で導き出さない限り、誰にも信じられないことは十分にあります。その方法は、狂気(または多分数学;-))です。しかし、誰かが「ねえ、これを[瞬間の言語]で行うことで、生産性を[10の倍数]%で]増やす」という文言であなたに近づいたら、それを受け入れるか、実証済みの証拠を求めるつもりですか? 後者の場合(そしてそうであることを願っています) この証拠をどこで見つけますか? あなたはどのくらい厳しいですか? 要するに、誰かがあなたに未確認の声明を提供した場合、あなたは「要出典」で応答しますか?

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