跳至主要內容
精益企业 - 从组织的角度: 集成精益,敏捷,DevOPS等

精益企业 - 从组织的角度: 集成精益,敏捷,DevOPS等

Lean Enterprise (精益企业)是指一个产品系列价值流的不同部门同心协力消除浪费,并且按照顾客要求,来拉动生产。本文主要基于Scaled Agile, Inc. (SAI)公司的SAFe的框架(SAFe for Lean Enterprises)向你介绍精益企业的7个核心,并站在更高的视野层级上看敏捷和devops的位置,可以给你更多的启发。

精益企业全局

Lean Enterprise (精益企业):一个产品系列价值流的不同部门同心协力消除浪费,并且按照顾客要求,来拉动生产。这个阶段性任务一结束,整个企业立即分析结果,并启动下一个改善计划。


gavin-james大约 8 分钟开发流程开发流程
典型的中小团队开发流程详解

典型的中小团队开发流程详解

一直想总结一个比较完善的开发流程,但是各个公司的规模,文化和开发方式有很大的差异;后期会加入其它公司的研发流程。

相关讨论

在知乎上找到一个关于软件研发的流程的讨论,好几个回答实在是太精彩了,程序员在某些黑色幽默上还是有很大的默契的,这说明在研发问题上除非非常规范的大公司,其它大多数公司的研发流程是会被身处其中的研发人员所吐槽的;知乎的讨论 https://www.zhihu.com/question/20003204


gavin-james大约 1 分钟开发流程开发流程
敏捷开发 - 开发实践:测试驱动开发(TDD)

敏捷开发 - 开发实践:测试驱动开发(TDD)

测试驱动开发(Test Driven Development, 简称TDD)是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。本主要介绍TDD的基础和实践案例,以及很多团队无法使用TDD方式开发的一些思考。


gavin-james大约 14 分钟开发流程开发流程
敏捷开发 - 面向过程管理:Kanban方式

敏捷开发 - 面向过程管理:Kanban方式

看板本身源于日本丰田公司对精益制造的实践,后延伸到敏捷开发领域;它的核心是JIT(Just In Time): “让正确的物资,在正确的时间,流动到正确的地方,数量是刚刚好的数量。” 本文主要介绍看板的定义,核心实践以及在研发领域的实践等。

什么是Kanban

看板本身源于日本丰田公司对精益制造的实践,后延伸到敏捷开发领域;这里之所以要学习原始含义,是很多开发者并不明白看板的核心,即JIT(Just In Time): “让正确的物资,在正确的时间,流动到正确的地方,数量是刚刚好的数量。”


gavin-james大约 17 分钟开发流程开发流程
敏捷开发 - 面向过程管理:Scrum方式

敏捷开发 - 面向过程管理:Scrum方式

Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum Master角色负责维护过程和任务,Product Owner代表利益所有者,Developer Team包括了所有开发人员。

什么是Scrum?

Scrum是迭代式增量软件开发过程,是敏捷方法论中的重要框架之一,通常用于敏捷软件开发。Scrum包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum Master角色负责维护过程和任务,Product Owner代表利益所有者,Developer Team包括了所有开发人员。


gavin-james大约 19 分钟开发流程开发流程
敏捷开发 - 面向工程管理:极限编程(XP)

敏捷开发 - 面向工程管理:极限编程(XP)

极限编程(ExtremeProgramming,简称XP)是由KentBeck在1996年提出的,是一种软件工程方法学,是敏捷软件开发中可能是最富有成效的几种方法学之一。XP是一种近螺旋式的开发方法,它将复杂的开发过程分解为一个个相对比较简单的小周期;通过积极的交流、反馈以及其它一系列的方法,开发人员和客户可以非常清楚开发进度、变化、待解决的问题和潜在的困难等,并根据实际情况及时地调整开发过程。极限编程透过引入基本价值、原则、实践方法等概念来达到降低变更成本的目的。


gavin-james大约 14 分钟开发流程开发流程
敏捷开发 - 敏捷软件开发理论及流程

敏捷开发 - 敏捷软件开发理论及流程

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

什么是敏捷软件开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。


gavin-james大约 5 分钟开发流程开发流程
传统模式 - 结合软件测试的过程模型演化:V模型,W模型,X模型等

传统模式 - 结合软件测试的过程模型演化:V模型,W模型,X模型等

对于前文软件开发生命周期的实现,为保障软件质量,将测试工作凸显出来(通过前文介绍的线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)等方式),结合测试又演化出了针对测试的过程模型,主要有V模型,W模型,X模型,H模型等。

概述

对于前文软件开发生命周期的实现,为保障软件质量,将测试工作凸显出来(通过通过前文介绍的线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)等方式),又演化出了针对测试的过程模型,主要有V模型,W模型,X模型,H模型等。


gavin-james大约 11 分钟开发流程开发流程
传统模式 - 软件开发生命周期与过程模型(瀑布模型,原型模型和螺旋模型等)

传统模式 - 软件开发生命周期与过程模型(瀑布模型,原型模型和螺旋模型等)

软件生命周期(Software Life Cycle,SLC)是软件的产生直到报废或停止使用的生命周期。软件生命周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级等阶段。那么如何将上述软件开发过程方法化呢?这就是过程模型。过程模型(Process Models) 意图解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动(activities)有效地组织了起来。他们之间的线性(linear)、迭代(iterative)、演进(evolutionary)和平行(parallel)关系会产生不同的模型。常见的过程模型包括:瀑布模型、原型模型、增量模型、螺旋模型等。


gavin-james大约 18 分钟开发流程开发流程