软件项目的推进中的几点体会

发表于:2008-07-22来源:作者:点击数: 标签:项目体会软件
摘要:本文从沟通、简单、反馈和勇气四个价值观并结合实际的项目 开发 过程进行了分析,为后续软件项目的推进提供启迪。 香江项目(事业部内部编号)作为我们消费电脑迈向家电化的一个重大的项目,虽然其作为一个C类研发项目,但其涉及到的无论从硬件上还是从
摘要:本文从沟通、简单、反馈和勇气四个价值观并结合实际的项目开发过程进行了分析,为后续软件项目的推进提供启迪。

      香江项目(事业部内部编号)作为我们消费电脑迈向家电化的一个重大的项目,虽然其作为一个C类研发项目,但其涉及到的无论从硬件上还是从软件上都可以与一个小型的A类项目媲美。我作为项目的LEADER,从心底里还是有点害怕,毕竟是刚加入公司的新员工,但出生牛犊不怕虎,我也很想尝试去做一件事,只有在实际工作中才能不断的成熟,提升自我。到目前为至,整个项目推进以香江项目计划为关键路径,相关硬件开发也在有条不絮的进行。

      对于下面我想重点阐述沟通、简单、反馈和勇气,这是我们协作开发软件项目的四个重要部分,对于软件项目的管理与开发具有重大的意义。

      沟通(Communicate)

      或更准确地说,缺乏沟通,是几乎所有软件项目问题的根源。客户没与开发者沟通他的要求,或开发者没与客户沟通提供一个功能的困难之处。如果涉及的各方直接,及时地互相沟通,就可以消除大多数问题。我们不能忽视或惩罚任何诚实的沟通。

      目前我们消费的定位是项目经理,从实际承担的工作上看作为客户(需求方)与硬件开发的角色,但作为面向消费客户,我们最关心的是功能诉求,用户使用流程与呈现界面,这和开发人员(程序员)有很大的冲突,后者更关心的是具体实现方式,如对于媒体播放器的底层API的使用与功能诉求如何在计划时间内完成。但共同的目标是一致的,提供给用户易用的产品,尤其对于我们一个企业内部的开发团队,而不像外面公司间的协作。但沟通信息的通畅性也直接制约着产品的质量

      对于软件项目的需求内容不明确,把握不充分是其失败的一个重要方面, 这是我们经常遇到的问题。一方面,由于客户(需求方)IT知识缺乏,一开始自己也不知道要开发什么样的系统,或者懒于系统地整理出来,经常是走一步算一步,不断地提出和更改需求,使得实现方叫苦连天。另一方面,实现方由于行业知识的缺乏和设计人员水平的低下,不能完全理解客户的需求说明,而又没有加以严格的确认,经常是以想当然的方法进行系统设计,结果是推倒重来。因此,需求分析必须注重双方理解和认识的一致,逐项逐条地进行确认,双方能在共同的基础上达成功能与时间上的统一。

      在香江项目中,对于需求主要涉及到后续新品的需求与本身项目发展的需求的综合,对于实际工作中,我积极与软件设计经理,程序员进行沟通,先从正式文档输入开始,免的一开始就陷入无穷尽需求讨论中。随着项目的推进,对于某些需求由于技术上与时间上的不可实现性,因而大家及时沟通,通过项目的中期核对这样的方式,将一部分需求作为第二次开发的要点进行剥离,从而保证项目的按计划进行。

      简单(Simpleness)

      有什么最简单的事情可能会起作用?我们的注意力太多放在了软件的最复杂难解的功能上,而这些功能我们很少用到或者只是曾经用过。今天做简单的工作,明天花点代价修改它要比今天做可能永远用不到的复杂工作好的多。这也和我们的沟通价值紧密联系在一起,因为系统越简单,需要的沟通越少。

      从辨证的观点上看,简单与复杂是矛盾的统一体。某项技术对于某些人是简单的,但对于另外的一些人则是复杂的!因而简单并不是说整个功能的简单,而是说我们掌握了该项技术后就应该有所发展的研究,比如我们知道恢复/备份功能的实现方案,但以项目的时间计划与人力资源上讲完整的实现该功能是不可能的,因而分为两个阶段的推进,这样对于项目的开发人员就可以相对简单的进行开发,有利于发挥主观能动性,而不是在截止期限压力与人力的压制中进行开发。

      反馈(Feedback)

      反馈能告诉我们工作做得怎么样,以及以后要如何做。我们需要对正在运行的系统的反馈,以便了解它是否满足了客户的要求。我们需要通过反馈来了解系统将需要哪些最有价值的改进、加强和附加。我们还需要通过反馈来了解,我们什么时候能够交付某个特定的功能。如果不知道以前的速度又如何确定将来的速度?

      一个软件的成功与否,并不是其内含的技术有多高,其算法有多严谨,而是能被用户所接受。尤其对于我们消费软件来说,因为我们直接面对的是客户,强调以用户为中心的设计始终是我们的头等大事。但作软件功能的需求,不是靠几个人的脑力激荡而没能完成的。只有通过来自第一线的声音,从客户需求来定我们的功能需求。

      在我们的项目实施过程中,采用平台开发与功能开发的两条主线来进行。对于平台开发是通过业界技术与自身技术实力作为反馈点,而功能开发以用户的使用流程与功能本身需求为反馈,来共同完成项目需求的确认。

      我想对于控制系统而言,闭环控制就是导入了反馈的机制让系统更加可靠。对于一个项目来说,本身就是一系统工程,无论是人员技术能力,思想,做事方式上的反馈都是对项目推进有很大帮助,试想程序员只是埋头做自己的事情,研究技术细节,那么我想做出来的软件可能是差之千里。我想项目成员间的沟通是必要的,但同时需要的是效率,否则一味推诿是解决不了实质问题的!

      形成一个良好的反馈机制,同时项目经理承认项目中存在的问题,加强风险管理,这是一个项目成功实施的必要保证。

      勇气(courage)

      勇气从表面上看好像是有勇无谋的感觉,但是如果我们每做一件事情总是畏首畏尾的,把失败看作是洪水猛兽的,那么有多好的规划与人力也只是昙花一现。对于软件开发,我们还是要把勇气带进了软件开发中。我们有没有勇气尝试新的、不同的东西来大幅减少项目时间?我们有没有足够的勇气在即使面对巨额预算和截止期限压力时仍能坚持做正确的事情?这需要我们的勇气。

      勇气(courage),我记得听过一个笑话,大意说的是一个日本兵听从其长官从5米高的桅杆上跳下来谓之勇气,一个德国兵听从其长官从10米高的桅杆上跳下来谓之勇气,而美国兵被其长官要求从100米高桅杆上跳下来,而兵说长官疯了,拒绝执行称之为勇气。对于这笑话中我们可以一笑附之,但我们却是应该把勇气导入我们的实际工作中。有没有勇气去面对错误与权威,这是我们每一人应该坚持的。

      我想对于我们公司来说流程的定义很清晰,执行人员可以提出改进意见。

      结论

      沟通、简单、反馈和勇气四个价值观演绎了项目管理的全过程,从价值层面上剖析了项目经理与项目成员应该理解的含义,希望对大家有益。

      沟通、简单、反馈和勇气是统一的,试想沟通的方式有很多种,如面谈,电话和邮件,也只有通过沟通项目组成员们才能得到反馈,将复杂的事务简单化,有力的保障项目的顺利进行。只要项目成员有勇气挑战上级领导,在一定程度上坚持正确的方向,那么四个层面上的价值观可以得到淋漓尽致的发挥。

原文转自:http://www.ltesting.net