在两个月未与客户沟通的状态下,苏成项目组向d提供了oa系统一期产品,按合同规定包括了:员工管理一项功能和其中四个子项 。
看完基本功能演示后,d公司的hr经理helen几乎崩溃——oa系统中员工管理没与考勤部分联系起来,而且在系统中增加一个新用户需要五步,十分繁琐,很多功能也与公司需求相差极大 。
但是苏成却认为这些都是小问题,更让helen气结的是要求增加一个小的统计功能时,他居然说做不了 。后来才了解到,原来在开发时,项目组并没有留下文档,加之团队其它几个成员均已准备离开项目组,任何在此模块中的小小变化都会面临所有代码重新开发的局面,更不用说要新增什么功能了 。
最终苏成辛苦开发了几个月却没有得到相应地回报,客户不满意,项目组成员不满意,研发部总监更是对他的能力产生了怀疑,在几经努力拿到d公司的第二期项目开发合同之后,更换了项目经理 。
点评:程序员如何以明确需求为基础与客户沟通?
如果有专门掌握需求编写技术和经验的需求工程师作为客户和程序员之间的桥梁是最理想的状态 。但以国内目前的国情,每个项目组都配有需求工程师的并不多 。
因此,正确地帮客户表达需求、正确地理解需求就成了程序员的基本素质之一 。在此次调查中66.67%的被访者认为“能帮助客户正确提出需求”是程序员职业素养之一,可见在程序员内部已就此达成了相当的共识 。认为“能使客户需求更完善”是程序员看重的职业素养之一,占到此次调查的55.13%,这说明超过一半的程序员认识到,帮助客户完善需求会节省双方的时间和精力 。
那么如何才能提高自己的需求分析能力呢?以下分享几个有关需求的小技巧:
1.尽量提高自己的表达和沟通能力 。良好的表达和沟通能力能在客户不能清楚表达需求时,融入到客户组织内部,了解客户的工作流程,与客户共同更好地、更准确地定义和分析需求 。此次调查中60.90%的被访者认为沟通能力是程序员应具备的基本能力,但只有28.85%的程序员认为“表达能力”是程序员必备的基本能力 。沟通固然很重要,但我们更应该进一步认识到准确表达自己的观点和意见也是成功沟通的基础之一 。
如果只“沟”而不“通”仍然是在浪费方面宝贵的时间 。
2.应用多种方式了解需求 。常用的方法有:问题分析法和建模分析法以及几种方法的结合 。比如在问题分析法中应用面向对象的思想,与客户的员工谈话,访谈首先要面向工作流程,面向任务,面向角色,也就是用面向对象的思想帮助客户理清思路 。
3.不臆测需求 。如果有专门的需求工程师,有一点要特别强调,就是在编码过程中当需求不明确时,必须与项目经理或需求工程师及时沟通,程序员不能自作主张地猜测客户的需求 。
4.不过度承诺 。很多销售人员拿到项目,向客户大包大揽,甚至完全不顾公司的现有开发能力向客户承诺很多功能 。
在定义需求阶段,一定要向客户说明“什么是我们能做的,什么是我们应该做的,什么是我们不能做的” 。很多时候过度承诺导致了新功能无法实现的同时,原有功能也受到影响 。在此次调查中,有59.62%(近六成)的被访者正确地认识到对客户提出的不合理需求拒绝得当也是程序员职业素养的一个重要方面,这是非常难得的 。
案例二:严格开发流程的团队b
国资委某下属集团公司要上oa系统,c公司在研发能力、价格两个方面以综合分第一的成绩竞标成功 。拥有10年项目管理经验的李石被任命为项目经理,并由他组建团队 。李石对团队成员只有三个要求:分析能力、产品意识、较强的团队意识 。
初选方案
需求确定后,项目有两个方案:更流行的bs模式和传统的cs模式 。李石安排两个程序员前期负责选方案,分别基于两种模式开发用户权限管理系统的原型,给大家做演示,并结合客户特别评估每一个架构的优劣 。
分析了bs/cs的特点、结合客户的需求,他们发现:
1.从流程的定制来看cs结构更加利于客户方便地进行“可视化”定制;
2.从公文的“不可修改、保密性”以及电子图章的“不可诋毁性”需求来看,cs框架更加利于实现drm技术和数字指纹技术实现;
3.从公文的打印需求与一般web报表的差异性来看,cs框架更加适合对打印格式的定制与控制;
4.从客户提出的内部电子会议的实时性来看,cs框架明显优于bs框架的非状态性,能够做到更顺畅、更及时的沟通;
- 《芈月传》里的芈月是谁?
- 《乡村爱情》赵四扮演者是谁?
- 《歌手》2018gai退赛是第几期?
- 《护航父母》在线免费观看百度云资源,求下载
- 《四时田园杂兴》的诗意是什么?
- 手机七天无理由退货规则
- 王维《相思》全诗解析是什么?
- 求《草莓女孩》 这部动画片资料~~~~
- 沙溢参加《演员请就位》为什么把郭敬明演哭?
- 《戒不掉你》最新txt全集下载