法律状态公告日
法律状态信息
法律状态
2022-08-16
实质审查的生效 IPC(主分类):G06Q10/06 专利申请号:2022103025359 申请日:20220325
实质审查的生效
技术领域
本发明涉及一种基于SVN日志的程序员工作状态过程评价方法及系统,属于程序员工作状态评价技术领域。
背景技术
目前的软件开发部门中,一个部门经理(管理人员)通常要管理多个项目,每个项目经理管理十多名程序员(开发工程师或测试工程师),共同负责一个或多个软件开发项目。软件开发部门涉及多个软件项目,每个项目涉及到设计、开发、测试和部署等多个环节。
对于一个中小型软件企业来讲,普遍存在的情况是:项目管理和开发过程不够规范,程序员技术水平和规范意识都参差不齐,且沟通效率不高。程序员是项目执行的主体,管理人员往往不能及时了解程序员工作状态,导致项目进度受到影响。因此,程序员工作状态过程性评价和管理显得尤为重要。
管理人员细粒度(例如按天)的方式了解程序员岗位等级、当前任务难度如何、工作效率、是否出现异常情况。对于提升项目管理能力,队伍能力建设有着积极的作用。但是,管理人员想要了解上百名工程师每天的工作状态是一件几乎不可能事情。如果上百名工程师每天都做一次工作汇报,整个部门无法承担这样的管理成本。
目前,管理人员只能借助相关工具间隔一段时间(例如一周)的周报或口头汇报了解项目进展和每位工程师进展。这种粗粒度方式不利于项目的推进和工作效率的提升,这种缺少过程评价的方式掩盖了一些不利因素,有可能会导致项目延迟交付。由于软件开发过程可见性不高、项目经理管理能力、工程师个人素质等多种原因,普遍存在这样的问题:
(1)部分开发工程师可能一整天都没有提交代码,测试工程师可能一整天都没有更新测试报告;
(2)项目经理对上述知情与否,是否有进行积极的干预,管理人员都无从得知。这种情况的存在不利于项目按正常进度推进,也不利于提升团队的工作效率。对于管理人员来讲,迫切需要一种实时低成本的“一张图”可视化界面评价工程师每天的工作状态。
SVN是一款流行的多人协作软件开发版本管理工具,软件开发团队使用设计文档、源代码、bug追踪,只要团队成员有代码更新、文档更新,在SVN中都会有对应的记录。通过对SVN操作记录的实时监控和量化分析,使管理人员细粒度的下属每天的工作状态成为可能。
专利“CN201810771505.6,一种基于计算机辅助的程序员绩效评定的方法”从评定规则出发,结合自评和他评的视角,提出了一种多因子加权平均的绩效量化评定方法。该方法是针对阶段性结果的绩效评定方法(例如按月对程序员绩效评定),而不是细粒度(例如按天) 过程性的评价方法。
专利“CN202011443298.5,基于SVN日志差异文件分析的代码量计算的方法”提出了通过“SVNdiff”命令计算两个不同版本间的代码差异量。该方法考虑的也是间隔一段时间完成的代码量,不是时间细粒度的评价。另外,仅依据代码量也不能客观反映工程师的工作状态。
综上所述,现有技术中存在两个缺陷,分别是:
一、缺少细粒度过程性评价。已有的方法无法准确回答以下这些问题:开发工程师今天是否有提交代码,代码量有多少,是否有修改bug,测试工程师是否有提交测试报告。
二、无法实施大规模实时评价。在已有的方法前提下,一个管理员想了解整个部门一百名工程师每天的工作状态,管理成本太高。
因此,目前急需一种采用细粒度过程性评价、并且可以进行大规模实时评价的评价方法。
发明内容
本发明要解决的技术问题是提供一种基于SVN日志的程序员工作状态过程评价方法及系统,通过实时采集SVN操作日志,计算程序员执行Checkout、Checkin的次数,代码更新量、文档规范性等行为特征。结合程序员岗位级别、历史工作效率、负责模块的难易程度和对应工作量等客观因素,通过部门内普遍认可的一系列规则来综合判断程序员每天的工作状态。为管理人员提供全局一张图,了解每位工程师的每天工作状态,每个项目组及时响应的能力,提升部门管理水平,提升团队执行力。
一种基于SVN日志的程序员工作状态过程评价系统,包括:
数据采集单元,用于实时监控SVN系统运行日志并对系统产生的新的操作日志进行采集,根据操作日志信息得到程序员行为特征,将行为特征打包成一条消息记录,并将消息记录进行编码后,提交到数据发送单元。
所述行为特征为SVN系统记录的程序员的操作行为特征。
所述消息记录为程序员操作行为特征的消息记录。
数据发送单元,用于接收数据采集单元采集的消息记录,并将消息记录发送到消息中间件Kafka。
消息中间件Kafka,用于接收和临时保存数据发送单元发送的数据,并通知数据接收单元获取数据。
数据接收单元,用于实时从消息中间件Kafka的发布/订阅功能实时获取消息记录,并将这些消息记录保存在存储单元。
数据存储单元,用于根据存储规则对行为特征数据进行存储。
指标配置单元,用于将程序员的岗位特征和当前工作任务的任务特征进行配置。
指标评价单元,用于将程序员的行为特征、程序员的能力特征和当前任务特征输入到决策树中,构建评价模型,通过评价模型对程序员的工作状态进行评价。
所述系统还包括用户交互单元,是用户和系统之间的交互界面,用于向指标配置单元和评价指标计算单元发送指令,还用于显示评价指标计算单元输出的评价结果,提供显示功能。
所述数据采集单元和数据发送单元同时部署在SVN系统的节点上,并且可以部署在多个 SVN系统的节点上。
所述消息中间件Kafka是一个开源分布式的消息中间件,可以为分布式环境下消息中间件的生产者和消费者等多个参与者提供高效、稳定和可靠的消息传递功能。
所述数据接收单元,数据存储单元,指标配置单元,指标评价单元和交互单元可以部署在一个工作节点上。
一种基于SVN日志的程序员工作状态过程评价方法,采用所述的基于SVN日志的程序员工作状态过程评价系统,具体步骤为:
Step1:通过数据采集单元采集程序员在SVN系统上的操作日志,即程序员的行为特征。
所述程序员的行为特征包括但不限于:源代码Checkout次数、源代码Checkin次数、新增加代码数量、修改代码数量、删除代码数量、代码的注释内容、修改bug的数量、测试文档Checkout次数、测试文档Checkin次数、对已经修改bug的再测试的次数。
Step2:获取程序员的岗位能力特征和当前任务的特征,并对程序员的岗位能力特征和当然任务的分级特征进行配置。
所述程序员能力特征包括岗位等级(高级、中级和初级),历史工作能力(效率高、效率一般)。程序员当前承担的任务特征可以分为当前任务难度(难、一般、简单),代码可表达性(难、一般、简单)、预期完成时间(一周、两周、四周等)。
所述程序员的能力特征包括程序员的能力等级。
所述程序员能力等级可以由程序员掌握的编程语言数量和熟练程度、程序员在公司内部的岗位等级确定。
所述当前任务的特征包括:当前任务难度(难、一般、简单)、代码可表达性(难、一般、简单)、预期完成时间(一周、二周、四周等)。
Step3:将程序员的操作行为特征、程序员的能力特征、当前任务的特征进行状态标记,然后输入到决策树中,构建评价模型,通过评价模型对程序员当前的工作状态进行评价,并输出程序员的当前工作状态,实时完成状态评价。
程序员工作状态的评价,其核心是构建评价模型。评价模型的输入是程序员在SVN上的操作行为特征、程序员的能力特征和当前任务的特征,评价模型的输出是程序员工作状态。为了构建评价模型,首先要进行特征采集和状态标记,形成样本数据。此处的数据采集通过整个流程进行采集、标记由通过部门内部一个普遍接收的合理规则来进行人工标记。
所述状态标记为将所有特征按照等级划分进行标记。例如分为高效、效率较高、正常、效率较低、低效等五个等级。
所述构建评价模型具体为:
机译: 一种用于在纤维幅材的生产过程中进行标准状态分析的方法,该标准状态分析影响将要生产的faerstoffbahn和/或工作状态的参数的质量,以及用于实施该方法的机器
机译: 基于数据驱动的工作流程的安全分析评价装置及系统安全分析评价方法
机译: 在对基于定义的区域的参数进行分组之后,基于分组参数的集成电路制造过程状态监视系统评估基于集成参数的集成电路制造过程工具的状态及其方法