“软件危机”一直存在。 软件工程经过30多年的发展,已经取得了不少成绩,但是,就像图书馆里有很多书籍,并不代表我们就有很多知识一样,现在的软件开发公司,仍然面临着很多的问题与挑战。 在这里,我们不讨论解决方案,我们首先来讨论到底存在哪些问题与挑战。 1.经营管理不善。软件工程可能不研究这个课题,但是,软件是工程的结果,而不是生产的结果,人的因素,对软件公司的影响,可能比制造企业更大。软件人员的积极性,主动性,创造性,稳定性等,都会给软件开发带来直接的影响。 2.缺乏软件工程知识或者应用不力。 3.应用本身越来越复杂。这是技术进步和社会发展相互作用的结果。 4.需求不明。应用本身的复杂性是直接的原因。具体分为2类,一类是客户知道要做什么,但表达不清楚,不充分。另一类,客户也不知道需要什么。第二类,可能是更突出的问题。 5.Faster time to market.以前的项目可能做几年,或者1年半载,现在的项目的纳期越来越短,可能就是一两个月。项目的规模越来越大,可能出现的情况是往项目组加人,这给项目管理带来了挑战,同时,交流的成本也更高。 6.技术的不断更新。很多软件或技术,几乎每年都会提出新版,在给开发人员带来学习压力的同时,公司也需要更多的培训成本支出。 7.很多技术同时使用。多层的体系结构,导致很多技术需要同时应用,比如,现在开发WEB应用,同时会用到HTML,html(javascript),HTTP,J2EE等等,而以前可能只要VB,或者只需要PB就可以解决问题了。 8.和遗留系统的接口。企业目前可能已经积累下来很多系统,现在开发的系统需要和原来的系统通信,而这些系统可能和现在使用的技术已有很大的不同。 9.分散开发。以前可能是一个人开发,现在不光是小组开发,而且开发人员可能在不同的地方,带来交流的成本。 我在这里列出目前面临的一些挑战,有一些可能不是问题,还有很多可能没有想到。了解问题,才能解决问题,希望大家讨论。
可惜我现在是廉价劳动力:(,郁闷!
为何特别是外包项目? 应用的复杂有很多因素,比如各种层出不穷的标准、语言、平台,所以有很多工作是围绕在如何协调它们一起运作上面。
订单和开发管理都很重要!!!
做需求时,应尽可能地细化。在实现之前,必须分出重要的、一般的、不重要的需求,或者某些需求在目前技术水平下实现较为困难的,应征求客户意见,达成共识。分阶段实现需求。 别忘记录音,可能的话,录像!
因为外包的项目,从技术上来说,也需要解决你提到的问题,协调标准、语言、平台,跟一般的项目没有两样。 除此以外,还有,就是协调公司间的关系,交流的成本很大,我们现在做的项目,是由很多公司同时做的,可能外包好几次,A给B,C,B给D,E,C又给F,E,如果我们处于F或E的话,那么需要协调的东西就非常多,而且费时间。