再利用可能なコードライブラリ組織に何を提案すればよいですか?

StackOverflow https://stackoverflow.com/questions/392587

  •  23-08-2019
  •  | 
  •  

質問

私の組織は、過去1〜2年にわたって、製品指向のビジネスモデルとより契約指向のビジネスモデルにゆっくりと再利用し始めました。過去1年間、私は新しい契約事業に移り、火を消し、注文を埋めるのを支援しました。年全体は収益性が高くなりましたが(したがって、少なくとも1つの尺度で成功しましたが、6月頃にその年の数を実際に描いたプロジェクトがいくつかありました。

私はクリスマスの休日の前にマネージャーと話をしていましたが、彼は「死後」という用語が気に入らないが、その用語の何が悪いのかわからない、ビジネスの人々やマネージャーは知っている?) 、彼は1月中旬に会議を開催したいと思っていました。そこでは、契約グループ全体が年をレビューし、何が正しく、何がうまくいかなかったのか、収益性を向上させるために実行できるイニシアチブを見つけようとしました。

さまざまな理由で(リクエストがあれば詳細に説明します)、私たちのチーム、そして実際に組織全体が何らかの形で組織化されたコードシェアリングの恩恵を受けることの1つは、同じことが異なる人々によって何度も何度も成し遂げられ、彼らはさまざまな方法で成し遂げられます(そして壊れています)。少なくとも、特定のタスクを実行し、そのコードを自分のプロジェクトにコードする(または現実的にコピー/貼り付ける)コードを入手できるリポジトリを少なくとも確立したいと思います。

少なくとも10〜12人のフルタイム開発者のチームのための実行可能な共通ソースリポジトリとして、さらに専門作業のために契約グループに一時的に貸し出される5〜50(非常に)パートタイム開発者として提案すべきことは何ですか?

答えには、合理的な答えでいくつかの文化的情報が必要でしたので、このトピックに関する私の考えのいくつかとともに、ここでそれを提供します。

  1. 開発者はこのリポジトリの使用を強制されません。参加を促進するために、入場障壁はできるだけ低くなければならないか、無視されます。 悲しいことに、これは、追加のソフトウェアクライアントをインストールして実行する必要があるものはすべて失敗する可能性が高いことを意味します。 ClickOnce Deploymentは私たちが得ることができる限り近くにあり、それは非常に不明瞭です。
  2. 私たちはリスク回避のマイクロソフトショップです。 私はオープンソースソリューションを販売できるかもしれませんが、彼らは疑いを持って見られます。すべての開発者にはVSSがあり、コーポレートディレクターは、VSTが今後実行可能ではないと宣言しています。セットアップがそれほど難しくなく、ライセンスがリベラルである場合でも、VSTSサーバーをラボにNinjaにしようとすることができます。
  3. 私の仲間の開発者の中には、品質の信頼できるソフトウェアの書き込みに関心がある人もいます。 そうでない人から気にかけている人によって書かれた共有コードを保護したいと思います。一般的な構成管理プラクティス(作業中にコードをチェックアウトするなど)は、契約チームの少なくとも5分の5の同僚によって完全に無視されます。
  4. 私たちは、プロセスをフォローするよりも書くのが上手です。 これをマネージャーに販売できるようにするには、何らかの形の書面によるプロセスが必要です。私のマネージャーがそれを読む唯一の人であるため、それは軽量で柔軟で、ツールによってリモートに関連するように施行されなければならないと思います。
  5. ベストプラクティスを想定しないでください。 一般的なコードで静的分析ツール(FXCOP、StyleCop)の使用を実施するために、必須のコードレビューなどを含めたいと思います。ただし、このようなプラクティスは現在一貫した方法で実行されていないため、これはバーを上げます。

追加の要求された情報を提供させていただきます。 :)

編集:(質問への応答)

おそらく契約は正しい用語ではありません。私たちは独自のコード資産を絶対に所有しています。紙のビジネスモデルの重要な部分(実際にはまだそうではありませんが)は、私たちが書いたコード/プロジェクトを所有しており、他の顧客に再販売できることです。私たちのプロジェクトは通常、会社の多くの既存のソフトウェア製品の1つに特別な機能を追加するという形をとっています。

役に立ちましたか?

解決

その音から、「死後」の間にいくつかの解決策を提示する機会があります。私はあなたのアイデアの概要を説明するプレゼンテーションを作成し、この会議でそれらを提示します。その前に、私はあなたがいくつかのソリューションをセットアップし、あなたのプレゼンテーション中にそれを実証することをお勧めします。やるべきこと -

  1. コンポーネントベースのプログラミングを伝道します(適切な読み物です プログラミング.NETコンポーネント-Jubal Lowy)。コーディングのドライ(繰り返さないでください)原則を提唱します。

  2. すべての再利用可能なコードライブラリのリポジトリに中央の共通場所を設定します。これには、再利用可能なコードライブラリの参照実装が必要です。

  3. 一般的なシナリオ用のプロジェクトテンプレートを提供することで、コードライブラリを簡単に使用できるようにします。コードライブラリはすでに焼き付けられています。この方法では、同僚には一貫したテンプレートがあります。 vs.netプロジェクトテンプレート機能をこれに活用できます - 次のリンクをチェックしてください VSXプロジェクトシステム(vs.net 2008), プロジェクトテンプレートの作成に関するコードプロジェクトの記事

  4. MSBuild(VS2005以上にバンドルされている)などのビルドオートメーションツールを使用して、特定のプロジェクトに必要なコンポーネントのみをコピーします。 IDEでビルドセットアップのこの部分を作成します(vs.Net 2005以降には、MSBuildを使用してコンパイル前のタスクとコンパイル後のタスクを設定する気の利いた方法があります)

  5. 私はオープンソースソリューションに抵抗があることを知っていますが、私はまだ、継続的な自動化システムをセットアップして使用することをお勧めします cruisecontrol.net それを活用して、再利用可能なコードライブラリが維持されている中央リポジトリから定期的にプロジェクトをコンパイルしてテストできるようにします。これにより、コードライブラリの変更をすばやく確認して、何も壊れないことを確認できます。また、さまざまなプロジェクトでバージョンの問題を引き出すのにも役立ちます。

これをマシンにセットアップし、改善するために取ることができる手順の一部として死後の間に表示できる場合は、既に機能しているものを簡単に拡大できるものを表示しているので、より良い購入を得る必要があります。

これがあなたの伝道に役立ち、幸運を祈ります:-)

私は最近呼ばれるこの一連のフレームワークに出会いました チャック・ノリスのフレームワーク - nugetで利用できます http://nuget.org/packages/chucknorris 。彼らはあなたのASP.NETプロジェクトにいくつかの素晴らしいテンプレートを持っているので、あなたは間違いなくそれらをチェックする必要があります。また、間違いなくチェックアウト ヌゲット.

他のヒント

トピックごとに整理し、ライブラリへのチェックイン/受け入れのためにユニットテスト(機能レベル)が必要です。 Wikiを追加して、何/理由を説明し、検索するために

1つの質問:これはコンサルティンググループだと言います。どのコード資産がありますか?あなたのチームのコーディングの取り組みのほとんどは、あなたの雇用契約の一環としてあなたのクライアントが所有すると思います。これを行う場合は、契約が従業員の仕事に権利を付与することを絶対に確認する必要があります。

MavenはJavaコミュニティでコードの再利用を解決しました - あなたはそれをチェックしに行くべきです。

.NETアセンブリの内部使用のために同様の何かを考案した.NET開発者がいます。同等の.NETインターネットコミュニティはないため、このツールはコーポレートネットワークの内部リポジトリにアクセスするだけです。それ以外の場合は、Mavenのように機能します。

Mavenは、.NETアセンブリを直接管理するために実際に使用できます(Flex .swfおよび.swcコードモジュールで使用します)。 MSBUILDをドライブします。

まず第一に、コード組織のためにMicrosoft Framework Design Guidelinesをチェックしてください http://msdn.microsoft.com/en-us/library/ms229042.aspx そして、あなたが作成する新しいフレームワークの中央のロケーションソースコントロールを作成します。いくつかのデフォルトの名前空間、クリーンな分離用のアセンブリを設定し、全員が毎日ビルドを取得するようにします。

私のショップにも「共有コード」があるので、追加のポイントです。

これは非常に多くのことがわかりました パッケージングの問題:
使用しているコードや使用しているツールが何であれ、あなたが持つべきものは 一般 できるツールを構築します パッケージ ソースは「配信コンポーネント」になり、すべてが実際にコードを実行するために使用されるだけでなく、ドキュメント(圧縮)とソース(圧縮)も使用されます。

そのような「配達パッケージユニット」を持つことへの主な関心は、 なので 以下 可能な限り展開するファイル, 、これらのユニットのダウンロードを容易にするため。

ビルドプロセスは、Mavenまたは必要な他の(ANT/NANT)ツールによって非常にうまく管理できます。

一部の監査チームがすべてのプロジェクトを調査したい場合は、ソースファイルを圧縮して作業を行うことを除いて、生産マシンに展開するのと同じパッケージを投稿に展開するだけです。

ソースファイルには、それらをコンパイルするために必要なファイルも含まれているためです(たとえば、 Eclipseファイル)、彼らは開発環境でそれらのプロジェクトを再互換することさえできます)。


そうすれば:

  1. 開発者はこのリポジトリの使用を強制されません。参加を促進するために、入場障壁はできるだけ低くなければならないか、無視されます: :これは、必要なものすべてを使用して「配信モジュール」を取得するために実行する単なるスクリプトです(Mavenリポジトリも使用できます)

  2. 私たちはリスク回避のマイクロソフトショップです: :必要なリポジトリを使用できます

  3. 私の仲間の開発者の中には、品質、信頼できるソフトウェアの書き込みに関心のある人もいます。: :これは、これらのパッケージモジュールに記述されているコードの品質とは何の関係もありません

  4. 私たちは、プロセスをフォローするよりも書くのが上手です: :これに関係する唯一のプロセスはパッケージングプロセスであり、かなり自動化できます

  5. ベストプラクティスを想定しないでください: :実行可能ファイルとソースファイルをパッケージ化する前に、いかなる種類の静的コード分析を適用することを余儀なくされていません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top