本发明属于计算机应用技术领域,具体涉及一种基于单位时间分配的任务开发方法和系统。
背景技术:
软件前端开发系统聚集了大量工程师,可以为客户提供软件前端开发服务。传统的前端开发系统主要包括三个重要阶段,首先是客户发布任务,由客户提供软件用户界面设计稿及交互说明文档,招募前端开发工程师,与工程师沟通明确需求细节后,支付相应费用;然后进入开发阶段,前端开发工程师根据设计稿及需求文档进行开发,开发过程中提交代码,开发完成后将代码整合,交付给客户;客户收到交付代码后,进行最后的测试,前端开发工程师配合进行修改完善,再由客户进行验收,支付剩余开发费用。目前,影响系统前端开发任务工作效率的瓶颈主要在于需求沟通和协同开发这两个环节,其中涉及大量的工程师与客户之间、工程师与工程师之间的沟通工作。一方面人为沟通容易遗漏或者误解需求细节,另一方面反复沟通确认耗时较长。
技术实现要素:
为了克服上述背景技术的缺陷,本发明提供一种基于单位时间分配的任务开发方法和系统,提高了任务开发速度,确保指定时长m内快速交付。
为了解决上述技术问题本发明的所采用的技术方案为:
基于单位时间分配的任务开发方法:
服务器从客户端接收开发任务和指定时长m,判断指定时长m是否大于等于单位时间t,若是,则评估的出开发任务的总体工作量w,依据总体工作量w和单位时间t确定开发任务需要分割的任务包数量n,n为大于等于1的正整数,单位时间t大于等于最小分割单元工作时间;将n个任务包分配至各个用户端,接收各个用户端完成的各个中间结果,整合n个中间结果作为开发结果,将开发结果发送至客户端。
较佳地,将n个任务包分配至各个用户端的方法包括:
将n个任务包分配给e位工程师,每位工程师分配的任务包数量n(i),1<=n(i)<=m/t,
或将n个任务包分配给n个工程师,n(i)=1。
较佳地,首先要向数个用户端发出邀约信号,在接收到用户端发出的承诺信号之后,向其中的n个或e个用户端分别发送任务包。
较佳地,服务器端在接收到用户端发出的承诺信号之后:
按照接收到承诺信号的先后顺序,自动向前n个或e个发送承诺信号的用户端发送任务包;
或按照服务器中储存的各个用户端历史工作效率数据库中的排列顺序,将n个任务包分别发送至位于历史工作效率数据库前n个或e个的用户端。
较佳地,在任务开始后的t*n(i)时间到期时,判断是否接收到第i个任务包对应的第i个中间结果,若是,则存储第i个中间结果,若否,则进一步判断剩余时间是否大于等于t*n(i),若是,则重新分配第i个任务包,若否,则返回任务失败消息。
基于单位时间分配的任务开发系统,包括:
客户端,用于发送开发工作和指定时长m至服务器端,并接收服务器端发送过来的开发结果;
服务器端,包括:
切割模块,评估开发工作的出开发任务的总体工作量w,依据总体工作量w和单位时间t确定开发任务需要分割的任务包数量n,将开发工作分割为n个单位时间t内可完成的任务包;
发送模块,用于将n个任务包发送至用户端;接收模块,接收各个用户端完成的中间结果;整合模块,整合共各个任务包分别对应的中间结果作为开发结果;
用户端,接收任务包,完成任务包对应的开发工作,并将完成的中间结果发送至服务器端;
其中,n为大于等于1的正整数,单位时间t大于等于最小分割单元工作时间。
较佳地,发送模块将n个任务包发送至用户端包括:
将n个任务包分配给e位工程师,每位工程师分配的任务包数量n(i),1<=n(i)<=m/t,
或将n个任务包分配给n个工程师,n(i)=1
较佳地,服务器端包括匹配模块,用于在将接收到的开发工作分割为n个单位时间内可完成的任务包之后,向数个用户端发出邀约信号,并基于接收到的用户端发出的承诺信号,将其中的n个或e个用户端匹配为发送任务包的对象。
较佳地,匹配模块包括:
第一选择单元,用于依据接收到承诺信号的先后顺序,将前n个或e个发送承诺信号的用户端匹配为发送任务包的对象;
第二选择单元,用于按照服务器中储存的各个用户端历史工作效率数据库中的排列顺序,将位于历史工作效率数据库前n个或e个的用户端匹配为发送任务包的对象。
较佳地,服务器端还包括重分配模块,切换模块包括判断单元和切换单元,判断单元,在任务开始后的t*n(i)时间到期时,判断是否接收到第i个任务包对应的第i个中间结果,若是,则存储第i个中间结果,若否,则进一步判断剩余时间是否大于等于t*n(i),若是,则由切换单元重新分配第i个任务包,若否,则返回任务失败消息。
本发明提出的开发方法和系统,通过一系列标准化流程和开发规范提高信息沟通和协同工作效率,从而实现指定时长m内快速交付任务。利用标准化业务流程和开发规范,一方面避免了对大量常规需求的反复确认,减少了客户与工程师的沟通工作量;另一方面保证了多位工程师并行开发时任务整体的交付质量,并由此提高了任务开发速度,确保指定时长m内快速交付。
附图说明
图1为本发明实施例一的流程图;
图2为本发明实施例二的流程图;
图3为本发明实施例三和实施例四的整体结构示意图;
图4为本发明实施例三的服务器端示意图;
图5为本发明实施例三的服务器端的匹配模块示意图;
图6为本发明实施例三的重分配模块示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步的说明。
实施例一
基于单位时间分配的任务开发方法,包括:
步骤1,服务器从客户端接收开发任务和指定时长m;
实践中,由客户通过客户端向服务器端提交需求,包括设计稿类型、开发内容和技术要求,其中设计稿类型可选项为psd格式、sketch格式和jpeg/png格式;开发内容可选项为电脑端、手机端和电脑+手机端;技术要求可选项包括几种主流前端技术框架,如基础h5、vue、react.js、angular.js等。客户仅需提供上述必要信息,其他详细需求信息都包含在设计稿里,客户不需要提供更多需求信息,尽量减少需求沟通工作量。
客户通过客户终端选择页面类型并上传设计稿文件,服务器端接受设计稿文件后,根据文件名返回页面名称。页面类型根据开发工作量分为内容页、首页、长页面、弹窗和tab页。各类型页面工作量设定以内容页为标准取相对值,即内容页工作量为1标准页、首页和长页面工作量为2.75标准页、弹窗工作量为0.3标准页、tab页工作量为0.4标准页。其中弹窗和tab页为页面附属内容,无需上传单独设计稿。
步骤2,判断指定时长m是否大于等于单位时间t,若是,则评估的出开发任务的总体工作量w,并进入步骤3,若否,返回无法分配的提示消息并结束;单位时间t大于等于最小分割单元工作时间;
步骤3,依据总体工作量w和单位时间t,确定开发任务需要分割的任务包数量n,n为大于等于1的正整数;
步骤4,将n个任务包分配给e位工程师,每位工程师分配的任务包数量n(i),1<=n(i)<=m/t,
服务器端根据客户端提交的需求中各类页面的数量,计算出总体开发费用,客户支付费用后,在服务端器发布任务信息。系统规定了每类页面的单价,计费以标准页为单位,基于任务包括的页面类型、工作量标准及数量,最后计算任务整体费用。客户通过系统账户支付费用后,服务器端开启任务流程,并向当前可接单工程师的用户终端发送任务信息。服务器端同时根据任务需求的技术框架,选择与技术要求匹配的代码模版,创建该任务的初始代码框架,然后根据任务需求中的页面信息,为每一个页面创建初始目录及初始代码文件。
步骤5,向数个用户端发出邀约信号,并在接收到用户端发出的承诺信号之后,向其中的e个用户端分别发送任务包;
工程师用户在用户终端接收到新发布的任务信息后,可向服务器端发送报名该任务的指令。服务端器接收到报名指令后,将符合条件的工程师加入报名队列,并根据工程师工作效率或者报名的先后顺序进行排序,具体的优选方式如下:
本实施例的步骤5服务器端在接收到用户端发出的承诺信号之后,按照接收到承诺信号的先后顺序,自动向前e个发送承诺信号的用户端发送任务包;
作为一种优选地方式,本实施例的步骤5还可以按照服务器中储存的各个用户端历史工作效率数据库中的排列顺序,将n个任务包分别发送至位于历史工作效率数据库前e位的用户端。
通过以上方式确定e个用户端之后,分别将第i个任务包发送至第i个用户端,i=1,2,3……e;
步骤6,由第i个用户端完成该任务包的开发工作作为第i个中间结果,并发送至所述服务器端;
工程师在用户终端接收到分配的任务消息后,从服务器端下载对应页面的设计稿文件,并同步任务的初始代码,基于设计稿,根据系统规定的开发规范进行开发。开发规范从代码风格、页面布局、以及前端各种元素、组件的实现进行了详细的规定,要求对设计稿中可识别的原则统一按照系统开发规范进行标准化开发。
工程师开发完分配的页面后,向服务器端提交完成的页面代码。服务器端将接收到的页面代码部署到测试环境,并向客户终端返回页面访问地址和代码下载地址。
步骤7,在任务开始后的t*n(i)时间到期时,判断是否接收到第i个任务包对应的第i个中间结果,若是,则存储第i个中间结果,并进入步骤8,若否,则进一步判断剩余时间是否大于等于t*n(i),若是,则重新分配第i个任务包,若否,则返回任务失败消息。
步骤8,服务器端整合共n个任务包分别对应的n个中间结果作为开发结果;
步骤9,服务器端将开发结果发送至客户端;
当所有页面开发完成并提交后,服务器端将整合的结果向客户终端发送任务完成消息,并进入质保期。
实施例二
基于单位时间分配的任务开发方法,包括:
步骤1,服务器从客户端接收开发任务和指定时长m;
实践中,由客户通过客户端向服务器端提交需求,包括设计稿类型、开发内容和技术要求,其中设计稿类型可选项为psd格式、sketch格式和jpeg/png格式;开发内容可选项为电脑端、手机端和电脑+手机端;技术要求可选项包括几种主流前端技术框架,如基础h5、vue、react.js、angular.js等。客户仅需提供上述必要信息,其他详细需求信息都包含在设计稿里,客户不需要提供更多需求信息,尽量减少需求沟通工作量。
客户通过客户终端选择页面类型并上传设计稿文件,服务器端接受设计稿文件后,根据文件名返回页面名称。页面类型根据开发工作量分为内容页、首页、长页面、弹窗和tab页。各类型页面工作量设定以内容页为标准取相对值,即内容页工作量为1标准页、首页和长页面工作量为2.75标准页、弹窗工作量为0.3标准页、tab页工作量为0.4标准页。其中弹窗和tab页为页面附属内容,无需上传单独设计稿。
步骤2,判断指定时长m是否大于等于单位时间t,若是,则评估的出开发任务的总体工作量w,并进入步骤3,若否,返回无法分配的提示消息并结束;单位时间t大于等于最小分割单元工作时间;
步骤3,依据总体工作量w和单位时间t确定开发任务需要分割的任务包数量n,n为大于等于1的正整数;
步骤4,将n个任务包分配给n个工程师,n(i)=1;
服务器端根据客户端提交的需求中各类页面的数量,计算出总体开发费用,客户支付费用后,在服务端器发布任务信息。系统规定了每类页面的单价,计费以标准页为单位,基于任务包括的页面类型、工作量标准及数量,最后计算任务整体费用。客户通过系统账户支付费用后,服务器端开启任务流程,并向当前可接单工程师的用户终端发送任务信息。服务器端同时根据任务需求的技术框架,选择与技术要求匹配的代码模版,创建该任务的初始代码框架,然后根据任务需求中的页面信息,为每一个页面创建初始目录及初始代码文件。
步骤5,向数个用户端发出邀约信号,并在接收到用户端发出的承诺信号之后,向其中的n个用户端分别发送任务包;
工程师用户在用户终端接收到新发布的任务信息后,可向服务器端发送报名该任务的指令。服务端器接收到报名指令后,将符合条件的工程师加入报名队列,并根据工程师工作效率或者报名的先后顺序进行排序,具体的优选方式如下:
本实施例的步骤5服务器端在接收到用户端发出的承诺信号之后,按照接收到承诺信号的先后顺序,自动向前n个发送承诺信号的用户端发送任务包;
作为一种优选地方式,本实施例的步骤5还可以按照服务器中储存的各个用户端历史工作效率数据库中的排列顺序,将n个任务包分别发送至位于历史工作效率数据库前n位的用户端。
通过以上方式确定n个用户端之后,分别将第i个任务包发送至第i个用户端,i=1,2,3……n;
步骤6,由第i个用户端完成该任务包的开发工作作为第i个中间结果,并发送至所述服务器端;
工程师在用户终端接收到分配的任务消息后,从服务器端下载对应页面的设计稿文件,并同步任务的初始代码,基于设计稿,根据系统规定的开发规范进行开发。开发规范从代码风格、页面布局、以及前端各种元素、组件的实现进行了详细的规定,要求对设计稿中可识别的原则统一按照系统开发规范进行标准化开发。
工程师开发完分配的页面后,向服务器端提交完成的页面代码。服务器端将接收到的页面代码部署到测试环境,并向客户终端返回页面访问地址和代码下载地址。
步骤7,在任务开始后的t*n(i)时间到期时,判断是否接收到第i个任务包对应的第i个中间结果,若是,则存储第i个中间结果,并进入步骤8,若否,则进一步判断剩余时间是否大于等于t*n(i),若是,则重新分配第i个任务包,若否,则返回任务失败消息。
步骤8,服务器端整合共n个任务包分别对应的n个中间结果作为开发结果;
步骤9,服务器端将开发结果发送至客户端;
当所有页面开发完成并提交后,服务器端将整合的结果向客户终端发送任务完成消息,并进入质保期。
上述实施例一和实施例二,在客户终端接收到页面完成信息后,访问服务器端提供的页面访问地址,查看测试交付结果页面。如果发现有需要修改完善的问题,将修改意见发布到服务器端。客户也可以通过服务器端提供的代码下载地址,下载全部已完成页面代码。
服务器端接收到客户提交的修改意见时,向对应的用户终端发送修改通知消息。工程师根据接收到的修改意见,对页面进行修改,然后向服务器端提交修改后的页面代码。
质保期结束时,如任务所有修改意见已修改完成,服务器端将根据参与任务的各个工程师分配的页面进行费用结算,将结算金额支付给工程师,并向用户终端发送结算消息。
实施例三
基于单位时间分配的任务开发系统,包括:
数个客户端,用于发送开发工作和指定时长m至服务器端,并接收服务器端发送过来的开发结果;
至少一个服务器端,包括:
切割模块,评估开发工作的出开发任务的总体工作量w,依据总体工作量w和单位时间t确定开发任务需要分割的任务包数量n,将开发工作分割为n个单位时间t内可完成的任务包;
发送模块,用于将n个任务包发送至用户端;将n个任务包分配给e位工程师,每位工程师分配的任务包数量n(i),1<=n(i)<=m/t,
接收模块,接收各个用户端完成的中间结果;
整合模块,整合共各个任务包分别对应的中间结果作为开发结果;
匹配模块,用于在将接收到的开发工作分割为n个单位时间内可完成的任务包之后,向数个用户端发出邀约信号,并基于接收到的用户端发出的承诺信号,将其中的e个用户端匹配为发送任务包的对象。
匹配模块包括:
第一选择单元,用于依据接收到承诺信号的先后顺序,将前e个发送承诺信号的用户端匹配为发送任务包的对象;
第二选择单元,用于按照服务器中储存的各个用户端历史工作效率数据库中的排列顺序,将位于历史工作效率数据库前e个的用户端匹配为发送任务包的对象。
服务器端还包括重分配模块,切换模块包括判断单元和切换单元;判断单元,在任务开始后的t*n(i)时间到期时,判断是否接收到第i个任务包对应的第i个中间结果,若是,则存储第i个中间结果,若否,则进一步判断剩余时间是否大于等于t*n(i),若是,则由切换单元重新分配第i个任务包,若否,则返回任务失败消息。
数个用户端,接收任务包,完成任务包对应的开发工作,并将完成的中间结果发送至服务器端;
本实施例中n为大于等于1的正整数,单位时间t大于等于最小分割单元工作时间。
实施例四
基于单位时间分配的任务开发系统,包括:
数个客户端,用于发送开发工作和指定时长m至服务器端,并接收服务器端发送过来的开发结果;
至少一个服务器端,包括:
切割模块,评估开发工作的出开发任务的总体工作量w,依据总体工作量w和单位时间t确定开发任务需要分割的任务包数量n,将开发工作分割为n个单位时间t内可完成的任务包;
发送模块,用于将n个任务包发送至用户端;将n个任务包分配给n个工程师,n(i)=1
接收模块,接收各个用户端完成的中间结果;
整合模块,整合共各个任务包分别对应的中间结果作为开发结果;
匹配模块,用于在将接收到的开发工作分割为n个单位时间内可完成的任务包之后,向数个用户端发出邀约信号,并基于接收到的用户端发出的承诺信号,将其中的n个用户端匹配为发送任务包的对象。
匹配模块包括:
第一选择单元,用于依据接收到承诺信号的先后顺序,将前n个发送承诺信号的用户端匹配为发送任务包的对象;
第二选择单元,用于按照服务器中储存的各个用户端历史工作效率数据库中的排列顺序,将位于历史工作效率数据库前n个的用户端匹配为发送任务包的对象。
服务器端还包括重分配模块,切换模块包括判断单元和切换单元;判断单元,在任务开始后的t*n(i)时间到期时,判断是否接收到第i个任务包对应的第i个中间结果,若是,则存储第i个中间结果,若否,则进一步判断剩余时间是否大于等于t*n(i),若是,则由切换单元重新分配第i个任务包,若否,则返回任务失败消息。
数个用户端,接收任务包,完成任务包对应的开发工作,并将完成的中间结果发送至服务器端;
本实施例中n为大于等于1的正整数,单位时间t大于等于最小分割单元工作时间。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。