敏捷开发笔记

一,为什么需要敏捷开发?

在几万年以前,软件项目的开发都是以年来计算的,这代表什么意思呢 ?需求设计了半年多,方案设计做了半年多,开发了三年多,测试了半年多,修改Bug用了半年多。总计花了很长很长的时间,然后上线后发现有很多需求已经不存在了,同时又出现了很多新的需求。

怎么办?继续改。这一改又是半年多的时间过去了。马丹用户的需求还再改,怎么办?

这是困扰软件开发项目的最大的问题,越大的项目,参与的人越多,风险越大。文档越规范,维护起来的难度就越高,导致项目中遇到的问题越来越多。


不仅仅在几万年前,就是在现在,也是经常会有团队出现这种问题。不相信,你可以看看是否遇到了以下这些问题:

1.需求总是在变动,反复变动,无限拖延。

2.开发工程师做出来的项目,bug不但多,而且经常改不好。常常是改了一个Bug,出现另一个Bug,好不容易把一个Bug改好了,过了没多久又重现了。原本好好的功能,反而会因为改Bug导致出现的问题更多。

3.做出来的东西完全不是产品经理想要的样子,沟通完之后才发现开发工程师的理解和产品经理的理解是完全不一样的。

4.项目延期不是最坏的结果,最坏的结果是还从不知道项目倒底会延期多少,根本没办法去衡量工作量,团队的成员都在加班加点,然而完全看不出来问题出在什么地方。

5.开发文档,产品文档,接口文档,测试报告和真实的代码从没有完美契合过。产品经理设计出来的原型和UI设计出来的页面和程序员开发出来的代码完全是一种不同的体系,三位一体的故事从没有真正发生过。代码的实现和接口文档根本不一致,最后索性干脆不看接口文档,完全口头交流。出错的时候各种撕逼扯皮,谁也分不清倒底谁错了。

6.Team的战斗力和凝聚力不强,经常是对着干,对分配的任务总是各种报怨,出现问题之后第一反应是这个不关我的事,不是我的问题,是后端前端设计QAPM的问题。

如果你遇到了这种情况,或者说你不甘于这种现状,那么恭喜你,你可以真的需要敏捷开发流程了。


二,敏捷开发包括了哪些内容


敏捷开发总的流程如下:

1.需求规划和分期

2. 需求评审

3. 需求讲解

4. 方案评审

5. 每日晨会

6. 性能测试

7. CodeReview

8. Demo

9. 测试阶段

10.线上Bug修改流程


表跟我说哪些东西不应该包含在敏捷开发流程里,如果你不喜欢,跟你的观念有冲突,你可以把敏捷开发这四个字换成任意四个字。总之,如果要解决这些问题,这是我目前看到的最佳实践,每一个节点都非纸上谈兵,而是经过无数个尝试和失败总结出来的。

如果你是一个IT公司的管理者,如果你不知道该怎么去管理自己的团队,我强烈安列你按着我说的这种标准化方式去做,放心,出了问题我保证不会负一点责任。

确切的说,我说的敏捷开发流程,并不仅仅是开发团队的事情,它背后隐藏着更多的理念。我可能整理的不够清楚,毕竟这是第一版。



三,清奇的一些观念

1,敏捷开发的前提是甲方要全程参与开发过程,所以需求没搞清楚才证明你们的项目需要敏捷开发。而你有没有做到让甲方要全程参与开发过程,则意味着你们是否真的实施了敏捷开发。

好好看一下流程,敏捷开发的每一个迭代都需要做一次需求分析。如果甲方就来那么一次,你们还分析个什么啊?每次迭代都得来进行需求分析和验收,这才是敏捷开发。



2,曾几何时,敏捷已经成为软件开发流程的标配了,软件开发管理必谈敏捷,不按照Sprint来展开进度都不好意思说自己有项目管理,不搞迭代式开发似乎就搞不了产品开发,不过,这个行业也该醒醒了。

敏捷这玩意,最开始就是所谓“定制软件开发”(Custom Software Development)界的人搞出来的概念,之后主导敏捷的大佬们,也都是这个圈子里人,那么什么叫“定制软件开发”呢?用大白话说,就是软件外包。



3,敏捷某种程度上有点儿像乌托邦,大家都知道全体社会层面的乌托邦是不现实的,但是局部是存在可能性的,也就是说在组织内部努力一下是有可能的。



4,下面说说Scrum。首先是晨会:即站会。每天早上10-20分钟讲三个问题,昨天做了什么,今天做什么,遇到什么问题。晨会一般9点30分左右开始。迟到一般是请水果之类。

需求PK:一般2周一次,或者一个月一次需求pk。大概两个月作为一个需求review的周期。

日报:通过各种方式填写日报;

项目周报:一般写日报就不写周报。但是需要写项目周报。

某些团队搞燃尽图:但是实际上这个玩意儿不实用。

to do、doing、done,这三种任务的面板,某些团队在用,另外也有web的管理工具,用起来相对方便。

总体来说严格的scrum开发是挺累的,如果连续两天遇到问题没有进展,会压力比较大。可能要请求其他人的帮助了。 

Scrum Master是一个非常重要的角色,因为他要负责和其他团队pk需求。到底做哪些需求,基本上master要非常清楚代价和实现难度。要根据团队的技术实力和团队的成长情况来安排需求。如果master不给力,团队会比较难受。



来源:

https://www.zhihu.com/question/22878704


修改时间 2016-07-28

真诚赞赏,手留余香
赞赏
随机推荐
MySQL DATE_FORMAT() 函数 格式化时间
MAC 升级 Nodejs 和 Npm 到最新版
Node.js 如何使用 ES6 的模块功能
php合成与剪裁图片
Android 学习笔记(一)
Node.js 的 JSON Web Token 模块
网游类似魔兽世界的服务器维护都是在干嘛?
HTML,CSS,font-family:中文字体的英文名称
Nginx 报错 open "nginx/fastcgi_temp" failed Permission denied while reading upstream
Cordova build 报错