Agile software teams are expected to follow a number of specific Team Practices (TPs) during each iteration, such as estimating the effort ("points") required to complete user stories and coordinating the management of the codebase with the delivery of features. For software engineering instructors trying to teach such TPs to student teams, manually auditing teams if teams are following the TPs and improving over time is tedious, time-consuming and error-prone. It is even more difficult when those TPs involve two or more tools. For example, starting work on a feature in a project-management tool such as Pivotal Tracker should usually be followed relatively quickly by the creation of a feature branch on GitHub. Merging a feature branch on GitHub should usually be followed relatively quickly by deploying the new feature to a staging server for customer feedback. Few systems are designed specifically to audit such TPs, and existing ones, as far as we know, are limited to a single specific tool. We present Bluejay, an open-source extensible platform that uses the APIs of multiple tools to collect raw data, synthesize it into TP measurements, and present dashboards to audit the TPs. A key insight in Bluejay's design is that TPs can be expressed in terminology similar to that used for modeling and auditing Service Level Agreement (SLA) compliance. Bluejay therefore builds on mature tools used in that ecosystem and adapts them for describing, auditing, and reporting on TPs. Bluejay currently consumes data from five different widely-used development tools, and can be customized by connecting it to any service with a REST API. Video showcase available at governify.io/showcase/bluejay
翻译:智能软件团队在每次循环过程中将遵循一系列特定的团队做法(TPs),例如估计完成用户故事和协调代码库管理所需的努力(“点”),以及提供功能。对于试图向学生团队教授这种TP的软件工程教官来说,如果团队跟踪TP并随着时间的推移不断改进,则人工审计小组将遵循这些TPs,那么,当这些TPs涉及两个或两个以上工具时,就更加困难了。例如,在像Pivital Tracker这样的项目管理工具中,要广泛开始一个功能的工作,通常应该以相对快的速度,然后在GitHub上建立一个功能分支。对于试图向学生团队教授这类TP的软件师来说,如果团队跟踪TPs并随着时间推移而不断改进,那么,如果这些工具涉及两个或更多工具,那么这些系统就更难了。 因此,我们介绍一个公开的源平台,可以使用API的多种工具来收集原始数据,在GitHubb上建立一个功能分支的功能分支分支分支分支分支分支处。 将一个新的版本的版本用于设计工具的版本的版本数据测量。