`
zensheno
  • 浏览: 5114 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

软件开发管理

阅读更多
SCRUM感言


2010-07-19 作者:taosinker 来源:CSDN博客


软件流程的名称太多,RUP,V Model, ISO9000,CMM等等不一而足。最近接触了SCRUM,收获良多,与诸位同仁分享。

自从有人类社会活动以来,就形成了各种各样的组织和制度,上到社会体制下到家庭环境,西方到东方,社会风尚、工厂流程、等等,这些东西都具有一种共同的特点:都是为了适应一点的社会目的、解决一定的组织问题,而形成的。软件的流程,也具有类似的特点,只不过是适应软件规模化生产而成的东西。我只所以这样说,目的是希望大家不要把软件流程这种东西神秘化,另外也不要把它当成无所不能的钥匙。所有为社会化活动定义或者自然形成的东西,一方面有其解决问题的一面,同时也有他的瑕疵。

软件形成的初期,没有任何所谓的process,天才工程师似乎可以把当时的所有问题彻底搞定。随着软件规模化生产以来,所有具体的软件活动,比如设计、分析、项目管理等都有必要纳入流程管理的环节,从而达到可控并优化的目的。软件流程的先驱们从,工业生产、统计科学、心理学等等借鉴了多方面的有价值的东西,而形成了如今各种各样的所谓的软件开发流程。我在工作中也接触到各种流程的思想和操作。有时候老板们总是希望流程来解决碰到的问题,可是有时候又形成了一个过于流程化的局面,为了完成一个小问题,却要付出几倍的流程的成本;有时候某一个流程过于僵化缺忽视了真正应该重视的问题。软件生产是一种智力活动,这又具有很大的不同,某些方面非常难以把握,太硬性的东西反而戳伤了员工的创造性。等等,我相信所有参与过软件开发的工程师,可以列出更多的问题。如何解决种种问题,不同的软件流程都提出了一套不同的方法。现在看这些,process, 我们不能说那一个更好,只能说那一个更适合你。如同找老婆,没有最好,只有更适合自己的。

绕了这么一大堆,我只是想澄清一下对软件流程方面的基本认识。对与不对不同的人可能有不同的看法。下来我想聊聊SCRUM,我不想列举SCRUM如何具体操作的步骤,网络上有好多这方面的资料。诸位可以找相关的资料看看,我这里只想写一些对 SCRUM的感受,列一下我所理解的SCRUM具体的思想精髓。欢迎网友和我交流,也使我能有所提高。

软件开发是一个复杂的群体智力活动

SCRUM把软件开发看作,是一个解决复杂问题的群体的、智力劳动。这一点很重要,首先这把软件开发与平常的工业化流水线生产区分开来,让我们认识到软件开发的特殊性。你可以把软件生产比作流水线生产,可是软件生产是一种特殊的群体智力活动。不认清这一点,就不能把软件开发中人的因素放在首位。不是说,软件工程师都培养成象流水线上的工人,你的企业就成功了,这恰恰是一个软件企业行将没落的一个不好的兆头。软件生产需要创造,需要思想活跃的人才。苹果公司有了乔布斯就活了,还活得有声有色,这就是人才的重要性。企业的CEO需要如此,同样从事具体软件创造的工程师也需要有创造性的环境。真真成功的企业100%都是有创造性产品的公司!SCRUM基于此,提出软件开发团队需要时自我学习,自组织的团队,来到达充分利用各个员工智慧来解决复杂问题的目的。

为了充分利用团队成员的智慧,众人拾材火焰高吗!!!SCRUM实施的过程中有如下的具体操作:

1)任务不是有SCRUM master 自作主张分发的,而是有团队成员主动申请。这就是task 的poll方式;

2)SCRUM master 不是老板,开会的时候不是听取汇报的。而是帮助团队解决困难的,要保证团队成员到底彻底的沟通理解;

3)Inspection 要做到发挥团队其他成员的积极性,及早发现错误。当然这一条也不是SCRUM 特有的。但是SCRUM 对此事重点强调的噢!!!

4)要重视团队的自组织行为,团队为了解决一下问题,总是会找到一个最合适的方式来达到有效解决问题的目的。SCRUM master 应该鼓励这样的行为。

有效的沟通是软件成功的关键

沟通,沟通,沟通。国际问题,家庭问题,上下级问题等等都需要需要沟通。归根结底是人际问题,人之所以为人,科学家说,因为人有语言善于沟通。可是具体中许多问题,恰恰是缺乏沟通造成的。软件开发过程也是一样的道理,客户需求没法被所有人理解,变动没有在个个关系人之间有效地传达。项目存在的问题,没有被领导和解决问题的负责人发现,等等都是由于没有沟通造成的。由于这些原因造成的损失往往是致命性的!!!

需求方面所有的软件开发过程都强调,需求变更的管理以及能适应需求不停变化的现实情况,可是我个人认为SCRUM所定义的运作方式做得彻底、做到比较好。表现在如下几方面:

   1. 客户的需求被Product Owner全面反映到TEAM中来
   2. 客户看到的是一个可deliever的东西,基于此客户可以有更现实的想法或者,更合理的变动
   3. 每个Sprint开始,需求的变动被及时地反馈给TEAM
   4. 需求的优先级,满足客户利益的最大化

团队开发方面:

   1. Daily SCRUM Meeting使团队的进度得到同步
   2. Daily SCRUM Meeting使问题及时地发现并尽快得到解决
   3. 不同Component之间的依赖,也能得到有效沟通。这是有效解决的前提
   4. 项目的困难进度,能使客户,领导及时得到

另外,团队的成果,客户能及时地看见,客户能够通过Product Owner将需求及时反馈给团队,这大大促进了项目的成功,减少了项目的风险。

自我检查及时调整是团队走向成功的保证

古人云“日三省乎己”,对人如此对一个组织也是这样。返过头来,看看我们的软件开发。我看到过一些组织有下面一些问题,网友同志们或许有其他补充。

   1. Process太过于费时,浪费了大量的时间
   2. 以前曾经就有这样类似的教训,现在还犯
   3. xxx问题已经拖了很长时间了,为什么还没有解决
   4. 大家长时间地走一步看一步,没有一个规划。好象没有人来解决
   5. 一件事情,反复地改,脑子里面长水了。不理解这些人怎么想的
   6. 。。。。。。

我相信大家或多或少碰到过类似的问题,有问题比有问题却发现不了问题强得多了。如果有问题,及时地自我发现,并能够及时地调整,这是一个健康组织必有的一套体系。只有这样一个组织,项目才能很好地适应市场需要,很好地站稳脚跟。可是,能做到这些,并做好并不是容易的事。 SCRUM有专门的定义来做到发现问题解决问题的目的:

   1. Sprint结束时要审视自身。Retrospection meeting
   2. 发现问题要及时调整
   3. Scrum Master 要对这些活动在Process上负起责任来

结语

SCRUM是从软件管理的角度定义的一个Process,现在越来越得到软件开发群体的认可。本文只是一些个人的认识和看法。软件管理是一门“艺术”,SCRUM不可能涵盖所有的问题。这就需要具体的执行人scrummaster,要具体问题具体分析。希望本文能对大家理解SCRUM有益。欢迎交流,批评和指正。
分享到:
评论

相关推荐

    精益软件开发管理之道1

    精益软件开发管理之道是软件行业中一种高效的开发管理方法论,旨在减少浪费,提高效率,确保软件项目的质量和价值。这一理念源自于制造业中的精益生产理论,它强调通过不断优化流程,消除不必要的步骤,来提高整体...

    软件开发管理规范(制度)

    ### 软件开发管理规范知识点详解 #### 一、总则 - **目的与适用范围**:旨在规范公司的软件研发及其外包管理活动,适用于公司总部的软件开发管理,分公司可参照执行。 - **开发类型界定**:明确了新系统开发与现有...

    软件开发管理制度

    ### 软件开发管理制度详解 #### 一、概述 软件开发管理制度是企业为了规范软件开发过程中的各项活动而制定的一系列规定与流程。本文档旨在深入解析ChinaAdvancedConstructionMaterialsGroup公司的软件开发管理制度...

    软件开发管理规范(制度).pdf

    "软件开发管理规范" 软件开发管理规范是软件开发领域中的一种管理制度,旨在规范软件开发的整个生命周期,确保软件开发的质量、效率和可靠性。本文档将从软件开发管理规范的概念、组成部分、实施步骤和实施注意事项...

    软件开发管理制度.docx

    【软件开发管理制度】 软件开发管理制度是一套用于指导和规范公司内部软件研发以及外包软件管理的准则,旨在确保软件开发过程的高效、规范和质量保证。本制度覆盖了从立项、需求分析、项目计划与监控、系统设计到...

    软件开发的过程与管理

    二、软件开发管理 1. 项目管理:包括时间管理、成本管理、质量管理,确保项目按时、按预算、按质量完成。 2. 配置管理:跟踪和控制软件的更改,确保版本控制,防止版本混乱。 3. 质量保证:通过制定和执行质量...

    敏捷软件开发管理 项目管理

    ### 敏捷软件开发管理与项目管理的关键知识点 #### 一、项目管理的本质与软件开发项目的特殊性 项目管理作为一门独立学科已有多年历史,在实践中积累了丰富的理论与实践经验。然而,传统的项目管理理论与方法在...

    软件开发管理制度.pdf

    软件开发管理制度.pdf

    软件开发管理制度.doc

    软件开发管理制度 软件开发管理制度是软件开发项目的核心组成部分,它对软件开发的每一个环节都进行了详细的规定和标准化。下面是根据提供的文件内容生成的相关知识点: 1. 软件开发管理制度的目的:软件开发管理...

    软件开发管理制度合集

    【软件开发管理制度】是企业确保高效、有序进行软件开发的核心规范,旨在规范内部软件研发以及外包项目的管理工作。这一制度通常包含多个环节,如立项管理、需求分析、项目计划与监控、系统设计等,以遵循项目管理和...

    集团软件开发管理制度样本.doc

    集团软件开发管理制度样本 本文档旨在规范集团软件开发管理的各个方面,确保软件开发项目的顺利进行和高质量完成。该制度适用于集团总公司软件研发与管理,分公司参照执行。 一、总则 软件开发管理制度旨在规范...

    软件开发管理平台技术方案.docx

    软件开发管理平台技术方案 软件开发管理平台技术方案是为了解决软件开发过程中存在的各种问题,如需求变更及问题追踪的流程和管理手段不完善、发布版本的完整性无法保证、项目状态难以控制等问题。该方案通过制定一...

    软件开发管理标准规范调研需求分析设计编码测试部署测试维护等过程.doc

    软件开发管理标准规范调研需求分析设计编码测试部署测试维护等过程 本文将对软件开发管理标准规范进行详细的解读,从软件开发的全生命周期的角度,对调研、需求分析、设计、编码、测试、部署、测试、维护等过程进行...

    软件开发管理办法.pdf

    软件开发管理办法是为了规范公司的开发管理流程,使各开发项目的管理进行标准化管理。该管理办法详细规定软件开发过程的各个阶段及每一阶段的任务、要求、交付文件,使整个软件开发过程阶段清晰、要求明确、任务具体...

Global site tag (gtag.js) - Google Analytics