作为一个软件工程师,软件设计和开发是最重要的技能,但是,从整个产品的角度上讲,项目管理能力比开发能力更重要,本文摘自Robert大叔的《敏捷软件开发》,粗体是Robert大叔的话,细体是我的理解。

1.持续、尽早交付有价值的软件以满足客户,是我们优先要做的首要任务。

以逐渐增加功能的方式经常性地交付系统和最终质量之间有非常强的相关性。交付得越频繁,最终产品的质量就越高。

自顶向下地设计软件,按照功能优先级逐步开发,定期交付可运行的版本。这个原则看起来简单,但是对软件设计有非常高的要求,因为随着不断地交付,软件的feature不断叠加,如果起初设计的不够灵活,后期增加feature的难度会很大,而且也很容易出bug。

2.拥抱需求变更,甚至是在开发的后期。敏捷过程利用变更为客户带来竞争优势。

敏捷团队会非常努力地保持软件结构的灵活性,这样当需求变化时,对于系统造成的影响是最小的。

3.频繁交付可执行的软件,从几周到几个月,交付时间越短越好。

4在整个项目过程中,业务人员和开发人员必须每天在一起工作。

我的理解:业务人员能对软件项目进行持续性地引导。

5.激发每个团队成员的积极性来打造项目。为他们提供所需的环境与支持,并且信任他们可以完成工作。

比如项目室椅子不舒服,太吵闹,项目经理是不是该想办法解决一下?

6.在一个开发团队内部最有效的传递信息的方式是面对面的交流。

最好的沟通方式,就是面对面地交流。

7.可执行的软件是进度的首要检验对象。

检验软件不是文档编写了多少,代码量有多少,基础数据结构堆砌了多少,而是,总体功能实现了多少。

8.敏捷过程倡导可持续发展。赞助商,开发人员和用户应该尽可能保持一致的步伐。

9.不断地关注优秀的技能和好的设计会增强敏捷能力。

不在软件中留雷,该今天清理掉的恶心代码,今天就清理掉,不要留到以后。

10.尽量用艺术化来简单阐述未完成的工作是很有必要的。

简单!不要试图去构建那些华而不实的系统,而是采用能达成目标的最简单的方法实现软件。不要太注重明天会出现什么问题,也不要在现在的软件中对未来的问题做防卫,开发人员要做的,就是在今天以最高的质量完成最简单的工作。

11.最好的架构,需求,和设计出自于自我组织管理的团队。

不存在某个模块只有某个人最熟悉,所有人都应该对整个系统熟悉。

12.每隔一段时间,回顾反思如何让团队变得更高效,并相应地调整其行为。

尽管许多这些原则可能看起来只有直接应用到开发团队才讲得通,但是如果我们了解了这些原则的精神,我们还是可以获得一些非常有用的价值。并且这些价值能够使我们的项目管理变得更敏捷。

沟通:无论是开发人员,管理层,或是客户之间,对于任何敏捷项目来说开放的沟通是必要的。项目经理应确保参与项目的各个部门间的沟通及时、清晰、有效。包括每一个开发人员和利益相关者。记住,敏捷项目是“拥抱需求变更的”。这意味着,只有不断的沟通才是唯一的办法,从而确保变更不被丢失,并且避免出现团队成员在完成工作的时候,对于需求变更还什么都不知道的情况。

简单:一个项目成功的关键因素应该是尽可能做到最简单的形式,并且所有项目管理活动都应当做出可度量的贡献值。项目经理的职责是,与利益相关者共同来决定项目中各个任务,交付件,和交付产品的价值,从而让项目以最简单的形式体现又具有最高的价值。

反馈:“乐观主义是软件开发行业的职业病,反馈是治愈这种病的良药”。定期反馈是敏捷开发项目的关键,因为它让错误和缺乏沟通及早地被发现。降低了交付的产品与项目干系人需求背道而驰的风险。

魄力:项目经理作为领导者,其领导力需要魄力。敏捷项目常常需要不断改变开发方向,需要很大的勇气来应对这些变更所带来的后果。

透明:作为最好的项目经理,他们并不是什么都知道。相反地,他们常常依赖各个项目成员的各种专业知识,来打造一个透明化的大环境,从而让成员们互相学习,各取所长。

敏捷软件开发的12个原则相关推荐

  1. 敏捷软件开发宣言ndash;Manifesto for Agile Software Development

    敏捷开发, 谁不会呀, 不就是 没文档, 出活快, 用户说啥都能改? 下面是一个笑话,  王屋村的大牛说 - 我最近转手接了一个活, 完事能挣四五万, 我拿过图纸一看, 不就是盖一烟囱吗? 我们是敏捷 ...

  2. 敏捷软件开发宣言–Manifesto for Agile Software Development

    敏捷开发, 谁不会呀, 不就是 没文档, 出活快, 用户说啥都能改? 下面是一个笑话,  王屋村的大牛说 - 我最近转手接了一个活, 完事能挣四五万, 我拿过图纸一看, 不就是盖一烟囱吗? 我们是敏捷 ...

  3. 敏捷软件开发:原则、模式与实践——第12章 ISP:接口隔离原则

    第12章 ISP:接口隔离原则 不应该强迫客户程序依赖并未使用的方法. 这个原则用来处理"胖"接口所存在的缺点.如果类的接口不是内敛的,就表示该类具有"胖"接口 ...

  4. 敏捷软件开发12条原则(译)

    前段时间出了中文版的敏捷宣言和敏捷原则,于是来跟下风,按照自己的认识和理解,也来翻译下敏捷软件开发遵循的原则. 我们最优先做的工作是通过尽早地.持续地交付有价值的软件来使客户满意: 即使到了开发的后期 ...

  5. 《敏捷软件开发-原则、方法与实践》-Robert C. Martin

    Review of Agile Software Development: Principles, Patterns, and Practices 本书主要包含4部分内容,这些内容对于今天的软件工程师 ...

  6. 敏捷软件开发之原则篇

    1.我们最优化先要做的是通过尽早的.持续的交付有减脂的软件来使客户满意. 2.即使到了开发的后期,也欢迎改变需求.敏捷过程利用变化来为客户创造竞争优势. 3.经常性地交付可以工作的软件,交付的间隔可以 ...

  7. 《敏捷软件开发:原则、模式与实践(C#版.修订版)》—第1章1.4节参考文献

    本节书摘来自异步社区<敏捷软件开发:原则.模式与实践(C#版.修订版)>一书中的第1章1.4节参考文献,作者[美]Robert C. Martin , Micah Martin,更多章节内 ...

  8. 敏捷软件开发:原则、模式与实践(C#版)

    刚才在china-pub看到<敏捷软件开发:原则.模式与实践(C#版)>已经出版了.这本书是以前那本<敏捷软件开发:原则.模式与实践>的C#版,这是不是说明C#程序员的数量已经 ...

  9. 敏捷软件开发宣言和原则

    敏捷软件开发宣言(Manifesto for Agile Software Development) 我们一直在实践中探寻更好的软件开发方法,身体力行的同时也帮助他人.由此我们建立了如下价值观:We ...

最新文章

  1. Android Websites
  2. 中国电信发布转型升级战略:构建一横四纵生态圈
  3. 数据结构(3) -- 栈和队列
  4. 1个模型横扫40+个SOTA!22位华人共同打造佛罗伦萨模型,一统图像视频文本,含9亿图像-文本对...
  5. 使用Flash彻底美化你的程序
  6. asp.net中慎用static全局变量
  7. magento 优化 php.ini,PHP.ini配置文件(中文) | Magento UI
  8. tplinkl路由器跨vlan访问_路由器与三层交换机的区别:谁才是最好的选择?
  9. 【Codeforces Round #299 (Div. 2) C】 Tavas and Karafs
  10. matlab 计算函数极值,如何用MATLAB求函数的极值点和最大值
  11. 苹果怎么滚动截屏_30个小技巧,带你感受苹果系统到底有多好用
  12. 【第115期】世界一流大学计算机专业,都在用哪些书当教材?
  13. background简写属性
  14. Android学习日记(yzy):Notification的简单运用
  15. Shadow SSDT
  16. JDK8——IntStream
  17. android 屏幕最小宽度_最小宽度360dp Android屏幕适配—被偷走的dp - 硬件设备 - 服务器之家...
  18. 《终结拖延症》读书笔记,作者威廉·克瑙斯
  19. experiment 7
  20. linux qq java_Java实现QQ登陆界面

热门文章

  1. Android实现程序前后台切换效果
  2. Java中数据存储方式
  3. 批量创建用户和设置密码
  4. 深入浅出Rust Future - Part 1
  5. js 闭包 实战1
  6. Mininet FAQ
  7. html中#include file的使用方法
  8. Pentaho平台上加仪表盘插件步骤
  9. Asp.net MVC 3实例学习之ExtShop(五)——产品详细页
  10. Http之Get/Post请求区别