首页>>技术前沿>>网站/软件行业动态
成功的软件开发项目实施必备10大因素决定软件开发价格必须提高
作者:西安网站建设 | 原创 来源:西安软件公司 | 时间:2015年2月1日| 点击:0次 | 【评论】

软件开发项目最大的风险一般都是来自于软件开发需求,软件开发需求经常变化不但会造成经常性的返工、代码质量下降,而且沉重打击软件开发人员和客户的信心及士气,这种情况越到后期越严重。虽然说在必要的时候我们完全有理由拒绝客户再进行软件开发需求变更,但是这样做的唯一结果就是项目失败:乙方投资打了水漂、甲方回款非常困难、软件开发人员沮丧及毫无成就感。

那么软件开发需求为什么会变更?当初《软件开发需求说明书》、《系统规格说明书》都是与客户讨论并确认过的。其实我们在这样想的时候就掉进了一个巨大误区,认为客户是知道自己要什么的,至少客户中的关键人物是什么都清楚。但现实情况是很多客户对他们要什么并不清楚,有的只是像一小孩看别人有好玩的玩具自己也想要一个,最后发现做出来的东西与他们像像差距太大的时候就大哭大闹,再加上项目交付期限快到的压力大家一厢情愿认为根据客户不成熟想法随便修改几个软件开发需求应付一下就可以了,最后的结果就是没完没了的修改。

再说即使客户知道他要什么,但他们又有几个对软件开发非常了解呢,即使了解他们是否愿意花很大尽量去分析将要开发的系统?说到底我们不能把项目的核心部分(软件开发需求)寄托在客户身上,我们必须要有一套方法来保证我们开发的系统软件开发需求与客户期望的一样,包括客户的隐性期望。

学习客户行业知识

只有掌握了客户行业的知识才能听懂客户在说什么,才能知道客户提出的软件开发需求是否合理,才能够以客户的语言阐述将要开发的系统,才能够知道哪些问题是我们正真关心的。

对同类软件产品进行分析

任何一个软件产品的开发都不是凭空想象出来的,一定是根据已经存在同类软件产品并结合本组织需要演变而来,对这些已经存在软件产品的功能、使用情况、存在问题进行总结和分析将会对挖掘客户隐形软件开发需求、风险预估、成本评估及对软件开发需求细节的掌握都是有非常大帮助的。

了解客户的组织架构,找出关键人物

我们的客户不是一个具体的人,它是一个由很多人组成的组织。我们要开发的软件产品不是满足一个人的要求,而是这个组织中很多人的要求,只有这些人的期望都满足了我们的项目才是成功的项目。当然我们有时不必要也不可能对没一个人进行访谈,但关键人物的想法一定要了解,关键人物不但是有权力的人,还包括在组织中有重大影响力的人、对组织软件开发需求非常了解的人。

了解客户的战略计划

因为任何一个软件产品的开发都是该组织战略计划下的一个子项,它整个战略是息息相关的。比如对于一个将来要大力推动网络销售的书店,必然会对网络付款、网络购书等功能非常感兴趣。客户未来的战略计划是什么?是准备扩大经营还是缩小规模,是加强网络销售的份额还是多开实体店,是要对人员素质进行优化还是保持不变等等。加强对客户未来战略计划的了解可以更好的理解软件开发需求、将来开发出来的软件产品也能更好符合客户要求。

了解客户对该软件产品的计划

客户对该软件产品的计划是什么?他们的计划分为几个阶段?每个阶段要达到什么目标?注意我这里说的不是开发软件产品的项目计划而是使用该软件产品产生效益的商业计划。我们要理清将来要开发的软件产品需要提供哪些功能、按什么样的开发进度可以与其商业计划相对应,对于无法达到其商业计划目标要及时提醒客户。

对最终使用该系统的人员进行分析与沟通

在很多客户组织中与我们项目组对接的人员并不是最终使用该系统的人员,典型比如物流、超市等行业I的T部门,特别一些转包项目。所以往往与我们对接人的想法并不是非常正确的,并且他们在转述那些系统使用人员想法的时候有意无意的加入了一些自己个人想法、有些重要信息又忘了等等,所以我们一定要想办法与系统最终使用人员进行沟通。还有一个比较重要的就是要对系统最终使用人员进行分析,这些人员计算机技能、对新系统是欢迎还是排斥、学习新技术能力等等都对将来的系统设计、系统实施产生重要影响。

知道每一条软件开发需求的目的

客户有时所说的不一定是他们想要的,只有多问为什么,了解客户的动机才能发现正真的软件开发需求。对于客户提出的软件开发需求与目的不相符的要及时提醒客户,如果自己有方案可以提供给客户参考,对于哪些目的不是非常明确的软件开发需求要尽量拒掉。

对于不可实现的软件开发需求要及时反馈给客户

如果客户提出的软件开发需求在当前技术、成本或时间内无法完成要即使提示客户,不能因为客户的强势就假装答应,那样会把项目放到了非常大的风险上。

通过使用模型、假设应用场景等方法让客户正真理解将要开发的系统

很多软件开发需求变更是因为我们与客户沟通产生了问题,这个主要是软件的特性造成的,再加上大部分客户对软件并不是非常了解,如果想当然认为客户在签字确认的时候已经充分理解我们的《软件开发需求分析说明书》那是打错特错的。我们要想尽一切办法让客户正真理解我们的想法,最好能够让客户把他们理解的软件开发需求再复说一遍,对于非常难以用自然语言说清楚的软件开发需求要通过建立模型等方式让客户理解。

需要与客户保持不间断的沟通

在软件开发过程中尽量能够把我们开发成果展示给客户,对于复杂系统应该尽量划分几个阶段,每个阶段发布一个版本让客户试运行。不要等到测试完成,交付时候才让客户看到,因为那样风险是非常巨大的。

要充分了解将来系统运行的软硬件环境

将来的系统要运行在winxp上、win2007还是linux上?硬件成本是否有限制,是用当前已经存在的硬件环境,还是要重新购买?不同的软硬件环境对软件开发影响是巨大的,包括架构体系、数据库设计、甚至编码所使用的API接口。如果软硬件环境没有弄清楚则在项目实施的时候会有很大障碍。

客户中的个人期望不能代表组织的软件开发需求

在客户组织中有的人员从自身利益出发提出一些个人期望,比如在开发公路收费系统时候可能就有人提出留个后门之类的期望,但这个并不是整个组织的软件开发需求。对于这些期望即不能答应,也要想办法化解,处理不好会给将来系统实施带来很大麻烦。

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 软件开发 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、陕西弈聪网站内容中凡注明“来源:XXX(非陕西弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,百度关键词优化,西安软件开发等技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“陕西弈聪”的作品系本站版权所有,任何人转载请署名来源,否则陕西弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。