title: 345.架构师给程序员的一封信 outline: deep

下面的邮件是某Architect发给他的Engineering团队的(来源),我觉得挺不错的,翻译过来,我相信我们所有的程序员都能从中学到很多东西。下面是这封邮件——

每次当我开始做新的东西是我就会很兴奋。就算在软件圈里做了20年以后,每当开始新的旅程里,我都觉得我心中有一些东西不吐不快。这是我们大家一起的旅程。我强烈地相信我们详细规划的过程是很有乐趣的,富有挑战的和丰富多彩的。我想让这个旅程让你们难忘,并且能增添你们所有人的阅历。

这看起来有些唯心主义,不过,我想制订我的工作日程,我们的技术策略,以及你们密切合作的进度。这样一来,当你们做了什么相当不错的事,我们所有人都可以受益。我相当的尊重第一个工程师和他们的代码。

1. 代码是王。文档仅随其后 。所以,代码一定要和文档一致,并可以正确执行。

2. 测试,测试,测试。

3. 单元测试非常关键 。每一个在单元测试之后发现的bug需要开发人员双倍的开销。记住,我宁可增加你的薪水,也不愿意把这些钱发给另一个QA团队然后你再修正bug。因此,如果你的代码满是bug的话,我不得不把钱付给更多的人,而你也只能分得很小的一块饼。

4. 写下有效率的代码,不但是让人读得有效率,而且也是让CPU执行 地有效率。对于坏代码永远不会善罢甘休。

5. 多了解今天工作需要之外的事情。你不仅仅要知道今天干什么,还要知道明天需要什么。

6. 回家时不时做点菜,是的,真正的做菜。这会教会你菜谱和做饭的不同。菜谱告诉你这道菜需要什么样的食材,而你实际去做需要考虑的是你现在手上有什么……这就是其中的不同。(对于一个刚起步的公司,这是一个最大的教训)

7. 创新和好点子(技术或是产品),请与大家共享。

8. 我知道你不喜欢商人。我也知道为什么。他们销售那些你做不到的,他们承诺那些你完不成的。他们要求的比他们付出的更多。但是,没有他们,我们可能没有办法把商业转换成产品。这是一件很难的技能。把你的想法告诉我,我愿意成为你和他们间的缓冲。要建造一个好的团队,我们需要的所有的东西。

9. 作为一个工程师,热爱你的专业。你能拥有一个可以挣钱、受人尊重、并拥有乐趣的程序员人生。

你觉得怎么样?