是什么让项目变糟?何时起我们下班回家时开始盘算:“见鬼,我得离开”?下面是我们程序员不时要面对的一个问题清单,这些问题让我们筋疲力尽。而通常我们又躲不掉,不得不设法去应付。
假如你不幸处在一个错误的团队中,问题则免不了。大家也许都还不错,但是当其中某人由于钱的事情不高兴,或者者对琐碎的任务感到厌烦时,他即可能破坏团队的气氛。其余人可能只顾着自己的事业,这使得他们变成了糟糕的团队伙伴。某人会认为自己是在帮助这些人实现他们自己的事业目标。假如一个团队成员的知识太少,也可能出现不友好的情况。假如你从事的工作与你的技能不配,或者者没有人能够帮你迈出第一步的话,你也可能陷入麻烦。
团队需要和谐。假如你有幸身处“分享同一个梦想”的团队,一切都很美妙。假如你是由无聊或者自负之人组成的团队的一员,你可能会经历一段非常艰难的时光。
少量项目需求读起来简直是科幻小说,笼统,一点都不现实。有想象力当然很好,但想象力必需适应团队。假如项目团队中有许多应届毕业生,你不太可能在第一版就创立出基于云的最佳电子表格。
有些用户往往以为软件需求一句话即可以说清楚:“该产品必需像社交网站X,只是有一点儿不同。”“事情不会太难,有公司已经提供了免费版。”“这只是一个留言板罢了。”这些需求最终导致极大的不满。用户从未取得自己满意的产品,开发者也根本没法儿满足用户,而且觉得自己难以胜任工作。
不清晰的需求导致了外行的期望,不仅如此,有时人们似乎把程序员当成了超人。
当你刚接手一个项目时,根本不可能成功调试有着 100 000 行代码的程序。无论是不是产品问题,程序员都需要时间先读懂代码,而后才可能修复它。
像“这只是一个按钮罢了”或者者“老手程序员五分钟就搞定了”这样的话根本无济于事。除此之外,“五分钟的修复”也许正是需要修复的根本起因。
少量时候,超越身体极限,尽量把活干完是必要的。假设产品中存在一个根本性的软件故障,我们要尽力救援。这往往需要额外加班,工作到半夜甚至更晚。
软件的问题是如此关键,以至程序员往往被期望熬夜解决,直到问题处理。我们中最好的程序员曾被发现在咖啡机下方昏昏睡去,尽管他奋不顾身地想保持清醒,但最终失败了。在少量人的心目中,在咖啡机下睡觉显示了程序员对项目的认真。
尽管这样的生活有时很有趣,但长此以往会导致严重的问题。假如你的这种行为“修复”了事实上是管理不善的问题,那就更糟了。当需求变化时,或者者因为公司政治致使项目管理者承诺了一个最后期限时,你就会遭受非常令人沮丧的经历:有家不能归,有床不能睡。
程序存在软件缺陷,这很正常,无法完全避免。心理学家发现人们可以很容易地同时思考三件事。但假如数量超过三个,大多数人的思维都会出现问题。然而作为一名程序员,我们必需同时记得更多事情。
通常在程序员的附近有很多干扰,比方:
咆哮的项目经理;
没完没了的电话和会议;
在高压下工作;
或者者是家庭、健康或者财务问题。
一个程序员受到的干扰越多,编写出缺陷代码的可能性就越大。让少量分心的事可以保持在最低限度,以免他人受到影响。例如家庭生活,这是我们生命的重要一面,尽管有时它也相当无情。
无论谁在评估项目的预算,都需要安排少量额外时间考虑到程序员的非工作生活。不能仅根据项目成员的工作经验来计算预算额度,需要考虑他们的现状。为了正确地估算,你需要知道有人家里能否有个怀孕的妻子,大家能否都健康,或者者能否已从之前疲惫的项目中恢复了元气。
忽视生活就意味着忽视风险或者机会。
给一个精力充沛的人布置大量无聊的任务,意味着你错过了一个机会。而给一个家庭出现变故的人布置高度复杂的任务,则会添加风险。
假如程序员意识到自己的生活长期被忽视,这会使他感到沮丧和疲惫。
威胁无疑不是一个好的激励策略,但依然被广泛使用。“假如你不能熬夜加班,就不配当一名程序员,而应该去做一个园丁。”我的一名同事曾这样说过。
威胁会引起恐惧。除了黑暗外,害怕失去生存的基础也是人类最强烈的恐惧之一。
要是某人遭遇一阵威胁后,不得不在恐惧中工作,那他绝对是“职业倦怠”症的最佳人选。
项目经理走入房间,扔下新的需求,而后走人:这就是“直升机式管理”方式常见的场景。好像直升机着陆、扬尘并再次起飞。有些人精于此道。他们的大多数需求未经过深思熟虑,而且在项目实施的过程中毫无预警就改变了需求。
当需求不明确时,就会失去目标,任务永远无法结束。每一次会议都显得荒谬,所有探讨结果都是废话。最后,整个项目都被质疑,自己每天做的事情的意义也会受到怀疑。
大家在入门门]学习前台的过程当中有遇见任何关于学习,行业方面的问题,都可以申请加入我的前台学习扣扣裙 缺乏相关的基础教程也可以直接来找我要,我这里整理了-套最新的前台基础教程,学习前台的这个过程当中我也收集了很多前台学习手册,面试题,开发工具,PDF文档书籍教程,可以直接分享给你们。
在现代社会中,假如你不能决定像僧人那样生活,你就需要金钱维持生存。
在某些场合下,公司——嗯,我们还是说公司的管理层吧——他们会竭力从项目中榨取每一分钱,对雇员看都不看一眼。
2012 年,富士康中国公司(它是苹果公司的合作伙伴)发生了一系列抗议运动。工人要求改善工作条件。
在西方国家,你可能被迫一直住最廉价的酒店,坐最廉价的交通工具,而且使用最廉价的办公设施,即便你负责的项目非常成功,为公司带来的利润丰厚。
节省本该花在员工身上的钱,从而证实公司的盈利能力是多么强,可能是管理层犯下的最糟糕的错误。我见过很多人因而而离开公司。
对于那些让程序员沮丧的事情,我可以写一整本书,在本章我们就已经看了其中少量。
这里有少量更多的成见,你也许听说过。
比方,伟大的程序员
假如能用Y语言写代码,就能用X语言写代码。
可以迅速地处理问题,其中大多数能在一分钟内搞定。
不会写有缺陷的代码。
不需要编写测试代码。
喜欢深夜还在为用户编写代码。
不在计算机旁或者办公室里也能调试代码。
理解关于硬件、最新的IT趋势以及框架等的一切,无所不知。
不与用户交流就能够了解用户的意思。
熟习各种操作系统,从底层到上层,包括每一种移动设施上的系统。
可以编写运行在每一种设施上的代码,并且无需重新编译,无需设施转换,无需付出额外的努力。
这个成见清单可以说是无穷无尽的。我们无法教育人们中止相信诸如此类的故事。即便是专家也无法做到。相反,我们需要基于日常原则保护自己免受成见的干扰。