在过去的一两年中,我的组织已经开始逐渐重新将自己重新定为面向产品的业务模型和更面向合同的业务模型。在过去的一年中,我被转移到新的合同业务中,以帮助爆发大火和填写订单。虽然整个一年是有利可图的(因此,至少有一项措施,成功的一年,我们进行了几个项目,这些项目确实在6月左右的一年中真正削弱了我们的数字。

我在圣诞节假期前与我的经理交谈,他提到,虽然他不喜欢“验尸”一词(我不知道该术语有什么问题,但那里的任何商人或经理都知道吗?) ,他确实想在1月中旬某个时候举行会议,整个合同小组将审查这一年,并试图弄清楚什么是正确的,出了什么问题以及我们可以执行的倡议来提高盈利能力。

由于各种原因(如果需要的话,我会更详细地详细介绍),我相信我们的团队,实际上是整个组织的一件事是某种形式的有组织的代码共享。不同的人一次又一次地完成了同样的事情,他们最终以不同的方式完成(并打破)。我想至少建立一个存储库,人们可以在其中抓取执行特定任务的代码,并在自己的项目中包含(或真实地,复制/粘贴)。

我应该为一个至少10-12个全日制开发人员团队提供什么可行的通用资源存储库,以及从临时借给合同组进行专业工作的5-50(非常)兼职开发人员的任何地方?

答案需要一些文化信息,以便在合理的答案中有任何机会,因此我将在这里提供有关该主题的一些想法:

  1. 开发人员不会被迫使用此存储库。进入障碍必须尽可能低才能鼓励参与,否则将被忽略。 可悲的是,这意味着需要安装和运行其他软件客户端的任何东西都可能会失败。 ClickOnce部署大约是我们所能获得的,这是非常算是的。
  2. 我们是一家规避风险的Microsoft商店。 我也许可以出售开源解决方案,但会怀疑它们。所有开发人员都有VSS,公司董事宣布VSTS并不可行。如果设置不太困难,并且许可证是自由的,那么我仍然可以尝试将VSTS服务器纳入实验室。
  3. 我的一些DEV同伴关心编写质量,可靠的软件,有些则不关心。 我想保护那些关心的人撰写的任何共享代码,从那些不关心的人那里。共同的配置管理实践(例如,在进行处理时检查代码)完全被合同团队中至少五分之一的同事所忽略。
  4. 我们在编写过程中比关注它们更好。 我几乎必须有某种形式的书面过程才能将其出售给我的经理。我相信,它必须轻巧,灵活和强制执行,因为我的经理是唯一会读过它的人。
  5. 不要假设最佳实践。 我非常想包括在常见代码上强制使用静态分析工具(FXCOP,STYLECOP)之类的内容。但是,这提高了标准,因为目前没有以一致的方式执行此类实践。

我很乐意提供任何其他要求的信息。 :)

编辑:(回答问题)

也许收缩不是正确的术语。我们绝对拥有自己的代码资产。纸上业务模型的重要组成部分(尽管没有,实际上还没有)我们拥有我们编写的代码/项目,并且可以将其重新销售给其他客户。我们的项目通常采用向公司众多现有软件产品之一添加一些特殊功能的形式。

有帮助吗?

解决方案

从声音中,您可以在“验尸后”中提供一些解决方案的机会。我将创建概述您的想法的演示文稿,并在这次会议上介绍它们。在此之前,我建议您设置一些解决方案并在演示过程中证明它。有些事情要做 -

  1. 基于组件的编程(良好的阅读是) 编程.NET组件 - Jubal Lowy)。提倡干燥(不要重复自己)编码原则。

  2. 在您的存储库中为所有可重复使用的代码库设置一个中心的共同位置。这应该具有可重复使用的代码库的参考实现。

  3. 通过为常见方案提供项目模板,可以使人们轻松使用您的代码库,并使用已经烤制的代码库来使用。这样一来,您的同事将拥有一个一致的模板可供工作。您可以利用VS.NET项目模板功能来为此 - 查看以下链接 VSX项目系统(VS.NET 2008), 有关创建项目模板的代码项目文章

  4. 使用像MSBuild(在VS2005及以上捆绑在一起)这样的构建自动化工具,仅复制特定项目所需的组件。在IDE中制作构建设置的这一部分(vs.net 2005及以上的方式有使用MSBUILD设置前编译和后编译后任务的漂亮方法)

  5. 我知道开源解决方案有阻力,但我仍然建议设置并使用连续自动化系统 cruisecontrol.net 因此,您可以利用它来定期从维护可重复使用的代码库的中央存储库进行编译和测试。这样,可以快速检查对代码库的任何更改,以确保它不会破坏任何内容,也有助于引发各种项目的版本问题。

如果您可以将其设置在机器上,并在验尸后将其显示为可以改进的步骤的一部分,那么您应该更好地购买,因为您正在显示一些可以轻松扩展的工作。

希望这对您的福音派有所帮助,祝您好运:-)

我最近遇到了这套框架 查克·诺里斯(Chuck Norris)框架 - 它们可在Nuget上使用 http://nuget.org/packages/chucknorris 。您绝对应该检查它们,因为它们为您的ASP.NET项目提供了一些不错的模板。也绝对结帐 nuget.

其他提示

按主题组织,需要单位测试(功能级)以入住/接受库;添加Wiki来解释什么/原因和搜索

一个问题:您说这是一个咨询小组。您有什么代码资产?我认为您的大多数团队的编码工作将由您的客户拥有,这是您租用合同的一部分。如果您要这样做,您需要绝对确定您的合同赋予您员工工作的权利。

Maven已解决了Java社区中的代码重复使用 - 您应该去检查一下。

我有一个.NET开发人员,该开发人员设计了类似于.NET组件的内部用途的东西。由于没有可比的.NET Internet社区,因此此工具将仅在我们的公司网络中访问内部存储库。否则,将像Maven一样工作。

Maven确实可以直接用于管理.NET组件(我们将其与FLEX .SWF和.SWC代码模块一起使用)只是.NET FOLK必须使用Java工具来克服,并且可能必须将Maven插件写入驱动MSBUILD。

首先,对于代码组织,请查看Microsoft Framework Design GuideLine at http://msdn.microsoft.com/en-us/library/ms229042.aspx 然后为您要创建的新框架创建中央位置源控件。设置一些默认的名称空间,用于清洁分离的组件,并确保每个人每天都有构建。

只是另一点,因为我们在商店中也有“共享代码”。

我们发现这是一个非常 包装问题:
无论您使用的是什么代码或使用的工具,您应该拥有的是 常见的 构建能够 包裹 您的源源成“交付组件”,所有用来实际执行代码的所有内容,还可以执行文档(压缩)和源(压缩)。

拥有这样的“送货包单元”的主要兴趣是 作为 较少的 文件尽可能部署, ,为了简化这些单元的下载。

构建过程可以很好地由Maven或您想要的任何其他(Ant/Nant)工具来管理。

当某些审计团队想检查我们的所有项目时,我们只是在他们的帖子上部署了与生产计算机部署的相同软件包的部署,只是他们将未压制源文件并完成工作。

由于我们的源文件还包括编译它们所需的任何文件(例如 日食文件),他们甚至可以在其开发环境中重新编译这些项目)。


那样:

  1. 开发人员不会被迫使用此存储库。进入障碍必须尽可能低才能鼓励参与,否则将被忽略: :这只是执行的脚本,可以使用其中的所有内容获得“交付模块”(Maven存储库也可以为此使用)

  2. 我们是一家规避风险的Microsoft商店: :您可以使用所需的任何存储库

  3. 我的一些人关心编写质量,可靠的软件,有些不关心: :这与这些软件包模块中编写的代码质量无关

  4. 我们在编写过程中比关注它们更好: :涉及的唯一过程是包装过程,并且可以自动化

  5. 不要假设最佳实践: :在包装可执行文件和源文件之前,您没有被迫应用任何类型的静态代码分析。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top