在过去的一两年里,我的组织已经开始慢慢地将自己重新定位为较少以产品为导向的商业模式和更多以合同为导向的商业模式。在过去的一年里,我被转移到新的承包业务中,以帮助扑灭火灾并完成订单。虽然这一年全年都是盈利的(因此,至少从一个衡量标准来看,它是成功的,但我们有几个项目确实在 6 月左右为我们的一年带来了数字。
我在圣诞节假期前和我的经理谈过,他提到了这一点,虽然他不喜欢“事后分析”这个词(我不知道这个词有什么问题,那里的任何商业人士或经理都知道吗?) ,他确实想在 1 月中旬的某个时候召开一次会议,整个合同小组将在会上回顾这一年,并试图弄清楚什么是正确的,什么是错误的,以及我们可以采取哪些措施来提高盈利能力。
出于各种原因(如果需要,我会更详细地介绍),我相信我们的团队乃至整个组织将从中受益的一件事是某种形式的有组织的代码共享。同样的事情由不同的人一次又一次地完成,他们最终以不同的方式完成(和破坏)。我想至少建立一个存储库,人们可以在其中获取执行特定任务的代码,并将该代码包含(或者,实际上是复制/粘贴)他们自己的项目中。
我应该为至少 10-12 名全职开发人员以及临时借给合同组从事专业工作的 5-50 名(非常)兼职开发人员的团队提供一个可行的公共源存储库,我应该提出什么建议?
答案需要一些文化信息才能获得合理的答案,因此我将在此处提供它,以及我对该主题的一些想法:
- 开发人员不会被迫使用此存储库。进入门槛必须尽可能低以鼓励参与,否则将被忽略。 可悲的是,这意味着任何需要安装和运行附加软件客户端的东西都可能会失败。ClickOnce 部署几乎是我们所能得到的,这是非常不确定的。
- 我们是规避风险的微软商店。 我也许可以销售开源解决方案,但他们会受到怀疑。所有的开发者都有 VSS,公司总监已经宣布 VSTS 在未来是不可行的。如果设置不是太困难并且许可证是自由的,我仍然可以尝试将 VSTS 服务器忍者进入实验室。
- 我的一些开发伙伴关心编写质量、可靠的软件,有些则不关心。 我想保护那些关心那些不关心的人编写的任何共享代码。合同团队中至少五分之一的同事完全忽略了常见的配置管理实践(例如在处理代码时检查代码)。
- 我们更擅长编写流程而不是遵循它们。 我几乎必须有某种形式的书面流程才能将其出售给我的经理。我相信它必须是轻量级的、灵活的,并且由工具强制执行才能远程相关,因为我的经理是唯一会阅读它的人。
- 不要假设最佳实践。 我非常希望包含强制代码审查之类的内容,以强制在公共代码上使用静态分析工具(FxCop、StyleCop)。然而,这提高了标准,因为目前没有以一致的方式执行此类做法。
我很乐意提供任何其他要求的信息。:)
编辑:(回答问题)
也许承包不是正确的术语。我们绝对拥有自己的代码资产。纸面上的商业模式的一个重要部分(尽管实际上还没有)是我们拥有我们编写的代码/项目,我们可以将它们转售给其他客户。我们的项目通常采用向公司众多现有软件产品之一添加一些特殊功能的形式。