在几年前,我就对软件的敏捷开发有着很高的兴趣的。一直觉得,程序员应该是最自由,最轻松的一种职业!而且我也一直在向这个方向努力!
我们应该如何做呢?一说到程序员,大家就公认的是脑力民工!为什么?在程序员自己报怨开发环境不好,工作量大,任务重,压力大的同时,有没有想过,有些问题其实是程序员自己的原因造成的呢?

我们来看一个流程的例子:
从一个问题单开始,你要解决这个问题,首先得申请问题单的查看权限,花5分钟填写一个权限申请电子流,然后等1到2个小时生效。当然,如果你一次申请一个长久有的效的权限,第二次在解决问题单时就不须要了。
然后阅读问题单,重现问题,如果有不清楚的,可能还会咨询测试人员。假设你在1个小时以内了解清楚了问题。
然后准备修改问题,得先申请代码权限。填写电子流也就几分钟,然后等待审批,可能得1到2上小时。如果幸运的话,是这样的。
然后是代码的Checkin与Checkout,以及修改!
然后是编译,验证。最后出版本!

OK,这是一个比较简单的流程,我们看看,其实有很多因素可能导致我们的开发流程是效率很低的。例如,在权限申请的等待过程!问题确认过程!电脑文件打开等待过程!网络打开等待过程!等,一些不产生value的过程,都是精益开发中应该减少的。
我们并不能指望效率会有多高(丰田的效率也只有40%左右,效率就是把一个流程中,产生value的时间除以整个流程的总时间),但在精益开发中,就是要在各个环节中找到影响效率的点,然后尽力的去减少它!
例如,上面的例子中,当开发人员要确认问题时,应该直接找到测试人员,面对面的把问题搞清楚。而不是在邮件,或者电话中询问题!再如,给开发人员配置更快的电脑,以减少打开文件的等待时间。当然,开发人员也应该自己优化自己的开发电脑。公司优化网络等。
当然,在整个流程中,要分清楚哪些工作是有效的,哪些是没有效的,并不是件容易的事!一些非常明显的事,如前面提到的等待,就不用说了。
对于以下一些事件,哪些是有效的,哪些是无效的呢?
需求分析
需求设计
编写设计文档
测试设计
编写测试文档
编码
测试
修改BUG
技能提升
呵呵,感觉全部是有效的工作!其实不是!
从用户角度来看,只有编码一修改Bug是有效的,其它的一律无效!
当然,这是从用户角度来看。从我们开发人员来看,上面的也并不是全部有效的!
例如:设计文档,测试
而技能提升是有效的。
这里不去细致的讨论哪些有效哪些无效,只要记住精益的思想:
尽量发现开发流程中的无效工作,并尽量减少它!
当然,精益开发也给我们提供了一些简单的方法来判定有效工作与无效工作!
这就是精益开发的第一条原则!而后面的所有原则就都是由它产生的!

另一个就是敏捷开发!敏捷的第一条原则就是满足客户需求!
第二原则就是适应变化!
第一原则我觉得不用讲,没客户你就无法生存!
而第二原则,则相比之下会更重要!为什么,因为只有适应变化,才能不断满足客户需求!而且变化是非常快的,如果软件开发不能适应变化,客户的满意度也会下降。因此,我觉得,软件开发能适应变化,快速反应用户需求与变更,是敏捷开发的核心!
如何做到这些呢!
首先就是敏捷开发流程!它使用是迭代开发!
有人不明白,为什么要用迭代开发。如果在已知用户需求不会发生变化的时候,我们还要用迭代吗,为什么不一次就把事情做好,交附给用户!
说到这一点,不得不提到精益开发里的一条:一个软件真正有用的特性往往不足50%,而且经常使用的也只有20%左右。如果你觉得用户的需求不会变化,然后一次给用户把所有特性全部完成的话,你就会陷入到这个2-8理论中!
敏捷的思想是怎样的呢?我们喜欢变化,我们要适应变化,还要引导用户变化!
例如:在你收到用户的10个特性时,经过分析,可能会发现有4个特性可以不要,或者可以用前面的特性取代!但这是用户的特性,用户就是上帝,你又不好直接回复用户,说这个特性可以不要,只要用前面的特性1,稍微改一下用法就可以实现!
用户可不吃你这一套!但如果我们先把一些基础特性在前面的迭代中先完成,然后以体验版的形式给用户。一方面验证一些特性,另一方面,也可以引导客户,对后面的特性进行变化!
这时,用户很有可能对前面的一些特性有新的看法,会要求修改已经实现了的特性。然后对还没有实现的特性可能会不太关心,或者,用户在自己使用的时候,就已经意识到,后面的特性可以不要了!
这样,一方面我们要增加已经完成的特性,而另一方面就要删除原来的特性需求,或者更改需求!这是好事还是不好呢?就不说了吧!
如果我们在一开始就想着是这样的发展过程的话,那是太好不过了!当然,如果你觉得用户善变,那我也就无语了!那就还是走2-8理论吧!
敏捷的核心,就是变化,适应变化!而在软件的开发中,对代码的变化是非常讲究的,也有很多方法和工具。敏捷的迭代是从流程上来管理的,还有其它很多就不多说了。
今天也就是从培训中学习和了解一点,然后结合自己的想法写了一点!

精益与敏捷开发(随笔)相关推荐

  1. 敏捷开发-Scrum与精益相得益彰

    摘要: 瀑布模型是软件工程中最初的经典模型.这种方法对于那些在初期需求就很完整清晰,并且在开发过程中不会有太多变化的项目非常适用.但是,大多数情况下在 软件开发过程中需求会不断变化,而瀑布式开发很难适 ...

  2. 敏捷开发任务看板_看板方法的进化论:从丰田精益方法到敏捷研发

    20世纪60年代,丰田发明了更为有效的生产管理系统.这种管理方式后来逐渐演变成对价值流的控制方法--精益.在这过程中,丰田发明了一个工具,这个工具就是「看板」. 在看板方法在制造业发展的几十年,与现在 ...

  3. 外包模式下的精益敏捷开发 (人员能力篇)

    前言: 本文主要探讨在产品外包的模式下, 精益敏捷开发如何能迅速, 有效的提升外包人员的能力◦ 本文: 许多的产品当采用外包的开发模式时, 所面临的最大的挑战便是: 外包人员的能力, 素质参差不齐◦ ...

  4. 精益与敏捷软件开发概述

    广义而言,精益与敏捷是两组具有高度兼容性的价值观和原则,都阐述了如何成功地进行产品开发.Scrum.XP和看板则是将这些原则运用到实践中的三种具体方法.换句话说,它们是精益和敏捷软件开发里轻度重叠的三 ...

  5. [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

    [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...

  6. 敏捷开发中如何定义“完成”?

    当前,似乎每个人都在践行敏捷.这主要归功于敏捷能够适应变化并整合客户反馈的特质.现代社会这两者是非常重要的,因为技术在不断地革新,且人们获取信息的方式越来越容易--包括公开的客户反馈. 快速响应并将客 ...

  7. Leangoo:用敏捷开发管理思维做团队协作的SaaS软件

    第一次看到leangoo这个产品时,笔者觉得又是一款团队协作软件工具,和其它的团队协作并没有什么本质区别. 当听创始人廖靖斌说起leangoo人员结构时,笔者起初蛮诧异,一家20多人的创业公司,顾问和 ...

  8. 线下活动【西安站】用Leangoo做Scrum敏捷开发实战课(免费)

    Leangoo诚邀您参加 2017<用leangoo做Scrum敏捷开发>实战课!在此实战课上,您不仅可以听到一线资深敏捷顾问带来的敏捷落地实践经验,还可以和众多企业同仁共同探讨敏捷实践过 ...

  9. 线下活动【深圳】用Leangoo做Scrum敏捷开发实战课(免费)

    课程安排: 时间:2017年8月12日  14:00 – 17:30  (13:30签到) 地点: 中南海滨大酒店十一楼海涛厅,南山区南新路3125号. 人数限制:100人 本次活动免费 课程概述: ...

最新文章

  1. 解析Java多线程的两点误区你必知的
  2. 01-How to setup SDK and compile TAs
  3. 【安富莱二代示波器教程】第8章 示波器设计—测量功能
  4. android node
  5. [C++] - 单例模式 释放资源 析构函数的应用
  6. Django APIView源码解析
  7. C++中string::find()函数和string::npos函数的使用
  8. 入门mysql执行计划
  9. SSH框架总结(框架分析+环境搭建+实例源码下载)
  10. 基于Android Studio的游戏开发-横版格斗.part
  11. SQL Sever 创建视图
  12. c语言许多名字随机抽取名字,怎么用ppt实现一个随机抽取名字的功能
  13. 手把手教你用Python网络爬虫+自动化来创建一位属于你自己的虚拟女票(附源码)...
  14. SSL连接是什么意思
  15. 大淘客cms源码修改二次开发
  16. 中恒建模助手插件和绿色建筑的完美结合
  17. 5.3 react路由组件
  18. 未明学院数据分析报告:谁才是淘宝沙发界最受瞩目的明星店铺?大数据分析助你做“星探”!
  19. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
  20. 零基础学习深度学习_深度学习的基础!!!

热门文章

  1. loadrunner—参数化
  2. matlab实战中一些重要的函数总结
  3. Ubuntu12.04下在Android4.0.4源码下载及其编译过程(转载)
  4. 360 与QQ 互掐 受害的却是用户
  5. ruby 反射机制常用方法
  6. 《食堂远程下单系统》需求规格说明书
  7. heartbeat原理介绍
  8. 今天微软的office 2010终于发布了!
  9. Wiki系统分析比较
  10. Excel 自动根据Sheet名生成目录