工程是关于如何低成本、高效率、按时按量完成既定任务的。所以判断一个工程师是否优秀,并不是他多有创意多有名气,而是看他有多稳,看他能多GettingThingsDone,中文就是「靠谱」。
有时候一个好的解决方案,未必采用了最新的技术和框架,而是看上去朴实无华,功力都*涵在背后的细节里。就像*高手打的斯洛克台球,每一杆都平淡无奇,只是因为上一杆的回球太到位。
有同学问,那我工程做的太好,岂不是没有机会遇到一些高难度挑战了么?放心,一般公司都雇佣了产品经理来帮你制造高危事件。
同样的,一个好的工程师,会选择最适合需求和团队的方案,考虑开发效率和系统效率的均衡,从而已达到最优效果;而不是整天和别人去争论什么语言*、哪些框架过时了。
在项目立项之后动工之前,对要做的事项作出详尽的规划,对未来一到两周的*给出细致的排期,这是进度控制的基础。
代码的及时入库与合并,自动化测试和每日构建,CodeReview和文档编写,这些看似无关紧要的习惯则决定了项目质量。不幸的是,很多程序员把这些工程上至关重要的东西当成垃圾,视为对他们「创造力」的压抑。
他们总是以创造力为借口去寻求自身的自在,比如上班不带胸牌不打卡,中午休息时间在公司看视频打游戏,*可以远程上班,项目到期之前再来检查进度,公司不要用统一框架,只有傻逼才写文档。