敏捷开发中进度与文档的平衡

     最近和同事讨论敏捷开发如何在进度和文档之间找到平衡?居然发现大家理解各异。什么是敏捷开发?敏捷开发是否意味着省略很多过程文档?具体如何实践?我们一起分享下“知乎”中大家的心得。

以下是总结自知乎的高投票率回答

一、什么是敏捷和敏捷开发

@付聪,中国移动

首先,敏捷开发是一种过程控制论,通俗的说,就是一种做事情的方法。

1. 它适用于软件,因为软件是软的,可以改。要是硬件,改起来就没那么方便了;

2. 它适用于客户不知道自己要啥的情况,其实,这样的客户占绝大多数。因为客户不知道要啥,所以你需要不断帮客户弄明白他到底想要啥。换句话说,你需要和客户沟通,合作,倾听反馈,持续改进;

3. 它适用于竞争激烈的市场,这样的情况下,赶在竞争对手前交付一个不完美但至少能用的产品非常重要;

4. 它适用于快速变化的市场,你在埋头造一辆汽车的时候,客户已经想开飞机满天飞了,这就需要你能一步步的把汽车改成飞机,还能按时交付;

5. 它适用于在一个地方办公的小团队,一般10个人以内。这样能使敏捷中主要的沟通方式“Face to Face” 是可行的;

其次,敏捷开发是一套工具集,里面有形形色色的工具,你可以不搞敏捷,但可以用那么一两个来提高工作效率。比如:

1. 站会:三个问题,简洁有效的小团队沟通方式;

2. 看板:直观反映工作进度,反映流程遵守情况,反映流程缺陷;

3. 演示,计划,反思会:适合于小团队的协作和优化反馈方式;

4. 用户故事:站在用户的角度讲需求;

5. 持续集成:随时高质量交付的基础,有利于应对变化剧烈的市场;

再其次,敏捷开发是一种企业管理方式。比如:

1. 一线员工可以同时是架构师,Scrum Master,开发工程师,测试工程师,发挥了他的主观能动性,有利于创新和效率;

2. 敏捷不专注于敏捷团队中个人的绩效考核,而更多的侧重于整个团队的绩效,更好的避免了KPI驱动模式;

3. 把大项目拆分成小项目去做(每个Sprint都是一个迭代,需要输出一个高质量的版本,相当于完成一个小项目),把bug的生存期控制在一个迭代以内,降低了风险,也减少了后期改bug的工作量;

4. 把数十人的大team 分成几个敏捷团队,这几个敏捷团队的Scrum Master/PO再组成一个更高一级的敏捷团队,利用站会,反思,看板等等敏捷元素,可以避免数十份邮件也不能解决一个小问题,大家互相踢皮球,沟通不畅的大企业病;

5. 老板可以是最大的PO,他给下面的高管讲idea(User Story),定期检查Demo,把控产品用户体验,负责和外界的沟通合作-----比如乔布斯,360的周鸿祎等;

二、为什么需要敏捷开发

@何明璐,IT领域,网名人月神话

用两个词吧,一个是拥抱变化,一个是进度可视。

1.任何软件类系统或项目,即使你前期花在需求上的时间足够长,你也很难在需求阶段真正的分析和挖掘出所有的需求。有些需求注定会在设计实现或用户使用过程中才逐渐出现。要承认软件开发中存在这种不确定性。而瀑布模型将这种识别变化延迟到最好的测试或用户使用阶段才发现,极大的增加了返工或变更成本。敏捷思想里面通过短周期迭代,尽可能早的交付可用的迭代版本来拥抱和适应变化。

2.任何一个软件项目,需求或设计做完我们并不清楚进度是否真正完成了60%或者更多,任何不是经过测试通过的功能我们都很难把握真正的完成进度情况。因此在敏捷里面换了一种思路,如讲这个项目拆分为100个粒度差不多的功能点,如果有60个功能点全部完成并通过验证和测试,我们就比较有把握说整体进度完成了60%。这种可视化的评估进度模式在瀑布里面较难以做到。

(实际上,敏捷是一种思路,敏捷开发是一种实践。适用于: 周期短,人员较少,早期需求变化频繁,高风险的项目 ,不适用于: 行业需求较为固定,开发周期长,市场稳定的项目;)

三、敏捷开发是否意味不用写文档

@何明璐,IT领域,网名人月神话

如果理解为敏捷开发后不用写文档是对敏捷开发很大的误解。敏捷开发的重点是轻文档,而不是不要文档。而这种轻我原来也讲过,对于全新的系统开发最好是在有总体方案或架构后再开始轻。

对于怎么理解轻文档,我建议你好好看下scrum里面的product backlog和sprint backlog。注意这就是文档的一种形式,而且这种文档包括了需求,业务场景,实现思路,验证和测试方法,估算等多个内容的按user story的追溯。而不是按传统软件工程思路拆分为多个文档。

@Blues,scrum sprinting

敏捷开发是重沟通,轻文档。文档要适度,既不能成为项目团队的累赘,也要出现争议的时候有具可查。

先说需求文档,分为两部分,一方面是框架性的需求文档,对功能、交互方式、出错或边界情况的表现进行总体描述,这种文档不需要过于细致,因为产品经理组织语言写文档,开发读文档,理解文档都要消耗大量时间,最好是以总体概括的方式来做,开发在做需求设计时候与产品人员进行频繁密切沟通,最终一起形成完整文档,这中间开发、测试人员对于文档严谨性是有很大贡献,不必要求产品经理全部把边界细节都写出来。

另外一方面,作为良好的协作习惯,任何沟通产生的结论都应该存档!邮件是一种比较好的形式。每次会议结束,问一句结论呢?谁出纪要?不是说文档不重要,而是通过见面沟通,把需要文档描述很细节的内容达成共识。

概要设计详细设计,视需求逻辑难易,规模大小而定。逻辑复杂的项目,概要设计作为帮助开发理解需求的一种手段。大型项目,详细设计架构设计不可避免。一句话规模的需求,随便做做就算了。这其中都要不断的当面沟通!前提是项目成员不能太死板,也有一定磨合,并能力较强。

四、敏捷开发如何实践

@张硕,敏捷开发的寻路人

想一想我们做的项目有多少部分是做出来永远不会有人用的,交付出来到客户那儿才发现根本不是客户想要的,之后返工也好,客户重启项目也罢。

只要付出了努力,却没能体现出相应的价值,那就是浪费。

敏捷宣言的那拨人我相信就是想着如何才能尽可能消除浪费,在凑在一起吃吃喝喝滑滑雪之后,总结出来了4条消除浪费的方法:

可工作的软件》完备的文档

客户协作》合同谈判

个体与互动》流程和工具

响应变化》遵循计划

毕竟宣言是需要落地和实施的,说得挺热闹的,但我们该如何响应变化,如何客户协作,如何生产可工作的软件,都是问题。

所以在统一了思想之后,接下来的实践各有不同,scrum、精益就应运而生,我们采用迭代的方式响应变化和增进客户协作,我们用持续交付持续生产可工作的软件,我们用站会、看板来促进个体与互动。

上面说的东西都是改变生产关系层面的,生产力跟不上的话再好的生产关系都也是桎梏。比如我们的开发流程就是很长,大家代码质量不高,所以无法做到每个迭代结束后都能有所交付,我们代码结构不好,所以我们没法做到快速响应变化。

为了提高生产力,所以又应运而生了一些技术工程实践:测试驱动、领域驱动、结对编程、持续集成、持续交付、重构等等。以上每一点都大得可以写一本书。

所以说,敏捷开发的核心思想就是消除浪费,让我们付出的每一分努力都能有所价值,之后的敏捷宣言和各种流程框架是提出了一种新的生产关系,用来适应大牛程序员们先进的生产力,而如何提升生产力,又产生了很多技术工程实践。这就是敏捷开发的体系。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • 先说项目开发过程中团队人员的分工协作。 一 人员安排 毕业至今的大部分项目都是独立完成,虽然也有和其他同事协作的时...
    SnowflakeCloud阅读 10,744评论 3 59
  • 混职场,你知道应该学会哪些伪装技术吗? 给我印象最深的,还是我大学毕业刚进入职场的时候。和我一起通过面试的,是一个...
    职场魔盒阅读 554评论 7 8
  • 最近刷知乎,早几天开始就已经满屏幕的2015总结等相关问题。相比过去,今年过的更加让我琢磨不透,还没等我好好喘口气...
    ClownQiang阅读 337评论 0 0
  • 2017年春节,带着幼儿回家,发现老家的房子已荒败不堪,曾经玩耍的院子里长满了杂草;曾经郁郁葱葱的屋后菜园也是一片...
    枫美岸阅读 179评论 0 0
  • 今年毕业典礼,汕头大学照常迎来了李嘉诚先生。作为创始人,李先生每年都会参加毕业典礼并且致辞,今年致辞的题目叫《愿力...
    考拉视野阅读 276评论 0 0