软件研发核心能力的分析

来源:互联网 发布:阿猫阿狗 知乎 编辑:程序博客网 时间:2024/06/06 08:40

      由于软件研发工作的复杂性、不可视性、可变性和一致性,研发一个给用户一个满意的,缺陷更少的,灵动而又符合用户各类偏好的软件系统,是一个艰辛和匆忙了挑战的过程。关于复杂性等问题,在数十年前在《人月神话》中就提出了著名的银弹说,可以说至今都没有彻底解决,任何项目都起作用的所谓银弹。

所以研发管理我觉得是一个非常综合的能力,每个公司都在按照自己的人力资源、管理能力、研发技能水平等来制定适合自己的管理模式,公司之间直接进行复制管理模式的方式都可能会导致很大的风险。我们在判断软件研发能力时,很容易对现实的情况判断产生各类偏差,可能高估了自己的能力,或者低估了,或者在某些局部的判断不准确,但是不管是哪种情况,清楚的认识自己,对研发管理的改进、提升产品质量都是有很好的帮助的。

    一、软件研发能力的几个重要方面

            

     

  就如同架构设计一样,把复杂的事情细化和分解是一个分析问题的经典做法。我们经常在听到的抱怨是这个系统因为架构设计有问题,导致修改非常困难。研发缺乏过程管理,你看在某些方面文档都不齐全,我就是按照跟你说的来实现的。或者是这个开发的功能不完全是用户需要的啊。后面一大堆讨论,总结是我们的研发水平还很低有很多很多的问题。为了分析这些情况,我把软件研发的核心能力做了一个分解。

产品管理:是我们定义产品和管理产品的能力,决定了我们去发现市场机会,在什么样的时机,以怎么样的顺序提供给客户的能力,产品管理的与开发能力、开发过程和组织管理是一个交集关系,总的来说产品管理就是公司在有限的资源情况下,提供符合客户需求的产品的能力。

开发技能:按照既定的产品和需求目标,采用合适的技术实现产品的能力。

开发过程:开发过程管理是在实现产品的过程中,采用什么样的过程保障来管理需求和开发都是按照既定的过程被实现。

组织管理:软件研发是一个纯智力的工作,如何进行团队的激励和管理,如何发挥团队的工作积极性和创造力的能力。

我们在研发管理过程中,面对的现实是四个方面有时候相互独立,但是更多的是需要管好紧密的联系在一起的部分。我们经常看到并不是最一流的技术,但是产品市场占有率确是最高的产品,研发产品的技术很高深,但是却淹没在产品的海洋中。或者有很好的产品设想,但是研发技术无法达到要求,我想这些都是我们值得思考和借鉴的案例。