查看原文
其他

请别拿程序员当工人使唤!

Alfredo Pinto CSDN 2019-02-15


作者 | Alfredo Pinto

译者 | 彼得

责编 | 郭芮

出品 | CSDN(ID:CSDNNews)

以下为译文:

开发人员所做的工作与工人类似,但管理人员很容易犯的一个错误是:试图像管理在工厂里每天8小时组装电视的工人那样管理开发人员!在工厂里,不让工人停止工作是有道理的——停止工作意味着每天的产出减少,从而会提高成本,降低利润。

但这种方法并不适用于管理软件开发人员。软件开发人员通常把90%的时间花在思考如何解决问题上,而只有10%的时间花在编写代码上。通常没有代码开发经验的经理会认为开发人员在90%的时间里什么都没做。

我曾经负责管理客户现场的开发人员。客户抱怨很多,用他自己的话说,“开发人员一天中大部分时间都无所事事。”在客户现场管理开发人员时,我总是每天审查开发人员的进度。事实上,这些开发人员已经做得很好了。但是客户总是希望看到他们每天8小时都在编写代码。

在软件开发中,我们的主要工具是头脑。有时我们思维迟滞,很难做任何工作;有时反应敏捷,我们一天就可以完成一周的工作;有时候因为担心家庭问题而分心,有的时后可以集中精力完成任务。实际上,一个软件开发人员在全心工作6小时之后就很难保持高效率了。他们通常需要喝大量的咖啡和利用空闲时间来做些其它的事情,才能更有效率。有时候,我们的思维太局限于任务本身,其实,通过偶尔的放松聊天,或许能更好地解决问题。

所以,对于一个软件开发人员,他们的情形是相当复杂的,他们的开发能力也是比较独特的。有的开发人员更精通某些编程语言,有的人精通某种数据库系统,有的人精通前端,有的人精通后端,有的人精通开发工具。所以试图统一量化他们工作的是很困难的。

每一个软件的需求都不一样,开发人员需要解决的问题千变万化。经过多年的积累,我们也只有在很少的的场景,才能有两次解决同样问题的机会。开发软件没有捷径。我们可以借助软件库和软件框架来从技术角度提高效率,但是在软件开发过程中,商务逻辑是最难以实现的。企业软件是最难以实现的软件。

但是,这也不意味着我们什么都不能做。你需要理解程序员,设身处地地为他们着想,你才能为他们创建好的方法和策略。

通常我在给软件开发人员安排任务时,一般不会给他们超过半天(4个小时)或两天(16个小时)的任务。如果一个任务看起来会超过两天,我会把它们细分成两个、三个或更多的子任务。这样可以避免大任务带来的时间浪费。

例如,假设一个开发人员需要完成CRUD操作,通常一个简单的CRUD操作需要一天时间(8小时)。在这种情况下,我会给开发人员分派一个8小时的任务。

在其他情况下,比如,假设创建操作(Create)有很复杂的商业逻辑同时更新操作(Update)有另一套不同的商业逻辑,而整个任务需要5天才能完成。在这种情况下,我就不会给开发人员一个大的CRUD操作的任务。相反,我会将这个任务分成几个小任务。

比如,一个定义数据模型的任务(8小时),一个插入操作的任务(16小时)和一个更新操作的任务(16小时)。这样,我每次给开发人员分派一个小任务,并且在他完成第一个任务之前,不会让他去做其它的两个任务。

这样,如果他在任何一天没有完成至少一项任务,你马上就能够知道这个开发人员要么在浪费时间,要么被某些事情阻碍住并且没有寻求帮助。希望你能明白:作为一个经理,你需要在每一天结束的时候,检查你的团队已经完成了哪些任务。

在软件开发的过程中,声称百分之多少已经完成通常是不准确的。很有可能有人会告诉你“为了这个任务,我已经花了4天,并且完成了90%工作量。我还需要花另外的4天来完成剩下的10%”。这种用百分比来说明项目进展的方法很武断,而且容易对人产生误导。唯一正确的衡量进度的方法应该是该任务完成还是没有完成。

一个任务是否完成,并不是由开发者来决定,它应当由测试人员或客户(通过客户认可测试UAT)来决定。当开发人员声称任务完成的时候,我们只不过暂时停止该项目的用时统计。如果测试人员或者客户认为该任务的功能不正确,我们还需要继续统计时间。如果在我们暂停项目用时统计的时候,该软件已经实现了预期的功能,我们就可以认为该任务已经完成。

像《GettingThingsDone》和《Pomodoro》等方法论的文章都非常有帮助,《Work gamification》也很有益处。

原文链接:https://dzone.com/articles/how-to-deal-with-developers-that-tend-to-be-relaxe

作者简介:Gunther Verheyen,独立的Scrum管理员,他是一个作家、演讲者和人道主义者。他为Scrum相关的所有问题提供帮助、服务和建议,帮助人们学习Scrum。他不断地思考和学习,并且创造机会、贡献价值。

本文为 CSDN 翻译,如需转载,请注明来源出处。


 热 文 推 荐 

 MongoDB 背锅、58 同城中枪,2 亿简历遭泄露竟祸起程序员爬虫?

 Google 正在“跟踪”你

 漫画:从打牌到 map-reduce 工作原理解析

 资源 | 最新版区块链术语表(中英文对照)

 程序员有话说 | 程序猿在乘地铁的时候都在想什么?

 2018全球50大最佳发明名单

☞ QQ卖手办,用AI分析用户评论

☞ 春运抢票靠加速包?试试这个Python开源项目吧

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存