如何高效完成项目交付

前言

最近996很火,但抛开企业的强制性文化外,是否还有其他的各种因素导致我们效率低下。我们能如何去提高编程的效率,如何有效去规避项目中的风险,使得项目的迭代计划能正常的执行,项目能按期交付。

下面先谈谈几个关于项目交付的问题。

1、如何量化评判编程是否高效?

2、在项目开展过程中,是否遇到非技术或自身的原因,导致效率低下?

3、是否曾经因为自身的原因导致项目拖延,你将会怎么样进行调整?

4、你有什么项目中的实践经验,使得效率更高呢?

下面将谈谈自己的一些经验及总结。欢迎大家有兴趣一起探讨。

问题分析

image

1、评判标准

为什么首先谈评判标准,是因为这个是衡量的基准。如何去衡量编程工作是否高效,相信不同的公司有不同的方法,但通常都没有办法达到可量化。往往是通过个人的经验评判,或者是横向的对比,从而去进行一个评定。

当然如果公司有完善的考核标准是最好不过。但是在没有的情况下,通常项目都会有一个大的时间范围及节点。我们需要保障自己的工作不会影响到整体的项目进度。

2、外部因素

相信很多做技术的同学通常抱怨都是技术外的因素导致项目不能如期进行。例如需求变更(通常还不会给加时间)、沟通层级复杂、项目需求估点不按常理出牌等等。各种各样的外部因素,最终导致项目不能如期正常交付,但最后往往都是研发的同学要背锅。总结一下,通常有如下几种情况:

1、需求问题 (无边际、频繁变更)

2、沟通问题(没有统一高效的沟通渠道)

3、管理问题 (没有规范的流程,明确的分工,详细的迭代计划)

3、自身因素

由于自身的因素导致项目延期也非常常见。对于业务需求没有深刻的理解导致返工、缺乏主动的沟通、整体的时间规划、良好的编码规范(后期fix问题占用需求开发时间)等等。都会是导致效率低下、项目延期交付的诱因。总结一下,通常有如下几种情况:

1、缺乏全局思维,考虑问题不够全面,不能预期风险

2、缺乏积极主动的沟通,埋头苦干

3、缺乏良好的时间规划及自我管理能力

4、缺乏良好的编码规范及架构设计、组件设计能力

经验总结

image

时间规划

1、工作的8小时中保持专注

保持工作时间的专注,这是基础,但往往又很难。特别是各种会议、邮件、聊天软件消息,往往会打断你。我们需要尽量控制自己专注,减少外部因素的干扰。

2、充分理解项目需求,对齐目标愿景

清晰的目标及与需求方对齐目标信息,这点尤为重要。可以有效避免在一开始就走错路,导致返工。同时需要从技术的角度进行整体的规划评估,那些是技术难点需要预研(往往给时间也不一定能完成)、那些是需要大量的劳动力投入。

3、充分的利用边角时间

有些技术方案往往是需要时间去思考,充分利用边角时间(例如地铁时间、吃饭间隙时间等)进行一些思考,往往可能有意向不到的收获。

4、制定详细的计划

我始终相信要达到目标,一定要有详细的可执行计划。在项目开展的过程中,应尽可能避免没有时间节点概念,甚至出现干到那是那得情况。尽可能将目标分解,形成月、周、天的计划。

5、保持风险意识

前面说到的需要对技术有整体的评估,这其实也是风险意识的一种体现。我们需要评估那些是技术难点、那些是需要劳动力投入。在项目前期尽可能提出来,从技术或业务上尽可能避免入坑。

沟通能力

1、及时有效的沟通

项目往往在推进的过程中,会有各种各样的因素产生变化。所以及时有效的沟通这点应该伴随整个项目的周期。

2、统一的沟通通道

保持统一的沟通通道能有效避免信息不对称,减少不必要的沟通成本及信息错误,及时有效的同步最新的信息。通常可采用站会、统一项目群组、实时同步协作平台等形式,及时保持信息的同步。

优秀编码能力

1、良好的编程习惯

在团队开发,良好的编程习惯及统一的规范尤为重要,这可以避免很多不必要的沟通,减少沟通及后期维护的成本。

2、良好的架构设计、组件设计

保持代码可扩展性,让我们可以更从容应对需求的变化。组件化的设计能让我们的代码更易于复用,大大的提高产出。

思考

这些年的经验,一个项目的成败,往往不是因为技术的原因,通常都是管理上出了问题。对于一个程序员,在保持优秀的编码能力外,还要重视项目上的软技能。提升沟通、风险意识、制定计划、自我管理等的能力。

总结问题,制定计划。不断实践,不断超越自己!