我正在与我现在的雇主处理一个问题,这个问题严重地让我考虑在其他地方找工作.它们的印象是100%的自定义开发应该被淘汰并替换为COTS产品,例如SharePoint.虽然我意识到这不是一个现实的期望,但我发现不可能与管理层中的人分享这些观点.他们的论点通常涉及SharePoint中已存在的功能,其中包含功能X,因此涉及的风险较小,并且不必对其进行测试.
举个例子,我们的情况是SharePoint列表完全无法满足客户的期望和要求.但是,将此数据保存在SQL数据库中很容易满足要求.然而,只要我们的开发团队建议超出SharePoint的界限,管理层就会对每行代码如何增加项目的复杂性并增加风险感到震惊.虽然在某些情况下肯定是这样,但情况并非总是如此.然而,他们的论点是,由于SharePoint提供了一种存储数据的机制,我们应该100%使用它.无论是否满足客户要求.
我已经到了我讨厌上班的地步,因为我经常被迫做我认识的事情(100%肯定)是不对的,这可以通过定制开发来做到.然而,这似乎是我工作的一个不可能的论点.
你们有没有遇到过类似的情况?如果是这样,你做了什么来应对这些挑战?
我在一家拥有大量SAP投资的公司工作,我们还拥有数十个大型.NET系统(主要是内部用于工程系统)和Java平台(主要用于外部Web应用程序).因此,我们在ABAP,C#和Java EE上拥有大型开发工作室.
简而言之,我们需要一种更好的方法来确定何时应该使用Commercial,Off The Shelf(COTS)软件,何时应该利用我们自己的开发人员.
我想根据最佳实践构建一个决策树来帮助解决这个问题.
在最高级别,杰夫阿特伍德的相关职位总结得很好:最佳代码根本就没有代码
更深一点,我希望看到如下标准:
COTS系统是否可以满足大多数要求?(如果是,COTS系统可能是一个不错的选择:(避免重新发明轮子))
该系统是否旨在满足核心业务职能/创造竞争优势?(如果是这样,定制开发可能是一个不错的选择:见Joel Sposky的:为未发明的这里的综合症辩护)
自定义应用程序与COTS产品的TCO是多少?
是否存在自定义开发无法满足的时间限制?(如果是,COTS系统可能是一个不错的选择)
我(相当小)的公司开发了一个流行的Windows应用程序,但我们一直在努力的一件事就是测试 - 它经常只是由开发人员在类似于他们开发的系统上进行测试,并且当推送更新时对于客户来说,由于Windows补丁的一些奇怪的功能,或者在某些偏执的防病毒应用程序(我看着你,Comodo和卡巴斯基!)的情况下,我们的基础部分会遇到问题,它们会假的 - 我们的应用程序的积极性.
我们对70%的用户使用进行了手动测试,但这种测试既缓慢又痛苦,有时并不像应有的那样完整.管理层坚持认为我们需要做得更好,但是在发布时他们会继续解决这个问题(测试会花费多长时间?只需推出它,我们就会向遇到问题的客户发布补丁!).
我想设计一个更好的使用虚拟机自动化测试系统,但可以使用一些关于如何实现它的想法,或者如果有一个COTS产品,任何建议都会很棒.我正在一起攻击一个"运行"我们产品的每个功能的Python脚本,但我不确定如果我们遇到Windows崩溃(除了检查它是否仍在进程列表中)之后如何进行测试,或者更糟糕的是,如果Comodo因为一些愚蠢的原因而举报它.
为了最好地模拟测试环境,我试图让VM尽可能"纯粹",并且不会在操作系统和防病毒软件以及一些常见应用程序(Acrobat Reader,Firefox等)之外加载大量垃圾.
任何想法将非常感谢!