文章

scrumcn_kanban

什么是看板方法?

看板方法是用于高效管理软件开发流程的新技术。看板方法源自丰田的“及时生产”(JIT=just-in-time)系统。尽管生产软件是一项创造性活动,与批量生产汽车有所不同,但是生产线管理背后所蕴含的原理仍然适用。 Read more

可工作的软件胜过面面俱到的文档

没有文档的软件是一种灾难。代码不是传达系统原理和结构的理想媒介。团队更需要编制易于阅读的文档,来对系统及其设计决策的依据进行描述。

然而,过多的文档比过少的文档更糟。编制众多的文档需要花费大量的时间,并且要使这些文档和代码保持同步,就要花费更多的时间。如果文档和代码之间失去同步,那么文档就会变成庞大的、复杂的谎言,会造成重大的误导。 Read more

敏捷的成功率是瀑布式的三倍

根据2011年Standish Group的CHAOS 报告,敏捷项目的成功率是非敏捷项目的3倍。

在这份报告中提到:“敏捷流程是一种通用性的,可以用于挽救将要失败的软件开发项目的补救措施。使用敏捷流程开发的软件应用程序的成功率是使用传统瀑布式开发的三倍,而且所花费的时间和成本也要比瀑布式低得多。” Read more

提供建议而不是规则

我发现似乎原来有多人希望能够将敏捷归纳成规则。最近我在很多书籍、博客或者和敏捷或者Scrum相关的PDF文件里面看到类似“你必须这么做”或 者“如果你不这么做的话那你就是做错了。”之类的话。在最近几个月和一些项目管理办公室(PMO)的对话中,我也遇到了相似的问题。

这让我想到我2012年新年第一件要做的事情,就是希望大家提供建议,而不是制定规则。 Read more

Just enough(刚刚好)的软件开发文档什么样?

在今年与多个软件开发单位的交流中,补文档的问题多次提到,试图通过本文谈谈文档的价值,如何写刚刚好的文档。

软件开发所需要的文档在传统的瀑布型生命周期下典型的有:开发计划,需求规格说明书,设计书(有分成基本设计书、详细设计书;也有分成High Level Design、Low Level Design;或者概要设计、详细设计), 测试计划(测试用例),测试报告,结题报告。其中的需求规格说明书和设计书是过程中最重要的两份文档,往往多达数十页,甚至数百页。 后期,文档与实际软件的一致性问题是比较突出的,往往出现软件已经修改,而文档还没有修改,两者不一致。
Read more

RUP与Scrum的对话

正如你所知道的,RUP(Rational Unified Process,Rational 统一过程),是一种被广泛使用的软件过程框架。它可以很好地迎合你的软件开发过程的需要,还可以容纳其他技术。Scrum是一系列有趣的,用来包装灵活软件项目的项目管理模式。本文介绍了Scrum的一些重要特性,并阐述了可以让你在已有RUP环境中加入Scrum理念的技术。我在工具条内提供了关于Scrum和“灵活”的术语的词汇表,并且在下文中这些术语首次出现的地方用星号作了标记。

什么是Scrum?

Scrum是一种灵活的软件管理过程,它可以帮助你驾驭迭代,递增的软件开发过程。Scrum于1995年由Advanced Development Methodologies,Inc提出,并在2001年“敏捷联盟(Agile Alliance)”形成后受到了更多欢迎。这个轻量的过程可以作为包装器,也就是说你可以把Scrum与其它灵活的过程框架组合起来,比如说RUP。 Read more

Scrum实践中遇到的问题

影响scrum不能正常实施的因素

scrum的失败或者效果不理想通常由以下因素造成:

  1. 对未知结果的恐惧心理。出于习惯,大多数人更愿意事先得到一个固定的最终发布日期和一个承诺的结果,哪怕到了日期无法得到结果再延期。我们常常都需要这样的心理安慰,宁愿把苦头放在后面而不愿正视软件开发的规律。
  2. 在sprint过程中加入新需求的诱惑。很难很难抵御这样的诱惑,scrum第一杀手。
  3. 不愿意调整目标而任意延长sprint的时间。不知不觉你就又回到了老路上。
  4. 急于看到结果而压缩sprint的时间。能得到一定的效果,但总体上消耗的更多的资源。我们曾经一度这样做,每周末完成一个可以审查的结果,很有效,但很累人,在整合上花了太多的力气。

Read more

12

Scrum对于老板的价值何在?

这篇文章是写给致力于推广Scrum的项目经理们的,我的很多客户都问过我这样的问题:他们用了Scrum一段时间了,发现Scrum确实是个好东西,能够有效的提高团队的生产力,鼓舞团队士气,降低外界对团队的干扰,以及卜啦卜啦卜啦一大堆的好处,但是老板们,尤其是那些非软件开发出身的老板们,却对Scrum仍然无动于衷,得不到老板的支持,推行Scrum举步维艰,想要说服老板,却又不知道如何去打动他们,Scrum中也丝毫没有说老板们在Scrum中能获得啥东西,那么Scrum对于老板的意义到底何在呢?

Read more

jingyichuangye

什么是精益创业?

概念

精益创业(Lean Startup)是硅谷流行的一种创新方法论。它的核心思想是,先在市场中投入一个极简的原型产品,然后通过不断的学习和有价值的用户反馈,对产品进行快速迭代优化,以期适应市场。

由来

精益创业(Lean Startup)由硅谷创业家Eric Rise2012年8月在其著作《精益创业》一书中首度提出。但其核心思想受到了另一位硅谷创业专家Steve Garry Blank的《四步创业法》中“客户开发”方式的很大影响,后者也为精益创业提供了很多精彩指点和案例。   很多IT从业人员在了解精益创业后认为,其核心理念可以追溯到软件行业的敏捷开发管理。例如“最小可用品”与“原型建模”非常相似,都追求快速的版本迭代,以及时刻保持与客户的接触并获得反馈等等,精益创业可以理解为敏捷开发模式的一种延续。 Read more

ScrumLargeLabelled_2

Scrum开发过程

SCRUM方法如下:

SCRUM将工业过程控制中的概念应用到软件开发中来,认为软件开发过程更多是经验性过程(Empirical Process),而不是确定性过程(Defined Process)。确定性过程是可明确描述的、可预测的过程,因而可重复(Repeatable)执行并能产生预期的结果,并能通过科学理论对其最优化。经验性过程与之相反,应作为一个黑箱(Black box)来处理,通过对黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越出设定的边界,从而产生满意的输出。SCRUM方法将传统开发中的分析、设计、实施视为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边沿,充分发挥人的创造力。如将经验性过程按确定性过程来处理(如瀑布模型),必将使过程缺乏适应力。 Read more