焦油坑
入坑前,都会觉得自己战无不胜,就像陷入焦油坑的巨兽,自以为有着庞大的身躯就能在各种的地形中安然度过。在填写志愿的时候,对未来充满希望的孩子们还不知道自己将面临什么,只觉得代码的世界奇妙酷炫,然而代码对于软件系统的开发来说只是水面上的冰山。前人的智慧告诉我们如果没有认真地进行分析、设计、进度计划,真正开始开发后总会让自己陷入令人痛苦的麻烦。事实上,这种麻烦在我前期做过的绝大多数项目中都出现了,但是当你咬着牙从中脱身,还是会体验到创造与实现的快乐,通过这些经历和课程学习,我也慢慢能总结归纳经验教训,让自己今后能尽量少地陷入这样的“焦油坑”中。
人月神话
软件开发中最难掌握的莫过于过程管理,最开始的课程项目规模都很小,自己小作坊式的开发方式似乎也能很好完成要求,然而越到后来,项目规模越大,参与的人越多,开发进度的估计似乎成了一门玄学,每个人的能力不同,擅长的方面不同,开发中可能遇到的问题也不可预测,往往都是快到截止日期时集体赶工。我实习期间最深刻的印象正是来自于开发团队在每一个迭代开始前的计划方式。我们做完上一迭代的回顾后会讨论上一次的任务划分是否合理,时间分配是否过少或过多,然后根据产品经理对这一迭代的模块划分每个人独立进行开发测试的消耗估计。通过团队成员的集体商议确定模块需要的花费后,去除与上一迭代相比过多消耗的模块,结束后会写下来贴在白板上由每个人自由领取任务。这个过程是开发团队结合了长时间的经验积累和研究人员的研究成果所确定的方式,但是在执行的过程中仍然在不断探索改进以适应团队现阶段的开发能力。书中说“人月”是一个神话,是因为时间精力的消耗与独立投入的人力、时间不成线性相关,所以每一次的项目估算和调整都需要谨慎为之,落后太多的项目往往会滑向失败的深渊。