本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。
本书适合所有程序员阅读,也可供所有想成为具备职业素养的职场人士参考。
想象一下灵魂出窍后的体验:你看见自己躺在一张手术台上,一位外科医生给你做开胸手术。医生竭力挽救你的性命,但是时间有限,也就是说,他的一举一动都与病人生死攸关——你命悬一线。你期望医生的表现如何?你希望他冷静、井井有条吗?你希望他清楚准确地吩咐助手吗?你希望他严格遵循当初训练时的做法坚守手术规程吗?还是想让他汗流浃背、咒骂之声不断?想让他乱扔手术器械、把东西摔得哐当响吗?想让他满腹怨气责怪管理人员设定的不现实的手术时间,一直嚷嚷时间不够用吗?
你期望他表现得像一名专业人士,还是像我们常见的某些开发人员的那种做派?即使有压力,专业开发人员也会冷静果断。尽管压力不断增大,他仍然会坚守所受的训练和纪律,他知道这些是他赖以战胜由最后期限和承诺所带来的压力感的最好方法。
在压力下保持冷静的最好方式,便是规避会导致压力的处境。规避的方式也许无法完全减除压力,但是可以大大降低压力并缩短高压力期的时间。
承诺:
我们应当避免对没有把握能够达成的最后期限做出承诺,这一点很重要。
业务方总是期望能够拿到这些承诺,因为他们想消除风险。我们要做的就是使风险定量化并将它们陈述给业务方,这样他们就能做好相应的准备。做不切实际的承诺会阻碍目标的实现,对公司和个人都没好处。
保持整洁
快速前进确保最后期限的方法,便是保持整洁。
让系统、代码和设计尽可能整洁,就可以避免压力。这并非是说我们要花无穷无尽的时间去清理代码,而只是说不要容忍混乱。混乱会降低速度,导致工期延误,承诺失信。因此,要尽力保持输出成果整洁干净。
在危机中坚守纪律:
选择那些你在危机时刻依然会遵循的纪律原则,并且在所有工作中都遵守这些纪律。
遵守这些纪律原则是避免陷入危机的最好途径。当困境降临时,也不要改变行为。如果你遵守的纪律原则是工作的最佳方式,那么即使是在深度危机中,也要坚决秉持这些纪律原则。
不要惊慌失措:
正确应对压力。长夜漫漫无心睡眠,无助于更快地解决问题。呆坐着烦躁不安也于事无补。而你可能会犯的最严重的错误,就是鲁莽仓促!要避免产生孤注一掷的想法。鲁莽仓促只会把你带入更深的深渊。相反,要放松下来。对问题深思熟虑。努力寻找可以带来最好结果的路径,然后沿着那条路径以合理稳定的节奏前进。
沟通:
让你的团队和主管知道你正身陷困境之中。告诉他们你所制定的走出困境的最佳计划。请求他们的支援和指引。避免产生的惊恐。没有东西比惊恐更令人愤怒和失去理性。惊恐会让你的压力增大十倍。
依靠你的纪律原则:
不要惊慌失措地茫然四顾另寻依靠,而要从容不迫、专心致志地依靠你自己的纪律原则,这将帮助你更快地走出困境。(如果你遵循TDD,那么这时写的测试甚至要比平时多。如果你笃行无情的重构,这时就要更多地进行重构。如果你相信要保持函数尽量地小,这时就要让函数变得更小。战胜压力煎熬的唯一方法,便是依靠那些你已经知道切实有效的东西——你平时遵守的纪律。)
寻求帮助:
结对!当头脑发热时,找一个愿意和你一起结对编程的伙伴。你会前进得更快,而缺陷却会更少。结对伙伴会帮助你守住原则,制止你的精神错乱。搭档会捕捉住你疏忽遗漏的事情,会提出有帮助的想法,会在你注意力迷失的时候接过你手中的工作继续前进。同样地,当你看到其他人身处压力之下时,可以伸出援手,和他们结对工作,帮助他们走出困境。