很久以前,当我的公司规模小得多时,将开发工作分配给团队非常容易:
- “应用程序”团队开发了特定于应用程序的逻辑,通常需要深入了解特定行业问题)
- “通用”团队开发了所有应用程序通用/通用的部分(用户界面相关的东西,数据库访问,低级 Windows 的东西,......)
多年来,团队之间的界限变得模糊:
- “应用程序”团队经常使用“通用”部分编写特定于应用程序的功能,因此他们没有要求“通用”团队为他们编写该部分,而是自己编写以加快开发速度;然后将其捐赠给“通用”团队
- “通用”团队的重点似乎更“面向维护”。所有“非常通用”的代码都已经编写好了,因此不需要在其中进行新的开发,但是它们必须不断地支持应用程序团队提供的所有功能。
所有这些似乎都表明,在团队中进行这种拆分不再是一个好主意。也许“通用”团队应该演变成“软件质量”团队(定义和保护编写优质软件的规则),或者演变成“软件部署”团队(定义软件应该如何部署、安装……) .
如果您有不同的应用程序,您如何将工作分配到不同的团队中?
- 每个人都可以编写通用代码并将其捐赠给中央“通用”团队吗?
- 每个人都可以编写通用代码,但没有人“管理”这个通用代码(每个人都是所有者)
- 通用代码仅由“通用”团队编写,应用程序必须等到“通用”团队交付通用部分(通过库,通过 DLL)
- 不同应用程序之间的代码没有重叠
- 其他方式?
请注意,混合的好处(允许每个人在代码中的任何地方编写)是:
- 代码以更灵活的方式编写
- 调试代码更容易,因为您可以轻松地进入调试器中的“通用”代码
但是最大的(也许是唯一的)缺点是,如果没有明确的团队来管理它,这个通用代码可能会成为任何人的责任。
你的愿景是什么?