没有见过好的代码,也许就比较难去写出好的代码;没有遇见糟糕的产品,就不知道原来的产品有多好。
    很多时候,我们局限于我们的视野,作出的判断往往不够准确。
    所以永远不要把你生命某一时刻的感悟,当做真理。因为当你接触更多的信息,你有可能不断否定原先的判断。

    来到新公司两个月,除了一些对人对事的感悟,还有一些对整体组织结构的感悟。

    曾经:
    【以业务来划分团队,业务内有各个职能的人,大家都是搞同一个业务的】小作坊式的开发?10人业务小团队,产品比较简单,虽然有与外部能力的交互,但是比较少。感觉主要的优点应该是:小范围的效率提升

    • 由于没有把同一个职能的人,日常性地聚集在一起,实际上技术共同进步的可能性变小了
    • 易于小范围沟通,沟通的内容相对简单,主要的原因还是业务复杂度简单(并不是大公司说有多难,而是杂)
    • 团队的凝聚力要更高。客观上由于大家负责同一个业务,实际上会更加熟络。
    • 业务的熟悉成本较低,主要是获取业务知识的来源问题(你几乎可以从每一个人那里得知业务内容),可以说是自动的业务人员备份。

      也许是意识到专精技术无法交流进步的缺陷,往往这种模式会有各类分享会,以让各类型码农碰头。

    现在:
    【以职能划分团队,大家负责不同的业务线——比如都是前端,搞对应的不同业务】分工、流水线式开发。当体量较大,产品较多,也许这种更加合适??主要的优点应该是,易于管理

    • 代码管理更加方便,利于技术发展。
    • 人员管理更加灵活?
    • 成本降低?这种模式最少只需要1个人。比如A产品、B产品、C产品,都要增加某个下架提示,如果通过业务来划分,可能就要通知A团队、B团队、C团队;而通过职能划分团队,则只需要通知【前端团队】
    • 沟通的重要性被放大了。主要还是因为沟通的双方、甚至多方,未必能够清楚对方的需求。当某一方发生变动后,需要通知所有方!!!
    • 当有人离职的时候,造成的打击实际上是巨大的。(如果不做好人员的备份,实际上极其容易导致产品、功能的断代)

    【曾经觉得有些公司7个人负责42个产品很酷,现在看来有利有弊;他要求每个人的实力都是非常强大的。】

    同时能够做到互相备份。