Essence Kernel是一个小的实践的独立过程,基于你的工作和方法提供了通用的基础。从三个方面描述一个过程或者软件工程:转自项目管理者联盟
第一个方面是描述软件工程能力健康进度;项目经理圈子
第二个方面是支持能力进度的必要实践;
第三个方面是执行这些实践需要的能力。项目管理者联盟
最重要的是有一个通用的认识,来理解软件工程能力是如何进展的。Essence 定义了七个纬度来描述度量这种进展,成为阿尔法:机遇、涉众、需求、软件系统、工作、团队、工作方式。项目经理圈子
每一个阿尔法都有一系列指定的状态,每个状态随着进度的进展都有一个编号。每一个状态都有一个检查单来帮助执行者来监控当前阿尔法的能力状态,并且来帮助执行者移动到下一 个状态。这是想给执行者提供一种直觉的工具来了解当前能力的进展和健康度,使用一种通用的、和开发方法无关的方式。项目管理者联盟
阿尔法可以变成一种可以触摸的牌,每个牌都有一个状态,状态下面有一个简要的检查单(参考图3)。牌的厚度很容易放到衣服的口袋里面。尽管也需要更详细的指导书,这些牌就给开发团队提供了关键的提醒,就很像一个工程师的工具书。[请参考文章《The Essence of Software Engineering: Applying the SEMAT Kernel》]提供了一个关于内核和使用更加全面的讨论。转自项目管理者联盟
项目管理者联盟
图3Alphas, their states and checklists - made tangible with cards项目管理论坛
【控制和承诺】bbs.mypm.net
由于内核是基于结果的,这使得内核对工业互联网的软件开发扮演了另外一个重要的角色,帮助以这样的方式建立控制和承诺的不同级别:项目管理者联盟
1. 灵活的:由团队独立的选择实践;项目管理者联盟
2. 授权的:允许团队改革和提升实践,而不是向质量妥协或者超过了控制范围;项目管理论坛
3. 有效的:最少的浪费;项目管理者联盟
4. 专注在结果:使用真实进展的检查单,而不是过程的步骤或者是完成模板。项目管理者联盟
这可以通过内核阿尔法提供的检查单,再根据组织的策略、财务的约束、本地化的标准和工业标准增加一些指定的检查点。例如,团队可以轻易地识别出从产品到发布时当前所处的状态,并且向 Essence的通用检查单中增加企业特有的检查项。通过使用基于成就和结果的检查单,而不是流程或者工作产品要求的检查单,我们可以帮助团队理解他们想要达成什么,什么时候和什么地方需要工程的约束,而且这个检查单可以非常安全地适用于大型的和复杂的系统。blog.mypm.net
任何阿尔法的状态需要,和其他阿尔法状态平衡的点,都可以做成一个检查点。检查点可以是单独的,也可以和一个或者多个开发的生命周期结合。能选择不同生命周期对管理一个非常复杂的领域,例如工业互联网。使用 Essence 内核非常容易地组合了很多生命周期,每一个生命周期都使用相同的生命周期控制中心,但是使用了不同的上下文以及上下文相关的检查单。例如Munich Re定义了一个生命周期家族,每一个都有不同的上下文。项目管理者联盟
1. 实验性的生命周期:对实验性的,概念验证的,能力创新的定义一个轻量的敏捷生命周期。项目经理博客
2. 增量特性开发的生命周期:对有强架构的、快速特性增量开发的模型定义一个严格的软件工程生命周期。项目管理者联盟
3. 维护和小的增强的生命周期:对连续的小的特性增强和问题修复,定义一个以时间段(典型是一年)的轻量的生命周期。项目管理者联盟
4. 技术支持的生命周期:对从开发转换到技术支持的企业定义一个专注在技术支持的生命周期。项目管理者联盟
这种将检查点和生命周期结合的能力是非常强大的。这样解放了团队,可以让团队使用合适的工程实践,而不是限制到预先定义的类型或者开发模式。也使得整个工业互联网能采用一个最小化的、扩展的、演进的一系列工程方法,而且能使得团队获得他们需要的帮助,但是又不向敏捷力和工程约束妥协。项目管理论坛
【将工程实践组合成为方法】blog.mypm.net
在过去,不同的方法基本上被描述成为一个独立的概念孤岛。每一个方法基本上都是独立的,用自己的语言和词汇来描述,不代表任何广泛接受的公共基础;每一个方法都自成体系。但是其实每个方法都有由许多实践组合而成的。
例如,敏捷中的XP中描述有12项实践,包括结对编程、测试驱动开发、持续集成等等。另外 Scrum 包含的实践包括维护产品backlog,每日的Scrum和 sprint。Scrum并不是一个完整的方法论,Scrum包括一系列可以一起工作的实践。Scrum可以作为一个过程框架和其他实践组合起来一起使用,例如,敏捷团队可以将XP组合到Scrum 中形成开发方法。PgMp.mypm.net
|