2019-09-23 19:08:01 huaxiangchen 阅读数 8
  • 项目管理从入门到精通:实践经验分享,实用套路讲解,...

    课程简介: 本系列课程主要讲三个内容: 1)讲解项目规律,解决项目延期和加班严重问题。 2)讲解事物或问题的背后逻辑,打造项目经理的方法论; 3)主动提升项目组成员能力,打造高效的学习型团队。 课程分为三个部分: 第一部分:项目管理的道法术,讲项目规律,讲如何打造高效的学习团队。 第二部分:混合式开发讲解,讲项目管理的方法论。 第三部分:通过对一个完整项目进行全流程的剖析,复习每个阶段的主要工作内容,学习课程上讲的技巧如何在实际项目中落地。 第一部分: 项目管理之道,我讲的是控盘式项目管理,掌握项目规律,根据产品定义、成员及能力和时间,灵活打造适合当下项目的管理方法。 针对项目管理之道,我提出了“灵活变通的流程管理”和“学习型团队建设”两个项目管理之法。 灵活变通的流程管理,我通过时代背景,对敏捷开发宣言和原则进行分析,讲解项目有时能做成,有时做不成,它们的原因所在。结合迭代开发和瀑布型开发的优点,我提出了混合式开发。 学习型团队建设,我讲了团伙与团队,让你对自己的团队做定位;分享了小企业的人才结构,让你知道员工修养低、能力差的前因后果;讲解用人之道和团队建设原理,让你知道怎么用人;通过案例来讲解如何运用生命力四要素,打造学习型团队。 第二部分,混合式开发流程节点讲解。 每个阶段,我从做什么、怎么做、谁来做、做的结果,几个部分详细讲解项目每个阶段要怎么来做。 除这四个部分,我还会讲解在每个阶段遇到的问题,如何提升效率的技巧,原则性的内容等。理解上的错误,方法上的错误,我会重点讲解。某些节点中,有需要讲项目成员的行为模式和思维模式,会拿出来做讲解。 第三部分,完整项目全流程剖析 我把做这个系列课程做为一个项目,从概念阶段开始到项目上线、总结复盘,我是如何做的,中间遇到问题是如何解决的,应用到哪些技巧等,进行完整的分享。

    136 人正在学习 去看看 陈华祥

敏捷开发宣言 新时代解读

在这里插入图片描述

敏捷开发时代背景

在解读敏捷开发宣言之前,我们先来了解下敏捷开发提出来时的时代背景。敏捷开发是在九几年提出来,到2001年确定成型。
在当年这个时代背景下,主流的软件研发项目有三类:

一、软件企业做好系统,卖给其它企业使用,比如ERP类的系统。
二、大型企业有软件需求,外包给软件企业开发。
三、门户网站。

这几种情况,基本上都是外包类、实施类项目。他们的共同点是,客户知道需要个软件,但是他们搞不懂软件是什么样子的,你要是想问他细节,他跟你干瞪眼的情况。

我们结合项目三要素来看,明确的产品需求,完全做不到,所以瀑布型开发,显得很古板,焕发僵化的味道,项目成功率非常低。

所以,提出新的开发方法势在必行,才有了敏捷开发。

我们看完敏捷开发的时代背景,我们再来看现在的软件行业。现在的主流都是企业自主研发平台和系统,自已运营,希望在行业里杀出一条血路,成为细分的独角兽。不想成为独角兽的公司,都不是个好平台。

套用一句话,“梦想总是要有的,万一实现了呢”。

平台,是需要深耕的,不断的升级优化。敏捷开发提出的时代项目是一锤子买卖,这是完全两种不同的形态,这会造成敏捷开发提出的思想,甚至核心思想,与现在不符,如果还是照搬敏捷开发,你会在项目中到处都是问题。

我们简单过了大背景,现在我们来看敏捷开发宣言。

在这里插入图片描述

【个体与交互 胜过 过程与工具】

这个宣言在现在是不适合的,当年是需求不清楚,所以需要产品经理、开发、测试等,坐一起天天讨论要做什么,怎么做,采用什么技术。

瀑布型开发,有严格的过程和工具来做项目,这种方法在产品需求不明确的情况下,就是个灾难。

所以提出了个体与交互 胜过 过程与工具。

分析时代背景的时候,我们讲过,行业环境不同了,你有个新的想法,有一堆的软件可以参考,很容易就能把产品原型整理出来。这叫天下文章一大抄,鲁迅先生表示:我有说过这句话。所以,个体与交互显得很浪费时间。

我们做平台做应用,都有一个梦想,要改变行业,颠覆生活等等。所以平台和应用都是长期运营的,需要不断的升级。

国内的软件行业有个很不好的现象,人员流动太大,一年一换的人比比皆是。所以如果你不留底,后面接手的人就很麻烦。对于要求不高的公司,我们经常会看到有工程师在代码里用注释骂人,因为前面写的,没有留底,搞不懂。然后接手他工作的人,再骂他。

鉴于这几种情况,过程与工具 更 适合 现在的时代背景。

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

这个宣言,放在现在只对一半,可以工作的软件,永远是最重要的,放在哪时都一样。面面俱到的文档,做不到,但是文档是必须要做的。

一、现在做系统,有很多的框架、组件、三方接口和开源代码等可以选择。这些框架、组件等本身也在优化和淘汰,如果没有文档留底,到时出问题的时候,你就会发现,无从下手。

你不知道是框架引起的,还是组件或开源代码版本太低。出现问题,首先想到的是网上扒一下看有没有人遇到类似的问题,怎么解决的。

二、平台要不断升级,负责的人员频繁换工作,如果没有留下文档,接手的人要花大量的时间去看代码,浪费很多的时间,改东西的时候,不懂乱动,他就会用一些方法把原来的代码包起来,再加上自己的,运营时间久了,代码根本没办法维护。

我见过最极端的案例,一个做朋友圈分享的功能,一个函数有三千多行,单单显示发布时间那一行文字,就有五六个,有的是把文字隐藏,有的改透明色,有的加判断条件让他不执行等等。你要去改这个代码,你根本不知道是哪句话被执行到,被执行到的可能是透明色,不显示出来,你改个半天发现没效。

三、文档除了留底的作用,它最大的作用实际上是整理思路,工程师用UML也好,文字也好,思维导图也好,只要把思路整理出来就行,项目组做评审就看你理解的对不对,不对的在开发之前就找出来,后面开发的时候,就是把理解的内容翻译成代码,进度有保证,而且bug也少。

这就是文档的价值,而当时提“可以工作的软件 胜过 面面俱到的文档”,是因为需求不明确,你根本写不出文档,而不是不要写。为什么我现在着重讲这个呢?我经常面试人,我习惯会问,做项目的时候,有没有写什么文档?经常有面试者说:“我们用敏捷开发,不需要写文档。” 谁说写文档是写一堆的文字,是写图文并茂的文章。

遇到有悟性的,我会稍微给他指点一下,不管他能不能应聘上,遇到没有悟性的,我赶紧说:“对,对,你说的是对的”,免得他认为我连敏捷开发都不懂。

【客户协作 胜过 合同谈判】

做平台的人都清楚,现在对体验、客户交互要求越来越高,所以工程师不会说这个不好实现,我们换个简单的,不会有太多工程师与产品经理扯皮的事。这条对于平台型的公司来说,就不适合。

对于做外包的软件公司,这条还是适合的。

【响应变化 胜过 遵循计划】

这条宣言本身是很好,但是放在大环境下,就会有些出入。

当年是客户不知道要什么,“宣言一”说好听是个体与交互,说难听就是几个人一起猜。所以,做出来的东西可能不是客户想要的,所以有很多变化。

现在产品需求基本上是明确的,如果有不明确的,很容易就能确定下来,研发中间是会有些需求变更,基本上是可控的,所以响应变化显得 没那么重要。

现在创业公司很多,产品必须要在某时间点出来,不然就影响到融资。融资过的公司,产品更要求在某时间点出来,因为要下一笔融资。所以遵循计划显得比响应变化更重要。

上面分享的纯属个人观点,如果你有不同的意见,我们可以私下沟通。

在这里插入图片描述

这篇内容节选自我的视频课程《项目管理从入门到精通:实践经验分享,实用套路讲解,项目规律实训》,有兴趣的童鞋,可以从课程中了解更多关于敏捷开发的讨论;知道采用敏捷开发,项目有时能准时开发出来,有时又延时严重的前因后果。

2017-03-03 16:53:22 qq_15037231 阅读数 1720
  • 项目管理从入门到精通:实践经验分享,实用套路讲解,...

    课程简介: 本系列课程主要讲三个内容: 1)讲解项目规律,解决项目延期和加班严重问题。 2)讲解事物或问题的背后逻辑,打造项目经理的方法论; 3)主动提升项目组成员能力,打造高效的学习型团队。 课程分为三个部分: 第一部分:项目管理的道法术,讲项目规律,讲如何打造高效的学习团队。 第二部分:混合式开发讲解,讲项目管理的方法论。 第三部分:通过对一个完整项目进行全流程的剖析,复习每个阶段的主要工作内容,学习课程上讲的技巧如何在实际项目中落地。 第一部分: 项目管理之道,我讲的是控盘式项目管理,掌握项目规律,根据产品定义、成员及能力和时间,灵活打造适合当下项目的管理方法。 针对项目管理之道,我提出了“灵活变通的流程管理”和“学习型团队建设”两个项目管理之法。 灵活变通的流程管理,我通过时代背景,对敏捷开发宣言和原则进行分析,讲解项目有时能做成,有时做不成,它们的原因所在。结合迭代开发和瀑布型开发的优点,我提出了混合式开发。 学习型团队建设,我讲了团伙与团队,让你对自己的团队做定位;分享了小企业的人才结构,让你知道员工修养低、能力差的前因后果;讲解用人之道和团队建设原理,让你知道怎么用人;通过案例来讲解如何运用生命力四要素,打造学习型团队。 第二部分,混合式开发流程节点讲解。 每个阶段,我从做什么、怎么做、谁来做、做的结果,几个部分详细讲解项目每个阶段要怎么来做。 除这四个部分,我还会讲解在每个阶段遇到的问题,如何提升效率的技巧,原则性的内容等。理解上的错误,方法上的错误,我会重点讲解。某些节点中,有需要讲项目成员的行为模式和思维模式,会拿出来做讲解。 第三部分,完整项目全流程剖析 我把做这个系列课程做为一个项目,从概念阶段开始到项目上线、总结复盘,我是如何做的,中间遇到问题是如何解决的,应用到哪些技巧等,进行完整的分享。

    136 人正在学习 去看看 陈华祥
    敏捷开发宣言:
      1. 个体和交互胜过过程和工具
      2. 可工作的软件胜过面面俱到的文档
      3. 客户协作胜过合同谈判
      4. 响应变化胜过遵循计划
      从上面的宣言可以看出,敏捷开发的核心是人 、协作、时刻可运行的软件、变化
2016-10-24 13:38:40 llllloj 阅读数 910
  • 项目管理从入门到精通:实践经验分享,实用套路讲解,...

    课程简介: 本系列课程主要讲三个内容: 1)讲解项目规律,解决项目延期和加班严重问题。 2)讲解事物或问题的背后逻辑,打造项目经理的方法论; 3)主动提升项目组成员能力,打造高效的学习型团队。 课程分为三个部分: 第一部分:项目管理的道法术,讲项目规律,讲如何打造高效的学习团队。 第二部分:混合式开发讲解,讲项目管理的方法论。 第三部分:通过对一个完整项目进行全流程的剖析,复习每个阶段的主要工作内容,学习课程上讲的技巧如何在实际项目中落地。 第一部分: 项目管理之道,我讲的是控盘式项目管理,掌握项目规律,根据产品定义、成员及能力和时间,灵活打造适合当下项目的管理方法。 针对项目管理之道,我提出了“灵活变通的流程管理”和“学习型团队建设”两个项目管理之法。 灵活变通的流程管理,我通过时代背景,对敏捷开发宣言和原则进行分析,讲解项目有时能做成,有时做不成,它们的原因所在。结合迭代开发和瀑布型开发的优点,我提出了混合式开发。 学习型团队建设,我讲了团伙与团队,让你对自己的团队做定位;分享了小企业的人才结构,让你知道员工修养低、能力差的前因后果;讲解用人之道和团队建设原理,让你知道怎么用人;通过案例来讲解如何运用生命力四要素,打造学习型团队。 第二部分,混合式开发流程节点讲解。 每个阶段,我从做什么、怎么做、谁来做、做的结果,几个部分详细讲解项目每个阶段要怎么来做。 除这四个部分,我还会讲解在每个阶段遇到的问题,如何提升效率的技巧,原则性的内容等。理解上的错误,方法上的错误,我会重点讲解。某些节点中,有需要讲项目成员的行为模式和思维模式,会拿出来做讲解。 第三部分,完整项目全流程剖析 我把做这个系列课程做为一个项目,从概念阶段开始到项目上线、总结复盘,我是如何做的,中间遇到问题是如何解决的,应用到哪些技巧等,进行完整的分享。

    136 人正在学习 去看看 陈华祥

先po一下敏捷软件开发宣言以及其遵循的原则吧

2001年,17位编程大师共同发布《敏捷软件开发宣言》:
“人”以及“人与人的互动” 胜于 “过程”和”工具”
Individuals and interactions over processes and tools
可运行的软件 胜于 面面俱到的文档
Working software over comprehensive documentation
客户合作 胜于 合同谈判
Customer collaboration over contract negotiation
响应变化 胜于 遵循计划
Responding to change over following a plan

遵循的12条准则:

1.我们最优先要做的是通过尽早的、持续的交付有价值的软件来使客户满意。
2.即使到了开发的后期,也欢迎改变需求,敏捷过程利用变化来为客户创造竞争优势。
3.经常性地交付可以工作的软件,交付的间隔可以从几个星期到几个月,交付的时间间隔越短越好。
4.在整个项目开发期间,业务人员和开发人员必须天天都在一起工作。
5.围绕被激励起来的个体来构建项目。给他们提供所需的环境和支持,并且信任他们能够完成工作。
6.在团队内部,最具有效果并且富有效率的传递信息的方法,就是面对面的交流。
7.工作的软件是首要的进度度量标准。
8.敏捷过程提倡可持续的开发速度。责任人、开发者和用户应该能够保持一个长期的、恒定的开发速度。
9.不断地关注优秀的技能和好的设计会增强敏捷能力。
10.简单–使未完成的工作最大化的艺术—是根本的。
11.最好的构架、需求和设计出自于自组织的团队。
12.每隔一定时间,团队会在如何才能更有效地工作方面进行反省,然后相应地对自己的行为进行调整。


个人看法

现代软件开发的环境是十分复杂的,客户的需求可能会随时的发生改变,因此一个如软件的开发过程也会变的十分的复杂。所以最重要的一点就是需要随时和客户保持交流互相交换意见,调整软件的开发方案,这样在最后才能使软件按照预期的方向进行发展。敏捷开发,顾名思义开发速度需要快,所以要尽可能早地将客户所要求的软件交付给客户。我们从软件开发的开始到结束,到要时刻准备好面对客户需求的改变,因为开发软件的最终目的是满足客户的需求,为了能够让最终的软件能够发挥其最大的作用,我们随时接受改变,接受挑战,直到最后时刻。同时我们还可以产出许多软件开发的中间产品,因为,开发过程会是漫长的,如果在这个漫长的期间客户没有收到任何有功能的产品,可能会对产品的开发方向失去控制,并且在最后拿到最重产品甚至会对产品功能一点也不熟悉,从而使产品的价值大打折扣。在开发期间,最少不了的就是业务人员以及开发人员的要求,一方提供方向性的规划,另一方提供实现的路线,只有双方不断沟通协调,软件才会朝着要求的方向顺利地开发下去。一定要提倡面对面的交流,只有当面才能把我们最真实的想法给表达出来,产生摩擦与认可,甚至会有好的想法出现,所以面对面交流是十分重要的甚至能够带来意想不到的结果。敏捷开发过程我个人认为是十分紧凑的,所以一个好的领导是必不可少的,合理分配人力资源和各阶段的进度,能够有效地提高开发的效率与进度。同时好的领导要善于发现每个人的特点,要及时地掌握各种新的技术,使得各尽其所,每个人都能够发挥其最大的作用。同时在开发过程中,我们还应该不断的组织反省,集体讨论开发过程当中所遇到的一系列问题,总结归纳,使得在之后的过程中能够更加顺利。

可以看出敏捷开发思想的优势十分明显,相比于传统的过程模型,其效率有了明显的提升,同时效果也得到了质的飞跃。传统过程模型是为了任务而开发,而敏捷开发是为了客户而开发,这之间的区别可想而之。所以以上思想和原则对我们今后的帮助会很大,我从中学到了许多知识。

2006-10-02 14:45:00 marxix 阅读数 454
  • 项目管理从入门到精通:实践经验分享,实用套路讲解,...

    课程简介: 本系列课程主要讲三个内容: 1)讲解项目规律,解决项目延期和加班严重问题。 2)讲解事物或问题的背后逻辑,打造项目经理的方法论; 3)主动提升项目组成员能力,打造高效的学习型团队。 课程分为三个部分: 第一部分:项目管理的道法术,讲项目规律,讲如何打造高效的学习团队。 第二部分:混合式开发讲解,讲项目管理的方法论。 第三部分:通过对一个完整项目进行全流程的剖析,复习每个阶段的主要工作内容,学习课程上讲的技巧如何在实际项目中落地。 第一部分: 项目管理之道,我讲的是控盘式项目管理,掌握项目规律,根据产品定义、成员及能力和时间,灵活打造适合当下项目的管理方法。 针对项目管理之道,我提出了“灵活变通的流程管理”和“学习型团队建设”两个项目管理之法。 灵活变通的流程管理,我通过时代背景,对敏捷开发宣言和原则进行分析,讲解项目有时能做成,有时做不成,它们的原因所在。结合迭代开发和瀑布型开发的优点,我提出了混合式开发。 学习型团队建设,我讲了团伙与团队,让你对自己的团队做定位;分享了小企业的人才结构,让你知道员工修养低、能力差的前因后果;讲解用人之道和团队建设原理,让你知道怎么用人;通过案例来讲解如何运用生命力四要素,打造学习型团队。 第二部分,混合式开发流程节点讲解。 每个阶段,我从做什么、怎么做、谁来做、做的结果,几个部分详细讲解项目每个阶段要怎么来做。 除这四个部分,我还会讲解在每个阶段遇到的问题,如何提升效率的技巧,原则性的内容等。理解上的错误,方法上的错误,我会重点讲解。某些节点中,有需要讲项目成员的行为模式和思维模式,会拿出来做讲解。 第三部分,完整项目全流程剖析 我把做这个系列课程做为一个项目,从概念阶段开始到项目上线、总结复盘,我是如何做的,中间遇到问题是如何解决的,应用到哪些技巧等,进行完整的分享。

    136 人正在学习 去看看 陈华祥

 敏捷软件开发宣言的英文版地址:http://agilemanifesto.org/

 敏捷软件开发宣言

 我们正在通过亲身实践,以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,,我们认为:

个体和交互 胜过 过程和工具

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

客户合作 胜过 合同谈判

响应变化 胜过 遵循计划

虽然右项也有价值,但是我们认为左项具有更大的价值。

2006-12-16 12:54:00 arthurlee 阅读数 827
  • 项目管理从入门到精通:实践经验分享,实用套路讲解,...

    课程简介: 本系列课程主要讲三个内容: 1)讲解项目规律,解决项目延期和加班严重问题。 2)讲解事物或问题的背后逻辑,打造项目经理的方法论; 3)主动提升项目组成员能力,打造高效的学习型团队。 课程分为三个部分: 第一部分:项目管理的道法术,讲项目规律,讲如何打造高效的学习团队。 第二部分:混合式开发讲解,讲项目管理的方法论。 第三部分:通过对一个完整项目进行全流程的剖析,复习每个阶段的主要工作内容,学习课程上讲的技巧如何在实际项目中落地。 第一部分: 项目管理之道,我讲的是控盘式项目管理,掌握项目规律,根据产品定义、成员及能力和时间,灵活打造适合当下项目的管理方法。 针对项目管理之道,我提出了“灵活变通的流程管理”和“学习型团队建设”两个项目管理之法。 灵活变通的流程管理,我通过时代背景,对敏捷开发宣言和原则进行分析,讲解项目有时能做成,有时做不成,它们的原因所在。结合迭代开发和瀑布型开发的优点,我提出了混合式开发。 学习型团队建设,我讲了团伙与团队,让你对自己的团队做定位;分享了小企业的人才结构,让你知道员工修养低、能力差的前因后果;讲解用人之道和团队建设原理,让你知道怎么用人;通过案例来讲解如何运用生命力四要素,打造学习型团队。 第二部分,混合式开发流程节点讲解。 每个阶段,我从做什么、怎么做、谁来做、做的结果,几个部分详细讲解项目每个阶段要怎么来做。 除这四个部分,我还会讲解在每个阶段遇到的问题,如何提升效率的技巧,原则性的内容等。理解上的错误,方法上的错误,我会重点讲解。某些节点中,有需要讲项目成员的行为模式和思维模式,会拿出来做讲解。 第三部分,完整项目全流程剖析 我把做这个系列课程做为一个项目,从概念阶段开始到项目上线、总结复盘,我是如何做的,中间遇到问题是如何解决的,应用到哪些技巧等,进行完整的分享。

    136 人正在学习 去看看 陈华祥

敏捷软件开发宣言

 

Manifesto for Agile Software Development
敏捷软件开发宣言

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法。通过这项工作,我们认为:

Individuals and interactions over processes and tools
个体和交互  胜过  过程和工具
Working software over comprehensive documentation
可以工作的软件  胜过  面面俱到的文档
Customer collaboration over contract negotiation
客户合作  胜过  合作谈判
Responding to change over following a plan
响应变化  胜过  遵循计划

That is, while there is value in the items on the right, we value the items on the left more.
虽然右项也具有价值,但我们认为左项具有更大的价值。

Kent Beck                   Mike Beedle              Arie van Bennekum
Alistair Cockburn        Ward Cunningham    Martin Fowler
 James Grenning        Jim Highsmith            Andrew Hunt
Ron Jeffries                Jon Kern                    Brian Marick
 Robert C. Martin        Steve Mellor              Ken Schwaber
Jeff Sutherland           Dave Thomas

http://www.agilemanifesto.org/

注:中译文出自本书的中文版书。

 

- 作者: 秋雁 2005年05月12日, 星期四 12:36  

浅析敏捷开发

阅读数 139

没有更多推荐了,返回首页