在工作中,我们有一个用PL/ 10g编写的软件,它以Java Applet的形式运行该软件。
我的公司购买了这个软件,我们不得不开发这个软件,但是我们觉得Oracle Forms 10g技术和Java已经过时了。这是过去十年的一项技术,我们必须将软件转移到不同的平台(即。( Web或其他平台)。
这是个好主意还是坏主意?为什么?
发布于 2011-09-03 23:01:57
除非你给出你对当前解决方案不满意的技术理由,除非你评估重写的经济方面,否则你将得到的只是基于个人喜好的意见。这是,不用说,一般情况下,商业决策不应该建立在什么基础上。
编辑:详细说明已经说过的内容,通常重写的决定过程如下(按这个顺序):
1.目前的解决办法有什么问题?有什么真正的问题吗?表演?客户要求不同的功能来实现,如果可能的话?或者你只是不满意/厌倦了当前的技术(这通常是技术人员想要使用新技术的情况)。
2.目前的解决办法“取决于”什么?专有技术?除了B语言(你想重写它)之外,还有其他的替代方法吗?是否有可能对代码基进行相当直接的重写,或者大部分代码需要不同的结构(从体系结构的角度来看)。
3.现任工作人员是否熟悉B语言?如果没有,公司所在地区是否有足够的可用员工?B语言的商业支持--它存在吗?(长期项目不要依赖志愿者社区,他们会随着兴趣的变化而从一种技术转向另一种技术。比如说20年的应用寿命,你需要坚实的商业支持基础。)
4.有多少客户依赖于目前的解决方案?你的费用,他们的转移(你必须提供技术支持)的新解决方案?向那些没有升级的人提供支助多少年的费用?
5.对整件事的财务分析(最好是由管理阶层的人来做;把这当作一个事实,即如果有一件事他们很重视,并且知道如何估算它的成本)。
我故意回避这里的细节,因为你没有在你的问题中给出很多细节。还有可能还有更多我忘了提到的..。但已经是凌晨2点了,我开始.zzz <--困倦
发布于 2011-09-04 00:36:32
虽然我同意所有其他程序员的观点,但我也需要为这种情况介绍一些不那么具体但却很重要的方面。软件开发是一门相对较年轻的学科,它变化很快,非常快。你的开发团队平均年龄是多少? 45岁?想象一下雇佣大学毕业生来做你的工作,你预见到什么困难吗?您当前的堆栈是否有利于快速开发和较短的迭代周期?你有单元测试和集成测试吗?甚至可以在Oracle窗体中使用它们吗?你的开发团队是否很兴奋(不是狂妄自大和/或疯狂的西方观念)来工作和增强系统?此时,您比初始阶段更了解您的系统和基本需求。你还会和你现在的堆栈一起吗?现在是否有更好的工具和产品,以更加经济和务实的方式实现你所需要的?
这只是一种思考的食物。如果你真的开始重写,那就帮你自己一个忙:尽量让它迭代,抵制“大爆炸”的方法。我是凭经验说话的。
发布于 2011-09-04 00:14:10
一般来说,最好避免基于感情做出这样的决定。仅仅因为技术陈旧并不意味着它应该被取代。旧技术往往是已被证实的技术。这个问题通常归结为所涉及的成本。
您需要确定现有解决方案存在哪些问题,以及这会给业务造成多大的损失。您需要确定重写它的成本。比较两者,并利用它来帮助你做出决定。(请注意,并不是所有的成本都是以金钱为单位的,或者是可以很容易地量化的。因此,这并不是一个简单的比较。)
重写软件往往要花费更长的时间,而且成本比实际预期的要高。而且,也不能保证它实际上会比现有的解决方案更好。不要相信我的话,乔尔斯波斯基在博客上写了为什么从头开始重写软件是一个错误。很久以前。
因此,如果可能的话,应该采取渐进的办法。与其把整件事擦掉,然后重新开始,不如慢慢地做些改变,把解决方案一片片地迁移到新的技术上。
https://softwareengineering.stackexchange.com/questions/105681
复制相似问题