我们已经开发了一种用于薪资处理的产品。我们有使用这个软件产品的10+客户。
我们现有的和新的客户正在给我们定制更改w.r.t。他们的需求,现在我们正面临着产品管理的问题。请给我们一些指导。
如何为多个客户管理单一的软件产品?
软件开发细节:
前端工具: Visual 2008 (ASP.net web应用程序)
源代码管理:可视源安全(VSS)
后端: Server 2005
队员: 12人
发布于 2013-02-13 11:53:05
在我的经验中,客户需要的更改将分为4类:
对于1,对核心产品进行修改,并向所有客户发布一个更新版本(开发该产品会获得报酬,并在未来获得良好的信誉)。
对于第二,做一个商业决定,如果有价值,是否有足够的价值来产生更多的销售,使它值得,如果是的话,在核心产品作出改变。
对于3,创建某种插件系统,您可以为特定客户创建一个自定义外接程序组件。
对于第四个,我建议你不要这样做。
发布于 2013-02-13 12:21:41
从根本上讲,有两种方法可以解决这个问题:
前者的问题是协调来自不同客户的相互冲突的需求,而后者的问题是,您现在支持每个客户端的产品,并且随着时间的推移,事情会分道扬镳。在这两种情况下,您都希望有管理每个客户端的特定配置数据的机制。
我个人的观点是(没有更多的细节),几乎可以肯定的是,处理单个应用程序会更好--当然,我在多客户端web应用程序中的功能切换方面取得了合理的成功,但保持跟踪是一项挑战。
从您的工具集来看,ASP.NET中对主题的支持是合理的,插件系统也有很大的空间--但是您应该考虑更新工具,特别是获得一个更可靠/更有能力的版本控制系统。
发布于 2013-02-13 11:51:56
在这样的应用程序中,明智的做法是将代码分为泛型部分(数据库驱动程序、小部件库)和描述这些泛型部件的具体实现的配置部分。我将努力保持动态部分尽可能小,并尽可能多地重用。每个客户都有一个联合通用部件和一个自定义配置部分。如果需要对基本基础结构进行任何更改,这些更改也可以应用于其他客户。
实际上,您可以将软件分成两个存储库,一个用于通用部分,另一个用于配置部分,最后一个库对于每个客户来说都是唯一的。
https://softwareengineering.stackexchange.com/questions/186947
复制相似问题