0%

敏捷Agile

软件项目成功率调查

  • 需求复杂度

市场的需求瞬息万变,很难实现产品需求的明确且完整的收集;

  • 技术复杂度

技术是飞速发展,对所定义功能的可实现性也面临着多重不确定性的因素;

  • 组织复杂度

我们常说的“组织架构决定系统架构”,软件的架构最后会围绕组织的边界而变化,当组织分工不合理时,会产生重复的建设或者冲突;

随着时代进步,以上几个纬度的复杂化的增强,在这样“复杂系统”(Complex System)背景下,如何降低复杂度?

降低复杂度的两种思路

  • Defined Process (预定义流程)

  • Empirical Process (实验性流程)

    实验性流程的三支柱:

    Transparency 透明

    Inspection 检测

    Adaptation 调整

什么是敏捷Agile?

敏捷是一种通过创造变化和响应变化在不确定和混乱的环境中取得成功的能力。

敏捷代表的是一种方法,是在“以人为核心驱动”(Human-Driven)的“复杂系统”(Complex System)背景下,一个具有适应性的“经验性过程控制方法” (Adaptive Empirical Process Control)。

什么敏捷软件开发?

敏捷软件开发是基于敏捷宣言定义的价值观和原则的一系列方法和实践的总称。

自组织、跨职能团队运用适合他们自身环境的实践进行演进得出解决方案。

  • 瀑布式开发所代表的“Fix Scope, Flex time”(固定范围,弹性时间)

  • 敏捷开发所代表的“Fix time, Flex Scope”(固定时间,弹性范围)

在市场变化和技术变化的背景之下,既然市场需求和产品定义所代表的“范围”无法实现固化,因而无法确定应该投入多少成本来完成,那不妨固定好已有成本的,以成本为约束,实现“范围”的最大化实现。因此从“计划驱动”转向为“价值驱动”。

敏捷价值观(敏捷宣言) Agile Values

Individuals and interactions 个体和互动OVER 高于processes and tools 流程和工具
Working products 可工作的产品OVER 高于comprehensive documentation 详尽的文档
Customer collaboration 客户合作OVER 高于contract negotiation 合同谈判
Responding to changes 响应变化OVER 高于following a plan 遵循计划
  • 个人与互动高于流程与工具

在项目管理过程中,过程和工具是比较重要的。在过程、工具和个人、互动相比较,过程、工具就显得没那么重要。这也就是我们常说的:成也萧何,败也萧何。事在人为。天下事,重在商榷。

  • 可工作的产品高于详尽的文档

在互联网、大数据时代下,通过收集有效数据、信息,再进行汇总、分析、挖掘,项目干系人通过移动端即可实时监控项目进展和状况,这远比复杂的文件更高效。那么,要想实现这一功能,就离不开可用的软件产品。

  • 客户合作高于合同谈判

甲乙双方,在平等互利的基础上,签署合同。换句话说:签订合同,就是在平等的基础上,为了实现双赢。只有彼此合作,才能追求双赢。这也正是项目管理之所以重视沟通的原因所在。

  • 响应变化高于遵循计划

项目的特征之一就是渐进明细。人们常说:计划赶不上变化快。在规划阶段,不论我们的计划做得多么详细,在实施阶段,总会有意想不到的问题发生。在项目管理过程中,变更在所难免。正确面对变更,是每个项目管理者最睿智的抉择。

与其右项价值,我们更重视左项的价值,但是右项的价值也是需要的,不可磨去。

敏捷原则 Principles

1、Our highest priority is to satisfy the customer through early and continuous deliver of valuable software。

2、Welcome changing requirements,even late in development。 Agile processes harness change for the customer’s competitive advantage。

3、Delivery working software frequently,from a couple of weeks to a couple of months,with a preference to the shorter timescale。

4、Business people and developers must work together daily throughout the project。

5、Build projects around motivated individuals。 Give them the environment and support they need,and trust them to get the job done。

6、The most efficient and effective method of conveying information to and within a development team is face-to-face conversation。

7、Working software is the primary measure of progress。

8、Agile processes promote sustainable development。 The sponsors,developers,and users should be able to maintain a constant pace indefinitely。

9、Continuous attention to technical excellence and good design enhances agility。

10、Simplicity – the art of maximizing the amount of work not done – is essential。

11、The best architectures,requirements,and designs emerge from self-organizing teams。

12、At regular intervals,the team reflects on how to become more effective,then tunes and adjusts it behavior accordingly。

价值排序,尽早交付

1、我们最重要的目标,是通过及早和持续不断地交付有价值的软件使客户满意。

拥抱变化,提高优势

2、欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。

持续交付,小步快跑

3、经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。

团队合作,每日互动

4、业务人员和开发人员必须相互合作,项目中的每一天都不例外。

信任成员,给予支援

5、激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。

当面沟通,高效明了

6、不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。

成果达成,衡量进度

7、可工作的软件(系统)是进度的首要度量标准。

各方成员,稳定节奏

8、敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。

追求卓越,强化敏捷

9、坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。

精简产品,杜绝浪费

10、以简洁为本,它是极力减少不必要工作量的艺术。

同心协力,自我组织

11、最好的架构、需求和设计出自自组织团队。

团队自省,持续改进

12、团队定期地反思如何能提高成效,并依此调整自身的举止表现。

layicr 微信

微信

layicr 支付宝

支付宝