如何胜任一个小型公司的技术总监?
技术总监应该做哪些事情?一个人精力有限,开发、带人、培训、管理如何权衡?怎么才能做到最好?本文作者韩伟,他将会和我们分享他的个人经验,韩伟就职于腾讯互动娱乐研发部。
开发
从来没有一个资深的外科医生会放下手术刀,而转到手术室外面指手画脚。一个资深的程序员也不应该离开代码和文档的编写,而只是做做架构图。作为对一个复杂系统的负责人,必须亲手领导和参与建造,才能有足够的能力去负担起这个责任。因此需要至少使用60%的时间来参与开发的工作,并且建议从一上班就开始,虽然早上的效率很低,但是跟任何艰巨工作都一样:万事开头难。在你好不容易等待电脑慢吞吞的打开了所有的IDE、需求文档、参考资料、工作计划这堆要命的东西之后,你就迈出了最重要的一步,你会发现你不在需要在网上看微博和聊QQ来提振开始工作的激情,而会被某一个优化代码的灵感而激励,或者被一个复杂而有趣的问题所吸引,从而更快的能投入到开发中。坚持打开电脑做的第一件事是打开IDE软件,是这一切最重要的一步。
下面我来谈谈开发的主要工作内容。
1. 提出非功能性需求
一般来说功能需求总是让开发人员焦头烂额的主要原因。但是实际上很多项目死在发布之后,却是因为性能、产品质量、扩展性、二次开发效率等非功能性需求没认真去解决而导致的。主程作为经验最丰富的成员,必须要利用自己曾经的经验和教训(在这里教训往往比经验重要),提出那些自己折腾自己的“非功能性需求”,来保障整个项目在发布后不会轰然倒塌。这是个吃力不讨好的工作,因为老板和客户往往只会抱怨技术人员在玩弄把戏,骗取更多的资源或者杞人忧天。如何说服这些家伙也许不是主程的工作,但是主程必须要以高度的责任心把问题放到台面上来。沟通的工作也许让项目经理去做会更好,他们有一整套如何威逼利诱老板和客户的戏法。
2. 设计和修正软件架构
软件架构设计至关重要,而且工作繁重。不画图纸就敢开工的技术人员要么是天才要么是笨蛋。对于团队来说,架构在分工合作、避免风险、提高质量等多个方面有无可替代的作用。架构要避免成为空洞的文档,最重要的一步是有人来掌控和实施。而主程主持设计和修正的架构,并且亲手实施,让团队中的腹诽之徒完全无法避开,否则代码将无法运行!所谓设计和修正架构,并不意味所有的文档应该一个人写,而是指这个架构的每个环节,都是经过主程决策同意的。当然最好这些文档能尽量由他撰写,对于“菜鸟”团队来说,输出这种文档本身就意味着“权势”,有助于主程建立个人威信——这种看起来有点肮脏的“政治”东西,在避免团队内无止境的扯皮,以及稳定那些随时准备跳槽的成员来说,都是相当实用的。
3. 难点代码(关键需求)的开发
主程必须写代码,写那些大家都认为风险大的代码。有的系统对于性能要求很高,他就必须去完成容易出性能问题的部分,比如IO操作或者设计数据库索引。有些系统的需求非常飘忽,他就要去想办法完成框架代码或者脚本引擎,以便众多小弟可以跟着产品人员疲于奔命。这种工作内容会让主程不必完全的读过所有代码,而能牢牢的“掌握”代码,以免团队成员甩耙子的时候能充当备胎。因为融入团队的代码开发,也是一个让架构设计从日常工作中真正控制系统的工作。而且主程代码通常会被别人接触,能直接教育其他团队成员,同时也能建立——威信。
4. 救火和杀虫
这个工作其实和代码开发是一致的,如果没有平日的开发,通常紧急问题的解决也是比较难处理的。但是这个也有一个调试技巧的要求,比如要求会使用各种诊断工具。这些工具一般的开发人员可能会比较少使用。找问题的过程本身也可以提高团队其他人的技术水平。
培训
培训的工作应该占用30%左右的工作时间。培训是稳定团队人员最重要的手段,也是提高团队开发效率最有效的手段。工具、过程、制度、奖惩,这些都代替不了程序员一行行的去写代码,最直接的方法是让他们做的更快更好,这些需要经验和知识的积累。
1. 代码审查
关于代码审查,有太多的论述。但是代码审查还是一种“强迫”推行某种风格或者技巧的手段,这是最真实的“控制”系统的手段。也是推广知识和经验最直接的手段。一个人写的代码通常应对的问题不会特别“广泛”,因此只要审查其中一部分代码,就能给大部分别的代码带来好处。
2. 技术方案评审
什么事情应该写一个技术方案,然后进行评审,这是一个关键的问题。一般认为开发时间在2周以上的单项工作应该先做个方案。往往技术方案是系统架构的完善和补充,或者是挑战。所以主程的参与是非常必要的。但是要注意不需要去做的太琐碎,而是要提炼出“关键”的需求和“关键”的解决方案进行评审,而这些“关键”往往不是功能,而是质量上的需求,如这个系统的扩展性,是否能方便后续开发等等。也有可能在这些会议上会发生争吵,但是决策人是主程的地位是不容动摇的。君子和而不同,每个程序员都可以拥有自己的看法,但是代码必须能按方案运行起来,主程必须经常申明这点。
3. 学习与讲座
如果团队碰到问题,没有新的方法和技术去解决,是不会提高开发效率的。就好像你用牛来耕地,不管用什么管理方法,都不会赶上机械化的速度。而主程承担着不断突破自己的技术上限,介绍和推动团队使用更新的技术来解决问题的责任。抱残守缺,思想僵化,最后会被团队成员所抛弃,而且也会让团队的效能落后于业界,最后直接影响产品的生死。每年学一门新语言,这个说法可能有点激进,但是这也是作为程序员应该有的激情。
管理
管理等于权势?管理等于沟通?管理等于文山会海?多年专业训练出来的技术人员如何去做管理?
管理的目标是提高绩效,如果和这个目标无关,而只是和“管理者”这个头衔有关的事情,最好丢给别人去做,包括那个头衔。管理主要手段是创新:想出新的方法去解决问题,而不是繁杂的事务性工作!——一个专业秘书能比主程做的好一百倍。技术工作的创新,最主要还是在技术工作里面,而不是跳出来说:做这个,做那个。
管理的事情如果超过10%的工作时间,等于说你更像一个项目经理而非主程。
1. 绩效评定
以专业的意见来衡量别人的工作,这个负担是无人能够承担的。这个工作往往是利益分配的一种手段。类似奖惩手段。这种管理方法已经不是新事物了。但是实际上技术人员对于绩效往往持一定保留和暧昧的态度,因为这种事情难以很清晰的界定出来。需要判断而非量度,才是绩效的真正手段。如果一定要打分,一共两项足够了:进度、质量,5分制即可。更重要的事情是,告诉每个人主程的看法,告诉别人,怎样做才是更好。或者告诉团队,怎样做才更有利于我们成功(发财、上市、赢得老板和客户……)——把目标清晰告诉团队,发挥他们的主动性,是绩效评定最重要的目标。
4. 进度审核和任务分派
又是一个很有“权势”的工作,实际上团队成员的情况大家都知道,决定谁应该做什么事情并非需要很多时间去想的事情。所以大可以把方向性的意见告诉项目经理,让他去做。很多优秀的开发者玩EXCELPROJECT之类的水平还不如只有一年工作经验的秘书,别折腾自己了。
5. 面试
如果真想帮忙,准备一份有区分度的笔试题目吧。不靠谱的人太多,老板可不是花钱请你和他们聊天的。让项目经理去聊,不用担心他们技术不强,再不够,也会比大多数面试者要牛X。他们搞不定的人,就是应该雇佣的家伙。毕业生招聘怎么办?只要看看他们课外活动是不是有搞些专业的事情就可以了,上进心比别的东西都重要,HR会比主程看的更准,相信我。
1. 进度
指定工作计划
进度检查和告警
工作总结和统计
2. 资源
整合提供各种资源,如找DBA,IT,运维人员,硬件,SVN权限,测试环境,福利,周末的活动……
面试:人员是最重要的资源,不是吗?
资源谈判:往往是和老板谈判,让别人明白现在的真实情况。又一个吃力不讨好的差事,但是总需要人做。
-END-
欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。
本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。
长按下方的二维码可以快速关注我们
如想加群讨论学习,请点击右下角的“加群学习”菜单入群。
如何胜任一个小型公司的技术总监?相关推荐
- 如何胜任一个小型公司的技术总监?我的感想
最近读了一篇 <如何胜任一个小型公司的技术总监?> 的文章,深有感触.对照自身在公司中遇到的情况,我给自己做了个现状分析.作为程序员,长久的职业价值是什么?如何让自己多年的经验不白费?如何 ...
- 如何做一个小型公司的技术总监
本文在腾讯内部论坛被浏览达7347次,收藏615次,评论几百条,曾经是讨论最热烈的项目管理文章之一.作为作者本身,感觉这个话题可以讨论的范围非常大,希望能有更多朋友一起切磋探索技术团队的管理之道. 资 ...
- 如何做一个小型IT公司的技术总监
本文在腾讯内部论坛被浏览达7347次,收藏615次,评论几百条,曾经是讨论最热烈的项目管理文章之一.作为作者本身,感觉这个话题可以讨论的范围非常大,希望能有更多朋友一起切磋探索技术团队的管理之道. 资 ...
- 公司起诉技术总监索赔 90 万元,称其拖延研发进度
综合整理:程序员的那些事(id: iProgrammer) 诉讼世界,无奇不有. 各位没看错标题! 公司起诉技术总监索赔 90 万元,称其拖延研发进度 7 月 5 日,中国裁判文书网公开了一份出自北京 ...
- 去了家新公司,技术总监不让用 IntelliJ IDEA!!想离职了。。
最近有个小伙伴微信和我说,新去的一家公司,技术团队全部规定要用的 Eclipse 开发,技术总监不让用 IntelliJ IDEA,付费也不行,说想离职了,问我该怎么办. 首先听到这件事情的时候,我表 ...
- 就聊聊不少小IT公司的技术总监
本文想告诉大家如下两个观点. 1 很多IT小公司的技术总监,论能力其实也就是相当于大公司的高级程序员. 2 程序员在职业发展过程中,绝对应该优先考虑进大厂或好公司.如果仅仅停留在小公司,由于小公司可能 ...
- 去了家新公司,技术总监不让用 IntelliJ IDEA想离职了
最近有个小伙伴微信和我说,新去的一家公司,技术团队全部规定要用的 Eclipse 开发,技术总监不让用 IntelliJ IDEA,付费也不行,说想离职了,问我该怎么办. 首先听到这件事情的时候,我表 ...
- 去了家新公司,技术总监不让用 IntelliJ IDEA 想离职了
最近有个小伙伴微信和我说,新去的一家公司,技术团队全部规定要用的 Eclipse 开发,技术总监不让用 IntelliJ IDEA,付费也不行,说想离职了,问我该怎么办. 首先听到这件事情的时候,我表 ...
- 去了家新公司,技术总监不让用 IntelliJ IDEA,想离职了。。
最近有个小伙伴微信和我说,新去的一家公司,技术团队全部规定要用的 Eclipse 开发,技术总监不让用 IntelliJ IDEA,付费也不行,说想离职了,问我该怎么办. 首先听到这件事情的时候,我表 ...
- 如何搭建一个拖垮公司的技术架构?
作者| Mr.K ,来源| 技术领导力(ID:jishulingdaoli) 架构师不仅拿钱多,还受到程序员的崇拜.妹子的仰慕. 他们走路带风.出场自带BGM,吹啊吹,我的骄傲放纵.唯一的缺点,就是费 ...
最新文章
- python网络爬虫程序技术,Python网络爬虫程序技术
- ASP .NET Core Web MVC系列教程四:添加模型
- SAP Spartacus cost center创建按钮的路由配置
- Properties文件的XML格式
- 考研 | 研究生考试入门,送给刚刚进入寒假的大三的你
- 两个形状不同的长方形周长_人教版数学六年级上册 5.2:圆的周长 微课视频|知识点|课件解析|同步练习...
- PSIM 软件仿真三极管时报错及解决错误方法
- python编程100个小程序-【Python精华】100个Python练手小程序
- 进度管理工具 planner
- JDBC在Java Web中的应用——分页查询
- Jquery—Jquery中的(function($){...})(jQuery)
- 十大品牌去除甲醛净化器 哪个品牌好
- 云输入法linux版,ubuntu云输入法ibus cloud pinyin
- 解决:启动word等office相关软件时,比较慢,会卡在一步Foxit PDF Creator COM Add-in很久
- 谷歌官方Android镜像下载(中文站)
- 18.Consent 实现思路介绍
- NLP最简单中文分词介绍
- 鸿蒙系统 基于安卓,鸿蒙系统(鸿蒙OS),不同于安卓,是面向未来的更广泛的系统...
- linux flash插件安装方法,Linux系统下安装Flash浏览器插件的方法
- 第九周项目六--三色球问题
热门文章
- 作为一个技术人,我究竟要什么?
- android事件拦截处理机制详解
- Split Animation Clip From FBX and Multiply Mode Sprite
- C#正则表达式之字符替换!...
- Windows登录密码轻松破解
- poj 匈牙利二分匹配算法2239 Selecting Courses
- Lightroom Classic 教程,如何在 Lightroom 中增强照片的孤立区域?
- SmartGit for Mac(图形化Git客户端)
- 如何将 Mac Dock 恢复到原始设置?
- [JAVA]预面试笔记