Tag: 软件工程师
-
出色的软件工程师都是出色的管理者
社会分工是怎么发展的? 完全的自给自足应该是人类最初的状态。个人技能体系完备的副作用就是人人都需要成为多面手,结果就是因为人的需求多种多样而导致技能学习应接不暇,生活质量低下。 在这样的背景下社会分工完全是一种很自然的结果。专人专事,就有可能形成专业理论、积累专业经验,为专业技能进一步发展提供基础,如此往复。 技能分工又会从两个方面扩大技能的范畴,增加新的技能:1、专业技能伴随的科技发展拓展了人类接触世界的范围,增加了新的领域,势必出现新的技能;2、分工带来的技术隔离又会促进合作,如何与人合作本身就是一种新的技能,内涵无限,您一定在机场见过。 随着人类迈得步子越来越大,人类做事的需求变得不那么明确或者说不那么必须了。能够准确分辨出应当完成的事情成了重要的技能,能够准确之处完成这件事情需要拥有哪些技能的专业工作者合作也变成了一件困难的事情。 (有的人从事的事情不属于上面提到的任何一项,他们有个共同的称谓——艺术工作者) 这么看来,刨开艺术工作者,人类无非在干着这么几件事情: 拍板决定做某事——我们称作领袖。 定义需要谁如何做某事——我们叫做专家。 协调正确的人来做事并促成积极快速有效的合作——我们叫做领导。 做形形色色的底层事务的人——这里的底层事务是个广义概念,既可以是不可拆分的事务,也可以广义代表上面三种事务——我们叫做,叫做,叫做什么呢? 软件的世界里面也有完全对应的事情: 拍板决定做某事——我们叫做系统需求。 定义需要谁如何做某事——我们叫系统方案设计。 协调正确的人来做事并促成积极快速有效的合作——我们叫子系统/模块 交互设计、接口设计、算法流程设计。 做形形色色的底层事务的人——这里的底层事务是个广义概念,既可以是不可进一步拆分的代码,也可以是其他系统API、硬件API、IC API——我们叫做抠腚。 不同之处在于,软件的世界里更理想化,模型更准确,执行更到位,当然也更死板。 软件工程师不是出色管理者的唯一理由只是因为他们太理想化。