书接上文。任务管理系统中的很多特性都是从复杂的工程管理软件中借鉴来的。那么在探寻任务管理系统的设计时,最好能够先来看看工程管理软件都有哪些常见的特性;然后再看看对于个人使用的任务系统来说,对于这些特性的需求会有什么样的变化;最后,阐述一下我个人对任务管理系统的一些看法。
- 工程管理软件分析
工程管理软件中的任务,是有相互的依赖关系的。有些是由于后续任务需要使用前置任务的成果,有些则是由于后续任务需要使用前置任务所占用的有限资源。工程管理系统,在进行计划制定的时候,首先要将完整的工程划分为不同的任务。然后,再根据这些任务之间的依赖关系,来排定这些任务的先后执行测序。以求在最短时间和最小资源消耗的情况下,完成整体工程。
工程虽然并不像日历那样,是以时间作为根本特性的,但是一些关键时间点对于工程来说也是至关重要的。比如天朝经常会出现献礼工程。以及工程进行过程中的各种公休和节假日也都是需要计算在内的。通常一个工程里面会有若干个工程关键时间点。这些时间点通常是工程自然节点附近的一些特定的日期。比如工程可能在某个节假日附近完整一个功能节点,那么通常的做法是将这个节点直接设定在那个节假日之前,这样大家做完一个阶段的工作之后,正好可以休息几天。有时候一些为公众服务的系统,也喜欢赶在节假日之前上线,以便能够在节假日获得更好的收益。工程管理系统,会根据这些关键时间点,对任务的排列进行适当的调整,即使这些调整会使得工程所耗费的时间和资源有所上升。
工程管理系统中所管理的最重要的东西,就是资源了。这里所说的资源,指的是工程过程中不得不用,而数量又有一定的限定的东西。比如工作人员的工时、场地、各种仪器设备、零部件等。小型的工程管理软件只需要计算出完成工程所需、或所能调用的资源总量,然后根据这个资源总量进行任务调度和安排就好了。所需或所能够调用的资源总量,是根据工程的进度要求,平衡得来的。有些资源增加了之后,是可以提前项目进度的,有些则不行。通常的做法,是根据所有能够使用的资源总量,先预估工期;然后在根据工期进行任务资源分配;最后再根据任务资源调配情况,对工期和所需资源进行调整。
大型的工程管理系统会复杂得多,这些系统还需要考虑很多资源的建造、购买、仓储、领用等过程。比如航天卫星发射的工程管理系统中就需要考虑火箭发动机的生产,每个批次生产出来的火箭发动机,都需要拿出一枚来进行测试。而这个测试验证试验是一次性的,也就是说做实验的那个火箭,试验之后就废掉了。那么系统就需要考虑“组批生产”的问题,比如一个批次最多可以生产十枚火箭,那么最好能够将火箭发动机凑成十个一组来生产,否则的话,如果只生产两三枚火箭也需要多做一个出来做实验,那就太浪费了。大型的工程管理系统,通常还需要考虑分里程碑验收和支付的问题,每一个里程碑需要完成哪些任务,这些完成的任务如何验收,以及如果验收出现什么问题,怎么办。验收之后,通常是需要进行里程碑付款,我还见过一些系统,在里程碑付款和购置设备等过程中还考虑汇率波动风险和银行账户利息等因素的。比如别人付过来一笔美金,工程方直接将其都兑换成了人民币,但是工程中又需要以美金再去购买什么设备或零部件那就亏了。总之,资源管理根据工程管理软件的规模和行业差异,也会存在巨大的差异。但这肯定都是各种工程管理系统中最重要的一个部分。
工程的任务细分,并不是一次完成的。这个过程通常是逐层细化的,所以就会出现任务和子任务的概念。一个任务对于承接这个任务的团队来说就又成了一个工程,这个团队会将其再次划分为子任务。或者是完成一个大的任务,需要多个团队协同工作,也可以将这些团队所完成的共组划分为子任务。这个划分的过程,是有很多模板和定式的。比如,盖房子必须先画图纸,然后打地基,从下向上一层一层的盖,封顶之后先做外墙装修,然后做内墙装修和强电弱电工程。就算是家庭装修,也需要考虑先做墙面,在做墙面的时候要预留强弱电的线槽和开关接插口面板的位置;在做墙面的时候可以进行门窗油漆等工作;墙面和油漆的工作完成之后, 才能进行地面施工;再然后才是家电和家具的购置和摆放。地面工程的时候,是不会将墙面和油漆过的门窗搞脏的,但是墙面粉刷和油漆的时候会把地面搞脏的。强弱电线路的布设和接插口面板的设置,是需要破话墙面的。家具和家电是要放在地面上面的,所以一定要在地面施工完了之后才能做这些事情。这个过程是无法打破乱来的。
任务和资源,都是有状态的。工程管理系统就是通过对这些状态的管理来实现任务和资源的调配和管理的。简单的状态有:资源被占用、资源被闲置、任务可以开始、任务等待关键资源到达后可以开始、任务进行中、任务完成、任务暂停等。在资源不冲突的时候,工程管理系统会尽可能的安排并行任务以节省工程时间。比较复杂的状态管理,可能会包括仓储物流、人员培训、期货购买和交割等复杂过程,这里就不讨论了。工程管理系统的工作方式,基本上可以被看做是一种状态机的工作方式。
任务之间的等级并不是平等的,因为很多资源是无法进行分割和隔离的,所以很多任务是必须在共享资源的情况下并行进行的。在并行执行的任务之间就会存在优先级的差异,哪个任务需要占用更多的资源,在时间节点上更加紧迫,其优先级也就更高一些。
在任务完成了某个里程碑之后,或者是工程完成之后,工程管理系统是需要对工程的完成情况进行审计和评估的,是需要出具工程完成状况报告的。这个报告包含任务完成状况以及任务完成过程中资源使用的情况,任务完成状况和资源使用的情况和原计划之间的差异,这些差异产生的原因,以及针对这些差异,需要对后续的计划做出哪些调整等。
- 对于个人使用的任务系统,在用户体验上所需要特别注意的地方
规划系统不能太过复杂,工程管理软件,根据自身的复杂度,提供不同复杂度的规划和录入系统。有些工程系统光是录入初始的数据就是一个庞大的工程。甚至会有专业的咨询、规划、设计机构来完成这些工作。这个过程对于个人使用的系统来说是必须要简化的。
个人任务系统和工程管理系统有一个最本质的差异。那就是工程管理系统是在一个封闭的时间段上来规划工程的,而个人任务系统是不可能从一个人出生一直规划到死亡的,所以个人任务系统通常都是在一个开放的时间段中规划任务的。而且,很多任务之间没有那多多的相关性。对于个人任务系统来说,相关性比较强的任务之间是可以有一定的依赖关系的,但是从整体来看各项大任务之间是没有紧密关系的。
个人任务系统中的资源管理是一个很麻烦的东西,有些资源在一个任务中起到一种或几种作用,但是这些特性对于其他任务来说可能就会发生变化。用户自己的时间也是一种资源,而且是关键资源。不同的个人之间也都互为其他人的资源。对于跨越任务和工程,散布在整个人生之中的任务管理系统,其所管理的资源只能是针对特定任务的。也就是说资源是任务相关的,规划一个任务或由一系列子任务构成的主任务时,可以涉及各种资源,但是这些资源是限定在任务内有效的。离开了这些任务,资源就需要重新定义了。
个人使用的任务系统,肯定需要包含能够通知到个人的各种通知手段。所以这个系统比如需要一个跨平台的通知子系统。工程管理软件中通常不需要这个东西,相关人员会主动的去查询任务分配和进展情况的。
工程管理系统中的那些复杂的审计和评估报告,对于个人任务系统来说也是不适用的。普通用户是读不懂,也没有耐心去读那些复杂报告的。而且,由于个人任务系统是在开放的时间段上进行规划的,所以这种系统更需要的是能够在任何一个时间点去检查过去任意时间段的任务完成情况和资源使用情况。并根据统计的结果,对后续的任务进行调整。
工程管理系统中所使用的语言和文字,都是在其特定行业和环境下使用的正式书面语言。个人系统完全可以使用一些个性化的、生动的生活语言、口头语言、网络流行语言来进行语言和文字描述。
用户选择了任务管理系统,通常是希望能够尽可能的按照计划完成任务的。工程管理系统是依靠契约、特定团队组织架构和制度来保证任务的完成的。那么个人系统能够依靠什么来促进任务的完成度呢?除了前面提到的提醒系统之外,应该再加入一些游戏性的鼓励和成就分享和刺激在里面。
- 关于个人任务系统的一些设想
规划和任务执行情况反馈合一,随时规划新的任务,随时查看近期任务的执行情况,并对任务进行调整。
完善的通知和提醒系统,使用生动的生活语言通过各种平台和方式,通知用户启动、推进或完成任务。
通过各种各样的平台,接受用户的反馈,并记录任务完成的进度和状态,以及用户在完成任务过程中的各种相关信息,最终形成完整的报告,比如装修笔记、旅行路书等。
增加任务状态,一个任务可以有多个状态,将状态机的机制更多的引入任务系统。提供尽可能多的状态机模板、子任务划分模板,供用户套用。
加强资源和资源状态的管理。用户自己的时间,出现在任务中其他人的时间,以及参与任务的其他资源(包括资金)的规划、分配和调度。
在任务系统中添加游戏性,鼓励、激励、刺激用户按照计划完成任务。并将用户完成任务的状态和成就,分享到Social平台上,让整个social平台上的人都来一起见证和激励用户完成任务。
Both comments and pings are currently closed.