软件开发本质论(敏捷开发)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cuiyaonan2000/article/details/83030403


敏捷开发有 4 种价值 和 12个原则

---------------价值-----------------------------
自然之路的原则: 尽早提供价值,经常提供价值(必须以创造价值为中心,而且价值必须是可见的)

一种观察软件开发过程的方法


价值就是那些我们想要的东西.
当软件发布时,它的价值才能体现[email protected]

价值实现后,要确保价值的正确性,就会验证价值.


最大价值(项目整体),最小价值(最小可市场功能特性)
一个软件产品应用的20/80 法则.(在计划时间里不可能得到所有想要的功能特性.)
每个人想要的功能特性都不同,但肯定没有人想要所有的功能特性


根据功能特性划分价值(假设功能特性,高度代表价值,宽度代表成本.能够很好的展示出功能的重要性)

价值最大化就是频繁交付小的,以价值为中心的功能特性

---------------价值-----------------------------


-------------------------根据功能特性 ----- 指导------------------

我们所得到的肯定要少于我们想要的.毕竟,我们想要实现所有的功能.
事实上,我们并不能实现所有的功能特性,我们需要正视这一事实,并进行相应的管理.而不是直至不理.同时需要对项目进行引导,而不
任由它发展.

我们想要的超出了我们的能力范围.这也是目标的本质.
我们以全有,或者全无来制定项目计划,视图去设计所有的功能特性,这使我们处于不利的境地.遇到问题后我们没有时间去改变,问题的暴露也只能在项目后期才能体现,前期毫无预警.且在后期的开发过程中,不能灵活调整[email protected]

根据功能特性交付,使项目更具有可预见性(对比原始开发模式的图,和根据功能特性交付的图.可一眼看出差距)

-------------------------根据功能特性 ----- 指导------------------

---------------------------根据功能特性----组织-------------------

功能特性团队中,需要有一个 负责构建产品推动人

在构建功能特性团队过程中,肯定会有很多问题,比如不同功能特性团队之间的相互协调.可能会让开发进度变慢.这是一个过程,前期是个磨合的过程.但是只要功能特性团队在朝着好的方向发展,最终一个团队是能构建好的.(组建兴趣小组&实践社区  我很怀疑)[email protected]

关于我们并没有足够多的有经验的人(后端,前端,测试,ui交互):根据功能特优先级分配(组建兴趣小组&实践社区  我很怀疑)


组建实践社区:将原属于不同 功能构建团队的 开发 测试 交互,按照职责类型组成一个小组,由高级开发负责带领.

---------------------------根据功能特性----组织-------------------

---------------------------根据功能特性----计划-------------------

产品的愿景总是以伟大的想法开始,虽然朦胧却很诱人.愿景是产品的大思路,而不是小的功能特性.


计划本身是无用的,但做计划是必要的

(的确需要做计划,但并不需要详细列出一张什么时候发生事情的清单.我们可以在事情发生后在去做计划.太细的计划只能浪费时间)

尽早确定哪些核心功能特性必须尽快有,哪些功能特性不能没有

做计划能在仔细考虑了很多不好的想法后,我们才能得到几个不错的想法.

计划内容:  A确定项目的时间期限和开支预算 B优先开发最有价值的功能特性 C确保产品能够随时发布,并在结束时间停止

A确定项目总体预算与截至日期  B找到一位产品推动人来决定功能特性的开发顺序,  C组建一个能随时交付的团队

迭代/冲刺  大故事>小故事>任务(大产品>小产品)

团队工作量根据方法"昨日天气(yesterday's weather)"

将功能特性一直拆分到具有独立测试价值的故事[email protected]

无论从商业角度还是管理角度,要获得最好的结果,需要明确各项工作是按时完成还是推迟进行.

每个迭代 不能吃的太多

在不进行估算的情况下进行估算:一般来说估算结果很可能是错误的.如果想认真的估算,一般来说都会很保守.且我们会把注意力集中在成本上,而忽略了价值[email protected]
---------------------------根据功能特性----计划-------------------


---------------------------根据功能特性----构建产品-------------------

在一个短周期内,完整的构建一个小的产品

(在每个周期内,确定需要完成哪些功能特性,并清楚地说明如何测试它们,每一个迭代都是一个学习,
学习如何估算工作量,学习如何检查任务是否完成了.还能学习代码设计的能力)

细化产品愿望: 我们需要相信业务团队能够弄清楚他们到底需要什么.

总是将价值可能最大的任务列为下一个目标

每个迭代必须修复所有的缺陷

---------------------------根据功能特性----构建产品-------------------


---------------------------同时构建功能特性与基础-------------------

理想状态是在 交付的时候我们能够完成所有的功能特性

A: 基础优先意味着能够进入市场的功能特性减少(延缓项目进展的同时,减少产品价值)
B: 在构建功能特性的同时构建相关的基础还是(将功能特性做到极致是错误的.可能并满足需求,切回浪费时间)
C: 首先构建简单而使用的版本,在多次迭代中不断完善每个功能特性(最小可行产品)[email protected]

如何选择功能特性的最佳组合需要考验 产品推动人的能力.以期满足随时都能够发布一个可用的产品.

---------------------------同时构建功能特性与基础-------------------


---------------------------零缺陷与良好的设计---------------------------


产品构建是在不断发展和变化的设计基础上,由数量不断增长,能够正确运行的功能特性组成.

需要及时了解 哪些功能特性已经完成,且完成的质量怎么样.

因为功能特性是逐渐增加和完善的,同时设计也是逐渐改进的.

若不能保持设计处于良好的状态,轻则影响项目进度,重则导致项目失败.(如果放任设计退化,项目进度肯定会变慢)

2个层面的测试:业务测试,开发测试
测试不但会减慢开发速度,发而使其变得更快.(减少错误,同时使错误更快地被发现)


好的设计,就是对相应的扩展更容易.

软件开发的本质就是要求我们进行测试和重构.


---------------------------零缺陷与良好的设计---------------------------

--------------------------如何衡量价值-----------------------

敏捷要求我们基于价值决定做事情的先后顺序.

选择价值就是选择对我们重要的东西,所谓价值就是我们想要的东西.

价值是 对客户有用 或者 在商业上有用 等角度考虑我们看重的东西.


为什么不要根据数据进行决策:
A首先我们并非真的知道数据 
B其次,大的差别很重要,小的差别不重要 [email protected]
C最后不同类型的价值不具可比性(不同时期的价值取向不一样)


--------------------------如何衡量价值-----------------------


--------------------------如何让软件真正运行-------------------

如何尽快的开发一个软件:
    A专注于我们看中的东西
    B不时地开发出真正的软件
    C逐步构建我们想要的产品
    D学习需要的计划,管理以及技术方面的能力
    
--------------------------如何让软件真正运行-------------------

--------------------------组建强大的团队------------------------

请求管理人员确保团队成员知道要做什么,然后让他们自己去搞清楚怎么做.
自主,专精,目的 为提高员工满意度和工作效率的三大驱动力.

--------------------------组建强大的团队------------------------


-----------------------------使用五卡法进行初步的预测--------------------

第一步:列出三到五个最重要的 "史诗级" 组成部分.用一句话描述
第二步:将第一步的卡片模块细化到三至五张更小的卡片上.使每一张片的内容更具体,更明确,范围更小
第三步:重复第二步知道确定最后的卡片,团队成员能在一周内完成.

-----------------------------使用五卡法进行初步的预测--------------------


------------------------------管理的五大要素----------------------

计划,组织,人员配备,领导,控制(传统的的,敏捷全靠自主~~~~~高效的团队才行)

敏捷: 授权 的重要性(自主,专精,目的)

以结果为导向评价工作的好坏.

不要以培训,监督等手段 促使员工更加努力的工作(自主,专精,目的)

------------------------------管理的五大要素----------------------


 

猜你喜欢

转载自blog.csdn.net/cuiyaonan2000/article/details/83030403
今日推荐