一、精益软件开发
精益软件开发并没有具体的开发方法或步骤,而是一堆原则,原因是它认为没有所谓的最佳实践。以下为精益软件开发的七大原则:
(一)消除浪费(Eliminate waste)
什么是浪费?凡是对客户或产品不具备价值的行为。
1、部分完成的工作
2、额外过程
3、多余功能
4、任务调换
5、等待
6、移动
7、缺陷
(二) 增强学习(Amplify learning)
1、软件开发室一种学习的过程
2、科学方法尤其适用在解决复杂的问题
3、短暂的学习周期是最高效的学习过程
4、测试时最好的反馈
5、团队同步学习
6、善用共同开发工具
(三)尽量延迟决策(Decide as late as possible)
对流程而言:等到真正需要做改变的时候再做决策,提前的变更只会增加无形的成本;
对个人而言:等到做决策所需要的信息较充分后,再来做判断会比较准确。
(四)尽快交付(Deliver as fast as possible)
采用看板方法来实践拉动系统。拉动系统是一种只补充已消耗的资源来达到控制资源流动的生产管理系统。看板上有大家的工作状态,团队工作的进度、效能及瓶颈,每个流程状态大家都一目了然,这样的透明度最适合自我引导的状态。
(五)授权团队(Empower the team)
一群积极创造增值的人员才是组织真正的核心;简单的规则让团队显得一致,而一致的目标让团队更加团结,混乱与充满相怨的环境只会让团队失去内在成长的动机。
越优秀的团队越适用简单的管理规则,但那是在他们表现优秀的时候。
(六)嵌入完整性(Build integrity in)
(七)着眼整体(See the whole)
1、 一个系统的好坏不是由单一组件来决定的,也不是各部分的总和,还要加上各部分相互的协作能力;
2、其实客户需要的不是软件,他们要的是解决他们的问题。