作者 | The Hosk
译者 | 弯月
责编 | 王晓曼
出品 | CSDN(ID:CSDNnews)

开发人员是软件项目的引擎,创建软件的速度取决于开发团队。

我们的目标应该是制定计划、决策和需求,让开发团队专注于创建软件。

然而,开发人员的时间没有得到应有的保护,无法专注于开发。因为他们常常需要承担其他人也可以完成的任务,例如被邀请参加各种他们根本不需要参加的会议。

与此同时,经理的工作是不会创造任何东西的,他们的主要任务是营造能够推动软件开发的环境,但实际上他们却在牺牲开发人员。
在这里插入图片描述

开发人员的处境

有人认为,创建计划才是软件开发的重点,而且必须由重要的人承担,而开发团队承担的只不过是软件开发中简单的一部分工作。所以在很多人眼中,开发人员的价值很低,因为他们只是开发人员,而不是领导者或决策者。

实际上,其实是领导、项目经理、高管、Scrum master 以及所有的经理不会创造出任何东西。当然,这并不是说他们什么都不用做,他们的工作是确保开发人员能够正常开展工作,并为他们解决难题。在这之中,所有会议以及占用开发人员时间的任务都应该被排除在外。

经理和领导即便每周工作 100 小时,也无法生产出任何软件,甚至有时候制定出错误计划时还不愿意改正。大多数经理和领导都是这样,制定了一个又一个错误的计划,无法按时交付项目,自己又不会创建软件,到头来只能将责任推卸给开发团队。

可谁又能想到,项目设立领导的职位是本来为了帮助开发团队创造条件,让他们专心创建软件,并为他们解决难题。

开发人员的时间是瓶颈

开发人员的时间非常重要,他们的时间是项目的瓶颈。而经理和领导却一点都不懂得珍惜他们的时间。

开发人员的工作是创建软件,他们浪费在无助于创建软件的活动上的每一分钟,都会影响到项目的完成速度。

我们应最大限度地利用开发人员的时间,而且只需考虑最重要的开发任务。

时间的价值怎么变得如此混乱?

软件项目受人员、办公室政治以及计划的影响。软件项目常常受到某些感性决策的驱动,而当项目失控时,人们只会尽可能推卸责任。

大多数软件项目的目标是在期限和预算内交付。软件项目的真正目标是创建正确的软件,但实际上,大多数时候决策的重点都是为了迎合计划,而不是创建软件。

开发人员被视为技术资源

很多人认为开发人员是技术资源,就像工具箱中的工具一样,可以根据技能分类为螺丝刀、扳手、锤子等等。而你只需要选择正确的工具来解决问题,例如我需要一把螺丝刀来拆螺丝。

但其实这种观点是错误的,而且这会导致开发人员的时间被低估和浪费。

每个开发人员拥有的技术、知识和经验都是独一无二的,尤其是在当前项目中:

  • 每个人都拥有不同的技术;

  • 每个人都拥有不同的经验;

  • 每个人对业务流程的了解不同;

  • 每个人对整个解决方案的把握不同;

  • 每个人与客户的关系不同;

  • 每个人与其他开发的关系不同。

经验丰富的开发人员比初级开发人员更有价值,经验丰富的开发人员的工作速度也远超初级开发人员。

大多数新加入软件项目的开发人员需要一个月的时间才能上手,而扳手拧一颗松动的螺丝不需要任何时间上手。

开发人员的时间不被重视

在创建软件时,双赢的态度会导致需求变化或需求不断增加,然而项目期限却不会延长。那要怎么才能让同一批开发人员在规定时间内承担更多的工作呢?

开发人员的时间不受到重视,他们可以通过加班来承担更多的工作?开发团队可以挤进更多的工作,他们只需要加班和更努力地工作,就能严守不断变化的最后期限?

添加更多开发人员就能加快开发速度?如果将开发人员视为技术资源,那么确实添加更多开发人员就能将创建更多代码,但我建议你阅读一下《人月神话》。

开发不仅仅是编写代码,而且还需要了解完整的解决方案、了解业务的运作方式和需求。

开发人员需要与项目中的其他人协作,需要知道向谁寻求帮助以及如何寻求帮助。

随着开发人员数量的增加,沟通会变得更加困难,而这只会减缓开发速度。

开发人员的时间

创建软件需要整块的时间,不被打断,可以进行深度思考。但实际上,开发人员会被不停地打断,被要求参加会议,或承担其他非开发任务,导致切换思维所付出的代价飙升。

为了最大限度地提高开发团队的产出,你需要保护他们免受会议、打断和非生产性活动的影响。管理人员和非开发人员需要成为业务需求和解决方案方面的专家,回答开发人员的问题。

然而,在实际的软件项目中,开发人员会被不停地打断,他们需要参加超负荷的会议。

没有人注意到这些琐碎的问题导致软件项目失败。软件项目往往会在低优先级的问题上浪费大量时间,同时各种会议还会占用开发人员大量的时间。

开发人员的心态

开发人员应该珍惜自己的时间,拒绝参加各种会议。开发人员应该明白自己与项目中的其他角色是平等关系,他们不需要牺牲自己的时间去参加那些只是为了向经理汇报进度的会议。

当项目范围发生变化时,计划也需要更新。在要求扩大范围时,最佳回应是:“每周我只有 40 个小时的工作时间,如何完成 60 个小时的开发?”

平日的加班或周末加班应该只发生在产品上线的情况下。其他所有的截止期限都是人为设定的,即加班只是因为有人做了这样的设定。

不接受其他人的甩锅。开发人员的时间是有限的,其他人也应该承担起自己的职责。

我们必须保护开发人员的时间,因为这是唯一用于创建软件的时间,也是最终产出的时间。

开发人员需要了解其他角色的职责,并让相应的人员自己承担,而不是为他们做工作。

参考链接:

Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐