Onboard:以数据驱动的敏捷软件开发协同工具  

作者:陈龙;叶蔚;张世琨 刊名:《计算机研究与发展》 上传者:闫慧

【摘要】Scrum是一种兼顾计划性与灵活性的敏捷开发过程,能让软件开发团队具有快速工作和响应变化的能力.软件开发生命周期中每一个环节都会产生大量的数据,如果能记录下这些数据进行分析,并通过可视化等手段展示和反馈,则能进一步促进团队管理、项目管理,提高开发效率.现有的软件开发管理工具中,项目管理和代码管理往往是相互独立的,这导致了数据的分散和未充分利用.为推广以Scrum为核心、以数据为驱动的敏捷软件开发过程,开发了一款基于云服务的Onboard敏捷软件开发协同工具,利用代码提交和任务的关联,创造性地将敏捷过程管理、源代码管理和项目管理有机地整合到一起,支持端到端的软件全生命周期管理,从而能记录下软件开发过程中产生的所有数据并提取有价值的信息,为中小软件开发团提供一站式的敏捷开发管理与协同服务.1)介绍了Onboard的设计理念;2)围绕着“如何利用软件开发过程中产生的数据更好地支持敏捷开发过程”和“如何评估团队成员贡献度”两大课题,全面介绍了数据可视化和数据分析在Onboard敏捷软件开发协同工具中的应用,并针对一系列相关问题提出了解决方案;3)对值得进一步研究的问题进行了展望.

全文阅读

20世纪60年代中期“软件危机”的出现,使得人们不得不重新认识软件开发的标准、方法和技术.2001年,17位软件专家聚集在一起概括出了让软件开发团队能够快速工作、响应变化的价值观和原则,进而产生了我们现在所熟知的《敏捷软件开发宣言》[1].研究表明,由于软件是迭代发布的,在一个迭代过程中变化容易得到控制,因此敏捷软件开发过程能有效地减少需求变化产生的成本[2].遵循敏捷价值观和原则设计出来的软件开发过程模型都是敏捷开发过程模型,其中近年来业界比较流行的是Scrum,一种兼顾计划性与灵活性的敏捷开发过程.Scrum一词的含义源自橄榄球[3],在19世纪90年代由Sutherland及他的开发团队提出,并在21世纪后由Schwaber和Beedle做了进一步的改进[4].Scrum开发过程从一开始就假定了混乱的存在[5],因而使得使用它的敏捷开发团队在必然存在的不确定性面前得以顺利工作.Scrum团队以短小的迭代(sprint)为单位进行工作,关于团队中的角色和典型的迭代流程的介绍可参见附录A.然而Scrum方法并不是万灵药.国内第一位看板教练吴穹在《精益开发与看板方法》[6]一书的推荐序中指出,在他多年敏捷咨询的过程中,经常需要进场拯救那些将Scrum实施成小瀑布的项目.Scrum方法中的看板和燃尽图为项目负责人把握项目进度提供了最基本的工具,但仅仅有这些工具是不够的,比如项目负责人无法利用看板和燃尽图监控软件的质量.软件开发团队需要利用更多更先进的工具促使开发过程达到敏捷的状态.经常困扰项目负责人的另一个问题是:如何公平、高效地对团队成员的贡献进行评估.如果需要手动去统计每个成员完成了几个任务、提交了多少行代码等,是非常琐碎的.此外,一个软件团队往往还分成若干小团队开发相关但相对独立的子项目,尤其是在移动互联网快速发展的背景下,一个团队很可能同时开发Web端和多个移动端的产品,这无疑使手动的评估过程变得更加繁琐.事实上,软件开发生命周期的每一个环节都会产生大量的数据,如果能记录下这些数据并对这些数据进行分析,提取有价值的信息,并通过可视化等技术进行信息的展示和反馈,则能够为开发团队的建设、项目进度和质量的控制、工作流程的完善等提供有力的支持,也为自动化评估团队成员的贡献提供了可能.团队成员间合作和沟通的传统媒介往往是非常朴素的,比如面对面的沟通、白板、海报板、索引卡和便签等[7].这些手段无法将软件开发过程中产生的数据积累起来并加以利用.近些年来,很多软件开发管理工具被开发出来,但这些工具往往功能比较专一,比如缺陷管理、源代码管理、任务管理等,导致软件开发过程中产生的数据过于分散,未能被充分整合利用.国内项目管理工具的领跑者Tower从去年(2015-07-09)在标准项目之外开始支持敏捷项目[8],但其并没有融入Scrum的流程即迭代.该产品也提供了团队成员贡献度的统计,但仅仅是计算了完成任务数量的百分比.此外,由于定位于一般的团队项目管理,Tower并不支持源代码管理.Github是基于Git的代码托管、版本管理和协同开发的云平台,集成了issue(类似于缺陷)管理、持续集成等功能,是开源软件社区协作开发的首选.Github本身不支持以任务为核心的项目管理,这点和开源软件的开发特点比较吻合,但无法满足敏捷软件开发团队的需求.还有一些工具,试图整合项目管理和代码管理.国内比较知名的有Coding.Net,但它并不支持敏捷开发,并且项目管理和代码管理是相对独立的模块,没有能有效整合并利用软件开发过程中产生的数据.1http:??onboard.c

参考文献

引证文献

问答

我要提问