全部
如何实施极限编程?
极限编程虽然是敏捷开发的一种主要方法,但真正实施极限编程的团队比率很低,只有可怜的7%(数据来源:《2021年度敏捷状态报告》)。是什么原因阻碍了极限编程的推广和实施呢?结合我们自身实施极限编程的经验体会来看,我觉得可能有如下的原因:
首先极限编程并没有Scrum和看板那么酷。Scrum会对流程有明显的改动,很容易让团队感知到变化。作为改革的推动者,Scrum教练也更能体现自己的价值。看板本身就非常强调可视化,所以在价值呈现方面有先天的优势。但是极限编程的实践更多的是集中在工程侧,流程方面相关的实践又与Scrum有相似的地方,不太容易体现自己的价值。
其次极限编程的实施需要长期的过...
2022-09-05
测试开发之自动化篇-禅道ZTF自动化框架设计
在前面的文章中,我们介绍了自动化测试框架设计有关的内容。实际工作中,我们通常没有必要从头开始造轮子,而是可以基于一些开源项目,实现适合自己公司业务的测试框架。
禅道团队在设计ZTF开源自动化测试框架时,我们希望它可以满足以下几个目标:
学习成本低,一节课时间即可上手;
尽量减少对公司现有测试资产的侵入;
免安装,下载后解压即可用;
支持流行的各种脚本编程语言;
兼容主流的自动化测试框架;
丰富的命令行参数,以方便在持续集成工具中使用;
自带一个简洁、易用的客户端;
支持各种主流操作系统;
可以和公司现有研发管理系统很好地集成。
...
2022-09-02
测试开发之自动化篇——自动化测试框架设计
今天,给大家介绍如何进行自动化测试框架的设计。这里所说的框架,是建立在一些主流类库、框架或工具的基础上的,自行研发的、适合公司的自动化测试资产。
如今有很多UnitTest测试框架,已经提供了数据驱动、用户并发、断言、报告等优异的特性,完全可以被用来进行单元测试之外的功能、性能、接口等方面的测试,建议大家可以基于他们来实现。
这里给出我们建议的、自动化测试框架的分层结构,下面将围绕此给大家逐一做介绍。
测试用例脚本
在此实现业务的自动化测试,这一层面的脚本同手工测试用例具有最直接的对应关系。
公共业务脚本
一些提取出的、可在业务层面复用的函数、类库或脚本。比如网上购物系统的...
2022-09-01
需求变更,敏捷项目应如何做?
前两天我们在做项目复盘的时候,发现其实在整个过程中还是遇到了不少需求变更的问题,不过还好我们算是比较圆满地解决了这些突如其来的问题。相信也会有很多朋友和我们团队一样,经常遇到客户这边的需求变更,确实这是一个非常棘手的问题。不过在敏捷项目管理过程中,我们还是有一些方法可以解决需求变更这个问题的。
尽管我们对需求变更“深恶痛绝”,但毕竟,该面对的还是要面对的。
在敏捷项目管理中,我们要如何应对需求变更的问题呢?
一、设置Product Backlog与Sprint Backlog
Scrum框架针对需求变更,设置了Product Backlog(产品待办列表)和Sprint Ba...
2022-08-31
测试开发之自动化篇-禅道自动化测试集成
禅道是一款国产的开源研发项目管理软件,基于敏捷和CMMI管理理念进行设计,完整地覆盖了项目管理的核心流程。根据国内权威测试网站51Testing的《2021软件测试现状调查报告》显示,禅道已连续七年在"常用的测试管理工具”中排名第一。
在前面的专题文章中我们认为,随着持续集成和DevOPS的流行,自动化测试已经成为了研发活动中的不可或缺的一个重要环节。甚至可以说,没有成熟的自动化测试,持续集成和DevOps都不可谓之为成功。
本文给大家介绍如何将第三方的自动化测试工具同禅道进行集成,打造一个一站式的完整研发管理平台。内容基于禅道16.5版本,更早的版本请参照...
2022-08-30
如何有效改进回顾会议(下)?
在重新梳理了回顾的大致流程之后,我们接下来需要做的就是改进回顾会议,让团队在回顾会议中更高效地思考。系统思维在回顾中是非常重要的,因为作为个人来讲,在没有信息和数据的情况下,团队成员会倾向于依据自己的理解和过去的经验来做出假设和结论,但这些假设和结论是片面或者说是不符合实际的。举个例子:原定于10点的会议已经延迟了十分钟还没开始,这时,鲍勃冲了进来开始道歉:“对不起,我来晚了!就在我刚要离开家的时候,一只流浪狗跑了过来。”这时房间的其他参会者表示:“酷!”利亚姆说,“你会收留它吗?”“太吓人了,你没事吧?”琼妮问。伊恩点了点头,催促道:“好吧,让我们先结束这次会议吧。”这三个人同时听到了鲍勃的...
2022-08-29
如何做好代码片段管理?
在谈到编码规范的时候,我们关注的粒度从大到小划分的话,一般是按照应用、模块、对象、方法这样的层次来定义。在这些粒度上业内一般都有约定俗成的一些规范,就不再赘述。今天这篇文章我想重点和大家聊聊如何做好代码的片段管理。什么是代码片段呢?一组相关的代码行我们就可以称之为一个代码片段。比如下面的代码是做一些变量的定义和初始化,这些代码行我们就可以称之为一个代码片段。 再比如这段代码,是对数据库进行连接处理,我们也可以称之为一个代码片段。
为什么这次单独拿代码片段出来讲呢?主观原因是,从我们带团队的经验来看,开发人员往往缺失代码片段管理的概念。客观原因是现代编程语言粒度缺少代码片段这样的中间管理单...
2022-08-29
极限编程里最容易被忽略的实践
在前面的一篇文章里面我和大家聊过了极限编程的重要性,今天想和大家聊聊极限编程里面最简单但也往往最容易被忽略的实践——编码规范。说到编码规范,每一个开发人员都非常熟悉,每一个团队也都有自己的编码规范。但实际的执行情况如何呢?估计大多数的团队都是形同虚设,编码规范只是存放在文档库里面的一个文档而已。为什么编码规范难以落到实处?我觉得大家都忽略了编码规范的重要性。编码规范是极限编程中一系列实践的基础,认真执行编码规范可以说是极限编程里投资回报率最高的实践。首先编码规范是代码集体所有权的基础。可以想象下春秋战国时期各个诸侯国都有自己的文字,沟通交流的成本比较高,而秦始皇统一六国后迅速统一了文字,有利于...
2022-08-26
为什么必须要做极限编程?
自2001年《敏捷宣言》发布之后,敏捷开发已经流行了20多年。这20年来,敏捷开发取得的成果如何?根据The Standish Group的The Chaos Report 2020,敏捷项目的成功率是远高于瀑布开发模式的,但尽管如此,仍有超过一半的敏捷项目是充满挑战、乃至失败的。其中的原因是什么呢?根据《2021年度敏捷状态报告》,实施Scrum的占66%,实施Scrum + XP的有6%,仅实施XP的为1%,总体来看,做极限编程的只有7%。
禅道项目管理软件的《2020年IT行业项目管理调查报告》中也同样有类似的占比,实践极限编程的团队所占比例较低,为6.39%——国内外不同基数、不同...
2022-08-25
项目管理领域发展三阶段:从流程到人再到工具
2009年,我开始动手写禅道项目管理软件。很多朋友问我:为什么做项目管理软件这个方向?起因很简单,市面上缺少严谨完整的项目管理软件,我想填补这个空缺,做一款覆盖整个软件生命周期的项目管理软件。这个想法的直接起因是我2006年到2009年在阿里的工作经历。2006年,我在雅虎中国工作,当时部门的Leader已经在带着我们做Scrum。但当时走下来发现了有很多问题,比如产品并没有持续改进、很多改动往往是不了了之。作为团队的研发和测试人员,我并没有体会到敏捷开发所讲的快乐感和成就感。我开始试着找原因,但当时只是一个普通的研发,很多更高层面的信息无法获知。当时整个公司有专门的过程改进部门,负责制定各种...
2022-08-24