最近读了GregoryBrown的一篇文章《悲哀的软件之死》。
Brown在文中提到,在某些软件项目(管理的对象是软件工程项目,它所涉及的范围覆盖了整个软件工程)的任务管理工具中,启动任务总比完成任务得要快。
作者认为这种现象很悲哀,而且浪费资源。文中隐含着的假设是指:启动任务快但完成任务慢是一种不良现象。
作者并未对这种糟糕状况的原因做出说明。
在我看来,此文章和Reddit上提出的论调都说明了一种现状:大多数人并不了解软件项目管理的真正目的。
此外,很多软件项目都出现了问题,造成公司工程、产品以及其他部门之间关系紧张。
后来因此产生了大量的工具,都旨在解决项目管理的问题。
然而实际上很少有哪种工具能真的解决问题,因为提供这些工具的人,并未从源头上真正了解问题的本质。
两个目标
在我看来,优先级排序和可预测性是项目管理的两大核心目标。
可预测性是指准确估算任务内容和完成时间,并与公司相关部门和人员沟通。
任务管理工具中记录的是具体任务的当前负责人、已完成的任务和未来可以完成的任务。
因此,任务管理工具并不能直接达成项目管理的以上两个核心目标。
我也考虑过开发一种能够实现优先级排序和可预测性两个目标的项目管理工具,希望能解决现有系统当前存在的问题,可惜这种想法迄今为止并未能充分实现。
在任务管理工具中创建或启动一项任务,仅仅代表人们需要在未来某个时刻开展某项工作。
启动任务并不意味着一定要完成或者在某个特定时间完成任务。虽然有些任务永远无法完成,但实际并无大碍。
比如,要获得现代数据库表单中的某一行信息其实很简单。
因此,任务启动的速度比完成的速度快并不意味着项目即将以失败告终,应该说,这只表示,人们针对项目提出新任务的速度比开发人员完成任务的速度快,这是一种正常现象。
任务创建后,就应该进入优先级排序或分类程序,但优先级排序或分类的结果不能只是简单的做或者不做。
经过优先级排序或分类后,应该得出完成该任务的重要性的预估,以及完成任务所需的工作量和资源的预估。
根据这两项预估值,就能计算出任务的价值和所需工作量,从而对任务进行堆栈排序。
项目进行过程中,Joywok在流程化方面的独特的优势,可以让软件项目的管理更为高效。实时更新的项目报告,将项目所有信息和动态按时间轴展示,让项目流程变得简单清晰。
两评估重要性和工作量
虽然评估重要性和工作量听起来简单,但实际上,准确评估任务重要性并不容易,需要有销售、产品、市场营销和很多其他方面的信息。
同样,准确评估完成任务所需的工作量即使对经验丰富的工程师来说也可能颇具挑战。
为了得出准确的评估结果,人们也设计了一些评估流程。
大多数流程都依赖群体的智慧,比如计划扑克。引入评估流程有助于得到精确的数据和信息。
相信对评估结果进行最终分析后,人们会发现“做比较”比“得出绝对值”要容易得多。
比如,人们很容易估算到一头大象的重量是一匹马的重量的4倍,但很难得出一头大象的重量是磅这种绝对数值。
最近我做了一个简单的实验,实验结果也支持了这种想法。
首先,让一组人分别对相对的、比较性预估结果赋值,然后利用约束求解器将这些值转换为绝对预估值。
实验的初步结果相当振奋人心。如果我将来开发项目管理工具,一定会把这种方法集成到工具中。
有了准确的重要性和工作量的预估值,就能对任务进行优先级排序。
将预估工作量与可用资源信息结合起来,就能更好地预估完成任务所需的时间,由此便可提高任务的可预测性,更好地与公司其他部门共享信息。
分解任务
有些任务启动的时候规模比较大,因此需要分解为较小的任务,一方面便于将任务划分给不同的开发人员,另一方面也能提高任务预估信息的准确性。
然而,如果好几周或几个月都没人能开始着手工作,那么分解任务也就毫无意义了。
因此,我建议根据任务大小设置时间周期限制。
例如,可以设置一项预计会在三个月内启动的任务所需工作量不能大于2人周,而一个月内将要启动的任务所需工作量不能大于4人日。
任务会跨越连续的时间周期,因此需要将其分解为相对较小的任务。
可以假定分解后的每个小任务足够小,能够达到下一个时间周期。实际上,这个环节可以在周会上完成,如果没有需要分解的任务,也就能及时取消。
可以指定一名开发人员分解较大的任务,结束会议后相关人员即可着手开始。通常较大的任务会分解成为3-5个小任务。
这种方法还有一个优点,即开发人员能随时了解任务分解的过程。
结论
总之,如果不能明确项目管理的目的,那么即使在项目中采用管理工具也并不一定达到目标。
希望本人的想法能够抛砖引玉,提出一些有关项目管理框架的思路。
万万没想到,这种项目管理软件一直在阻碍企业协作效率!
原文链接:治疗白癜风什么方法好根治白癜风什么方法好