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

2
顧客から受け取った非構造化要件を管理および推定する方法
プロジェクトの入札段階では、多くの場合、潜在的な顧客からソフトウェアシステムの要件をさまざまなソース[メール、ワードドキュメント、Excel]から非常に非構造化された形式で受け取ります。通常、彼らが抱えるビジネス上の問題に対するこれらの「提案された解決策」を考え出すのは、顧客側からの「製品開発」担当者の集まりです。彼らはビジネス分野の専門家ですが、多くの場合、彼らは正しい解決策を持っていません。 これにより 同じ要件の複数のバージョン 2つの要件を1つに混ぜる 後の要件のいくつかのバージョンでは、一緒に結合された要件が再び分離され、それぞれが新しい追加の一部を取ります 開発を開始する前に、このような要件をどのように処理し、適切なユースケースに分類しますか?特定の要件の履歴を追跡するために、最初に考案されてから適切なユースケースに結晶化するまで、どのツールを使用できますか?このような方法で受け取った要件に対する作業の見積もりは、要件を正しく理解し、それに対する作業を正しく見積もるのを間違えてしまうという悪夢です。 私たちがプロジェクトに勝った後、顧客は自分の要件をさらに考え、適切にそれを明確にすることができました。この場合に発生することは、一部の機能が削除され、一部が機能強化され、一部がまったく新しい方向に進むことです。これは基本的に、プロジェクトに勝つ前に行われた作業項目の見積もりの​​一部を無効にする可能性があります。特定の要件のツリーを構築できるシステムがあるかどうか、および各ブランチがどのように異なる推定値をもたらすかを知りたいと思います。 このアクティビティをより管理しやすくするためのヒント、ツール、トリックはありますか?要件管理や労力の見積もりよりも経験豊富な人から洞察を得ようとしています。

7
if / elseブロックで真理値表を最小にする方法
真理値表を取得して、それをコンパクトなifブロックに変換するにはどうすればよいですか? たとえば、AとBが条件であり、x、y、zが可能なアクションであるこの真理値表があるとします。 A B | x y z ------------- 0 0 | 0 0 1 0 1 | 0 0 1 1 0 | 0 1 0 1 1 | 1 0 0 ブロックの場合、これは以下に変換できます。 if(A) { if(B) { do(x) } else { do(y) } } else { do(z) } これは簡単なサンプルですが、多くの場合、さまざまな方法で組み合わせてさまざまな出力を生成するいくつかの条件があり、ifブロックでロジックを表現する最もコンパクトでエレガントな方法を見つけるのは困難です。

6
何百人もの開発者が単一のソリューションに取り組んでいるときの開発方法論?
私たちは約200人の開発者で構成される組織であり、特定の日にリリースされる予定の1つの製品(リビジョン管理Gitを使用)で継続的に作業しています。 開発者が非常に多いため、各チームに約10人の開発者がいる「クロスファンクショナル」チームを作成しようとしています。その結果、組織内に約20の開発チームができます。 メインリポジトリ内の製品の継続的な「高水準」(開発者がプルするとき、製品が少なくともコンパイル可能であることなど)を維持したいので、何らかの品質ゲートを使用したいと思います。 質問の言い方が少しわかりませんが、単一の製品に取り組んでいるこのような大規模な開発者グループの開発方法論に関するアドバイスを得ることができるかどうか疑問に思っています。 私たちの意見では、スペクトルの一端は各開発者がメインリポジトリに直接コミットできるようにすることですが、開発者/コミットの数が多いため、「メインリポジトリ」が常に壊れた段階にある可能性があることを恐れていますコミットごとに厳しい「品質ゲート」を持つことはできません。 スペクトルのもう一方の端は、(メインリポジトリ)に3つのプルソースのみがあり、これら3つに少数の信頼できるプルソースのみがあるツリーまたはピラミッド構造のようなものです(Linus Torvalds / Linuxが行うと思います)しかし、そのような構造では、変更が「メインリポジトリ」に入るために登るには長いチェーンがあると感じています。さらに、マージの競合が発生した場合、「元の開発者」以外の別の開発者に問題が発生します。 この背景情報と意見をすべて述べた上で、非常に多くの開発者に推奨される開発方法論をどのように学び、読むことができますか?大規模な組織(Microsoft、Facebook、Ubuntuなど)はどのように開発を構成していますか?

5
複雑なJavaScript UIの開発アプローチ[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 6年前に閉鎖されました。 複雑なクライアントサイドJavaScriptの開発に関するさまざまなアプローチの状況とベストプラクティスを理解しようとしています。 このクラスのアプリケーション、おそらく重いAJAXまたはRIA(ただし、Flash / Silverlightなどのプラグインではない)に何をラベル付けするのかわかりません。これらの特性を備えたWebアプリを参照しています。 JavaScriptでリッチ/ネイティブデスクトップUXをエミュレートします サーバーをデータAPI(JSON / Html-Templates)として使用して、クライアント側JSのほとんど/すべての動作を含みます。 これは、UIレンダリングにWebサーバーを使用して、ページ更新モデルですべてのHTMLを生成するのとは対照的です。 以下に例を示します。 Googleドキュメント/ Gmail マインドマイスター ピボットトラッカー HTML5に進むと、このスタイルのRIA開発が、重いJavaScriptを使用して、競争するためにますます一般的かつ必要になっていることがわかります。 質問:では、これらの種類の重いJS開発の管理に関して浮上している一般的なアプローチは何ですか? アプリの機能が大きくなるにつれて、クライアント側のコードは非常に複雑になります。生のJSを使用して複数のチームにまたがって開発作業をスケーリングする際に問題が発生します(または、私はそれを聞いており、信じることができます)。 Googleは、高レベル言語(Java)からJSにコンパイルするGWTを構築し、高レベル言語にある既存の開発インフラストラクチャ(Eclipse、強力な型付け、リファクタリングツール)に加えて、ブラウザの互換性を抽象化することで問題に取り組みました。開発者から離れた他の問題。 同様のことを行うC#用のScript#など、他のツールもあります。これはすべて、JSをIL(中間言語)の役割にします。すなわち。「あなたは本当にその「低レベル言語」で書くことはありません。」 しかし、この「JSにコンパイル」が唯一のアプローチではありません。GWTが支配的なアプローチであることは明らかではありません...または実際にそれになるでしょう。 リッチクライアントJavaScriptを使用して人々は何をしていますか?いくつかのオリエンテーションに関する質問: ほとんどのショップはJSを手動で作成していますか(jQueryなどのライブラリの上)。 または、明確なベストプラクティスが明らかになっていない、多くの異なるアプローチがありますか? ほとんどのショップは、RIAスケールの開発を避けて、よりシンプルな開発者向けのサーバーサイド/ページ再描画モデルを支持していますか?もしそうなら、これは続くでしょうか? JSへのコンパイルは、おそらく新たな将来のトレンドですか?それとも、これは間違っているのでしょうか? クライアントJSの複雑さとリファクタリングをどのように管理していますか? チーム間の作業のモジュール化と分散? MVC / MVPなどのクライアント側パターンの適用、実施、テスト では、このJavaScriptとHTML5のこの重い未来の新しいトレンドはどのようなものでしょうか? ありがとう!

17
なぜ私たち全員がまだモデル駆動型開発をしていないのですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 8年前に閉鎖されました。 私はモデル駆動開発を真に信じており、生産性、品質、予測可能性を高める可能性があると思います。MetaEditを見ると、結果は驚くべきものです。オランダのメンディックスは非常に急速に成長しており、素晴らしい結果をもたらしています。 私は多くの問題があることも知っています ジェネレータ、テンプレート、フレームワークのバージョン管理 モデル駆動型開発に適していないプロジェクト(繰り返しが不十分) より高いリスク(最初のプロジェクトが失敗した場合、従来の開発で得られるよりも結果が少なくなります) 等 しかし、それでもこれらの問題は解決可能であるように思われ、必要な労力を上回る利点が得られるはずです。 質問:モデル駆動型開発を考慮しない最大の問題は何ですか? これらの回答は、自分自身の理解だけでなく、執筆予定の一連の内部記事のソースとしても使用できます。

5
ソロプログラマー向けのソフトウェア開発におけるベスト/よく知られているプラ​​クティスの最小サブセットは何ですか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 私は長い間仕事で孤独なプログラマーでした。通常、私は記事や記事を読んだことがあります バージョン管理システム 継続的インテグレーション/配信 開発方法:スクラム、ウォーターフォール、Vモデル、アジャイル、XPなど。 ソフトウェアプロジェクト管理 しかし、それらのほとんどすべてがTEAMSに焦点を当てているようです。私はチームではないので、たった1人のプログラマにとって絶対に最低限のプラクティスは何でしょうか?以下の条件を考慮してください。 他の人のコードとの競合はありません。 ファイル/ディレクトリツリーを維持する必要はありません。私の開発環境では、バージョン管理自体が重要です(イメージベースの開発)。 正式な要件はありません。ユーザーは自分が何を望んでいるかわからず、それで問題ありません。 リリースやドキュメントの配信に興味を持っているのは私だけです。基本的に顧客は結果を望み、ソフトウェアの方法論などは気にしません 私の考えでは、顧客の要件に直接関係のないものに時間とエネルギーを費やしたくはありません。推奨事項はありますか?

6
現在、ゲーム開発に使用されているテクノロジーは何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 オンラインフォーラムでゲーム開発に関する質問をするたびに、線画アルゴリズムの学習、ビットレベルの画像操作、ビデオ圧縮解除などの提案が常に寄せられます。 しかし、God of War 3のようなゲームを見ると、このような低レベルのテクニックを使用してこれらのゲームを開発できるとは信じられません。 このようなゲームの素晴らしさは、(私にとって)わかりやすいプログラミング方法論に反しています。 ゲーム用ハードウェアに加えて、最近では本当に怪物です。したがって、開発者がより高いレベルの抽象化で作業することは理にかなっています。 ゲーム業界の最新の開発方法は何ですか?30〜35人の開発者(そのほとんどは管理とマーケティングの綿毛)のチームが、このような気が遠くなるようなゲームを作ることができるのはどうしてですか 質問が一般的すぎると思われる場合は、God of War 3のアーキテクチャを説明できますか?または、クローンをどのように作成しますか?客観的に答えられるべきだと思う。

6
Waterfallソフトウェア開発方法論はまだ実行可能ですか?
私の経験では、Waterfallモデルは柔軟性に欠け、要件の変更に無反応であることが証明されており、ソフトウェア開発の現代世界で実行可能な方法と見なされているようです。より俊敏で反復的な方法の成長と実証済みの実績は、プロジェクトの開始から製品の提供までほとんど変わらないことを前提とするリジッドブロックのプロセスに従う必要がある理由がないことを示しているようです。 ウォーターフォール開発方法論は、時間、コスト、および品質に関して、ソフトウェアシステムを提供するためにまだ実行可能ですか?

4
アジャイル方法論におけるスタンドアップの目的とその期間は何ですか?[閉まっている]
閉じた。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集して事実と引用で答えられるように質問を更新してください。 6年前に閉鎖されました。 私はかつてウォーターフォールの方法論で働いていましたが、今ではアジャイルの方法論に従っているチームにいます。彼らはそれを間違っているようです。たとえば、1日25分以上続くスタンドアップがあり、これは非常に面倒です。さらに、私は他の何よりも自分の給料を経営陣に正当化しているように感じます。 このように感じるのは間違っていますか?これは通常、スタンドアップが行われている方法ですか?

7
圧倒的なコードを管理可能なチャンクに分解する最良の方法は?
特定のレベルの複雑さに達すると、大規模なプロジェクトに絶えず圧倒されます。プロジェクトの特定のポイントに達すると、進行が遅くなり、絶えずステップをたどり、あらゆる種類の混乱を整理します。 私のこの弱さのために、リファクタリングが本当に上手になりました。そして、私は常にオブジェクトをより小さく管理しやすいものに分解しようとしています。この弱点のために、物事を適切に設計することにあまりにも注意を払うことになりました。 問題を小さな問題に分解できれば、スムーズに達成できると思います。頭に浮かぶ戦略の1つは、テスト駆動開発です。他に何ができますか?

2
スクラムには、防衛契約にメリットがありますか?
昨日、ウォータークーラーで耳にした:「スクラムには防衛契約の場がありません。」 私はスクラムが多くのシナリオで機能するように調整できると信じているという意味で意見が合わない傾向があり、防衛がそれらの1つであることがわかります。これは私の同僚の間でかなりの議論を巻き起こしました(私たちの多くは防衛契約で働いています)。 これを適切な質問にするには:防衛契約の状況でスクラムを使用した人(または使用経験がある人)はいますか?何がうまくいったのか、何がうまくいかなかったのか、バニラスクラムの変更(もしあれば)をしましたか?

5
構造の悪いソフトウェア開発モデルを克服するにはどうすればよいですか?
私は現在、新入生として働いている会社に入社しました。GISソフトウェア開発の熟練者の数が限られているため、私もその中の1人だったので、プロジェクトマネージャーとして直接採用されました。 私はJavaとGISにかなり精通しており、ロケーションベースのサービスに関する自発的な研究を行ってきましたが、プロジェクト管理や構造化ソフトウェア開発は行っていません。地質学の専門家として卒業してから1年後、前年は大学の学者として働いていました。 仕事に興味を持っていたおかげで、機会が現れ、最終的には会社のビジネスインテリジェンス部門の責任者にもなりました。会社は私を信じていました。私自身はデータウェアハウジングとBIの概念を学び、GISとBIを組み合わせることにも成功しました。 また、私は現在、C#WPFのBIツールで2人の開発者と協力しています。 アジャイルプロジェクト管理で優れたソフトウェア開発手法を採用しようと非常に懸命に努力しましたが、あまり成功しませんでした。また、製品に関する限り、適切に設計されたコードを信じていますが、CEOの技術的知識の欠如(私のすぐ上にいる)のため、通常、それを行うのに必要な時間は得られません。特定のコーディング言語全体(たとえば、JavaではなくWPF)に関する専門知識が不足しているため、所要時間は大幅に短縮されます。また、同様にバージョン管理システムもありません。 私は物事が構造化されていないため、物事の進行方法に非常にうんざりしており、物事を構造化する方法について働くことよりも、ほとんどの時間を考えています。プロフェッショナルな経験のある皆さんがこの状況を克服するのを手伝ってくれることを願っています。

1
「電車」ベースの開発とは?
開発方法論の別の新しい用語に出くわしましたが、その定義を見つけることができませんでした。具体的には、「電車ベースの開発」と呼ばれています。 ここに私がこの用語を見た場所のいくつかの例があります。 今週の初めに、私はエンジニアリングリーダーとリリースマネージャーにWindows MetroバージョンのFirefoxを廃止するよう依頼しました。(ジョナサン・ナイチンゲール) https://blog.mozilla.org/futurereleases/2014/03/14/metro/ MozillaのキャリアWebサイトから: アジャイル開発方法論とトレーニングベースの開発/ QAチームの両方での作業経験。 Mozillaのコンテキストだけでなく、以前に「トレーニング」について聞いたことがあります。しかし、ネット上でそれに関する良い情報を見つけることができませんでした。 「電車ベースのソフトウェア開発」をググると、検索結果にほとんど情報が見つかりませんでした。列車をワゴンから分離するために私が掘り出すことができる最も近いのは、「列車」はスケジュールに従って定期的にリリースすることです。しかし、「電車」は一種の具体的なQA設定のようでもあります。 では、「電車ベースの開発」とは何でしょうか?

4
基盤と見なすことができるソフトウェア開発方法論
私はソフトウェア開発方法論を含む小さな研究論文を書いています。私は利用可能なすべての方法論を調べていましたが、すべての方法論から、他の方法の基礎を提供しているものはあるのでしょうか。 例として、 アジャイル、プロトタイピング、クリーンルーム、反復、RAD、RUP、スパイラル、ウォーターフォール、XP、リーン、スクラム、Vモデル、TDDの方法論を見てみましょう。 私たちはそれを言うことができます: プロトタイピング、反復、スパイラル、ウォーターフォールは他のものの「基礎」です? それとも「基礎」などはなく、それぞれの方法論には独自の歴史がありますか? もちろん、私は自分の論文ですべての方法論について説明したいと思いますが、それを行う時間がないので、どの方法論を代表として見ることができるかを知りたいのです。

3
低レベルのコンポーネントでTDDを実行することは良い考えですか?
低レベルのドライバーまたはOSコンポーネント/カーネルの作成を検討しています。 osdev.orgの人々は、重要なビットが有意義にこの方法をテスト可能されていないことを考えているようだが、私は人々が異なったと思ったいくつかの議論を読んだことがあります。私は見回しましたが、低レベルコンポーネントのTDDの実際の例を見つけることができませんでした。 これは実際に人々が行うことですか、それとも実際にはそれを行う良い方法がないために理論的に人々が話していることですか?

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