2009-05-06 58 views
5

一个常见的组件是一个库或一些由一个组创建和维护并被许多组使用的代码。贵组织如何处理常见组件?

我们有一些问题是:

  • 用户不报告与组件的问题。
  • 用户可以根据自己的需求构建解决方案。
  • 他们打破了与中继版本的兼容性,以满足他们的期限。
  • 用户最终编写自己的(不太强大的)解决方案,因为他们认为它更好。

您的组织如何处理常见组件?

想法,我有:

  • 像对待一个开源项目的组成部分,并要求团队提交补丁。
  • 完全禁止对代码进行自定义修改。
  • ...

回答

2

你在这里可能是一个人为因素问题,而不是技术问题。事实上,它可能主要是一个学习问题(加上典型的不在这里发明的syndrom)。

在大公司工作之后,我意识到新人理解所有可用的资源(即共享代码库)很困难,更不用说如何以及何时正确使用它们。

当你有新的雇员时,他/她是否在你的共同组件库中接受过正式培训?

然后就是人们被奖励的问题。在审核时间,经理会奖励使用通用组件的人员,改进他们并将改进提交给图书馆?或者管理者只是在乎自己的项目。

对于维护公共图书馆的团体,他们会给那些花时间提出或提交改进建议的人提供何种形式或重新定义?他们是否收到公司通讯?获得现金奖励?在bulliten板上获取他们的照片?

请记住,人们不太可能为没有得到认可或奖励的公司做某些事情。

+0

我同意它更可能是一个人的问题。然而,我经常遇到的一个角度是,管理层的任何共同组成部分的成本是合理的,只有这样才能将其看作是没有直接或长期合理收益的费用。 – 2009-05-06 13:02:40

+0

Greg指出,如果管理层看不到价值,你需要认识到从长远来看,你需要传达价值或面对失业。想想你自己的家庭预算,在困难的时候,你会继续支付对你没有价值的服务吗? – JonnyBoats 2009-05-06 13:08:04

1

唯一成功的部分我已经看到了在这里的编译版本,重新分配(* .dll文件)。用户直接向拥有团队报告错误并请求功能,并自行实施它们。有一种方法可以编写自己的插件,以便最有可能改变的东西,因此人们可以在很多情况下扩展功能。

总是存在权衡

  • 说服别人使用你的组件
  • 保持质量的合理水平,同时

不知道什么是最好的事情在你的情况下做,但一般都是尝试自己实现核心逻辑,保持组件可配置/可扩展,以便人们不需要随时更改核心并提供良好的支持。由于某些原因,一些开发人员总是倾向于重新发明轮子,然而这很愚蠢,所以我不会为此担心。

1

一个好方法是定期进行代码评审。在这些过程中,如果你发现重新发明了一个轮子,你可以利用这个机会来教育开发人员使用通用组件,或者为什么他们觉得需要重新创建它并将它们推向原始代码。通过这种方式,每个人都可以提出要求并改进组件。

1

对待他们的方式与第三方库相同。我甚至不会让其他团队看到消息来源 - 这样做会导致大量时间浪费的批评和反咬。

2

我们正试图转向更多基于服务的系统,以便如果我们为一个项目创建特定功能,则可以通过Web服务从另一个项目使用它。这样只有一个代码实例。

当然,这对某些类型的组件(例如:我们最近创建的PDF创建服务)比其他类型(对于字符串操作实用程序可能矫枉过正)更好。

1

该组织有多大?我已经看到,在一个小型组织(几十名程序员总数)中,这些数据处理得非常好,其中一个或两个人对每个组件拥有所有权,并且对功能请求作出响应。

很容易扬长而去到某人的办公室(或邮寄),说明你需要什么,并获得一个:

  • 预期的方式做你想做的,
  • 协议添加需要的要素(或直接奴才这样做),
  • 许可实施中常见的组件所需的功能,

比它只是发射到写作的解决方法,开始叉子,或编写一个等效的新组件。如果你的程序员聪明,他们会做他们认为最简单的事情。诀窍是确保这是正确的。

除了像链表之类的非常简单的东西之外,还没有一大堆车轮改造正在进行。对于特定的产品,很少有私人分支,通常是通过切断东西来减少代码大小。但通常的做法是修改原始组件以获得更多构建选项。