某个总经理电话面试我问的问题,我整理成文档,以提高自己。欢迎大家指教。
如果我当上技术经理如何展开工作... 1
1 总括... 1
1.1 引子... 2
1.2 技术经理(总监)的任务... 2
1.3 此职位和我高度匹配... 2
2 术语、概念、假设... 4
3 规划... 5
3.1 不同阶段核心要素不同... 5
3.2 研发部组织架构... 6
3.3 规范... 8
3.4 关注点... 9
4 计划... 10
5 培训与考核... 11
5.1 培训... 11
5.2 考核... 11
5.3 对我的考核... 12
5.4 晋升... 12
6 需求与测试... 12
6.1 不同性格在不同阶段的优劣... 12
6.2 关于需求人员... 13
6.3 关于测试人员... 14
6.4 需求确认或整理... 14
6.5 需求分解、任务跟踪... 14
7 单人代码走查... 14
7.1 代码走查员发展阶段... 15
7.2 代码走查好处... 15
7.3 我代码走查需要的时间... 15
8 专业化分工及组建公司公共库... 16
8.1 专业化分工... 16
8.2 组建公司公共库... 16
8.3 关于技术攻关... 16
1 总括
公司成立以来,一直处于高速发展状态,未来几年也将高速发展。高速发展意味着:容易摔倒。摔倒了,运气好,继续跑,抢点残羹冷汁;运气不好,直接出局。又不能不跑,等修整好了,发现无路可跑:增量市场已被抢光。
1.1 引子
电脑游戏《双点医院》的经典情节:“赚钱的医院突然巨额亏损,症状是:各科室人满为患” 。新人的解决方法是:建立更多的科室,招更多的医生、护士。新招的医生和护士是新手,效率低,于是堵塞更严重。根本原因是:那些难治的病占用工作人员太多的时间,将那些难治疗的病人(不到总病人的10%)请回去,很快就扭亏为盈。对应到软件开发中,就是不到10%的需求,让整个团队疲于奔命,还亏钱。
放到现实中,这个问题各科室主任和各工种主任都无法解决。如果医院有技术总监的话,归技术总监解决。绝大部分医院没技术总监,所以只能正副院长解决,如果院长们是技术性、管理型、市场型,没有财务型,那就无解。
1.2 技术经理(总监)的任务
核心任务:产品研发全过程进度与质量把控,包括:
l 根据不同产品、不同阶段的核心诉求,调整部门结构。
l 在各部门、产品、工种之间调配资源(主要是人力),从上级申请资源。
l 协调各产品定位,以服务不同层次的用户,分析是否存在断层。
l 针对高发的问题,建立够用的制度和规范。
l 处理部门间矛盾,协调部门间合作。
日常任务
l 对上沟通,了解公司的业务、战略方向、制定相应的计划。熟悉管理知识,以方便与上级沟通。
l 和友方部门沟通,以相互配合。了解市场知识,以提高沟通效率。
l 查看代码、需求文档、测试结果,以保持对相关员工的了解。继续补充需求知识,熟悉主要产品业务知识,了解次要产品业务知识。
l 检查各部门的成果(部门自查往往是不彻底的),发现瓶颈。和需求分析人员、售前、售后(甚至客户、用户)沟通,以估算需求的效果。根据缺陷产生原因分类统计或汇总缺陷,以发现开发团队甚至个人瓶颈。比对代码走查发现的缺陷和测试员发现的缺陷,以估算两者的瓶颈。
l 处理下级部门的申请。
1.3 此职位和我高度匹配
“产品研发全过程进度与质量把控”的关键是:看文档、写文档。会看文档,才能正确决策;会写文档,才能方便上级和其它利益相关人决策。这刚好是我的特长,一般架构师都有这个特长。
一 我是理论与实践的完美结合
大二是就考过了软考的高级程序员(今软件设计师),2014年过了软件架构师,理论联系实际至今。创业的那段经历,让我体会到渠道的重要;广州顶丰让我体会到沟通的重要;上一份工作让我体会到“少即是多”:鸡肋需求(作用很小的需求)砍掉,后期需求(前期没有,后期有用的功能)暂缓。
二 全局观和技术积累
全局观和技术积累的完美结合,将风险消灭于萌芽状态。同一行业、同一公司待的久,容易积累技术;不同行业、不同大小的公司容易形成大局观。先积累技术,再培养大局观,显然比先大局观后技术合适。大型公司(武汉开目、南方数码)、中型公司(中山极点3维)、小型公司(广州顶丰)都待过,创业4年。大中公司方便学技术,小公司(往往无规章或规章不健全)容易发现引起项目失败的非技术问题。创业暴露自己几乎所有的缺陷(尤其是技术缺陷),后面的几年成功补充了相关知识。
三 公共库
直接使用我积累的组件,以降低成本、缩短工期、提高质量。在创业和业余时间封装了多个库(dll),主要3个:SN.dll通用功能,不依赖任何库(包括STL、MFC)和操作系统。SNMFC.dll,对mfc和Windows api进一步封装。SNStl.dll,对stl进一步封装。目前已经经过两个商业软件和若干小软件的验证。源代码可以我和公司共有。典型类:几行代码建立服务端、客户端通讯,如果不用类库,要几十行,几十行足以搞死新手了。而且自动处理拆包、粘包。
CAD二次开发库。2017到2018,广东XX开发CAD图纸大师时,封装一个CAD库,此库归广东XX。我现在一边找工作,一边重新封装库,相对于广东XX的库,应用范围广,但性能稍差。典型类:某个适配器类屏蔽CAD2010之后和CAD2010之前版本的细微区别。
四 开发高质量的软件
开发高质量的软件,以提高用户体验。比如:软件几乎没有崩溃,可维护性(新增功能或大改功能的难度,架构师与软件工程师的最大区别)高。
五 强大的学习能力
强大的学习能力,以解决新问题。这是适应工作环境的结果,以前的工作职位是:公共组软件工程师,架构师。出于工作需要:经常完成各类预研工作。曾于2003年3月出任CSDN专题开发大版主、2003年7月出任CSDN VC/MFC版的大版主多年。
六 培训能力
较强的培训能力,方便团队建设。网上培训6人,4人上班(至少2人拿高的工资),2人(初中学历)创业接活。
如果可行的话,培养一到多个公共程序员、代码走查员,一次只培养一个。熟练的公共程序员、代码走查员可以大幅提高开发效率:新手公共程序员、代码走查员会严重降低开发效率:公共模块有缺陷,意味这所有模块有缺陷。新手代码走查员,会发现大量次要缺陷,被走查左右为难:改,影响工期;不改,违反制度。
七 我的品德
敢于直言、不拉帮结派
重技术轻业务使得我在哪个公司工作的效率相差不大,所以敢于直言。
实践是检验理论的唯一标准
在方案选择上无偏好,根据实践情况调整。如果别人有更好的方案,则采纳别人的方案。
适可而止,方能全身而退
这和我最近工作经历有关。我的工资比中小公司的平均工资高很多,中小公司没有容错实力,如果搞砸了(或6个月无进展),就出局了。如果搞成(或基本完成)了,公司没有能赚回我工资的工作,也得离去。
一般而言,公司前期技术重要,后期技术相对次要,这是就形成后期技术部产出低于收益。这时,我愿意离去。其实许多技术人员,也是适合前期,他们在后期也愿意离去,很憋屈。
善于总结
重要内容书面总结,方便后面来的人查阅。
八 此职位不适合科班出身的技术经理
科班出身的人理论强,但很可能脱离实际(执着质量,忽视工时和成本)。就算按最低标准CMM3搞,理想状态也要3个月,这个3个月许多工作都要暂停。快速奔跑的团队,停3个月,不知道能否继续跑。就算搞成了,跑速大幅降低,不利于抢占市场。
九 此任务不适合自学成才的技术经理
自学成才的人实践能力强,勇于尝试。但高速发展时,尝试失败的代价太大。
全文下载: