logo资料库

如果我当上技术经理如何开展工作.doc

第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
资料共16页,剩余部分请下载后查看
如果我当上技术经理如何展开工作
1总括
1.1引子
1.2技术经理(总监)的任务
1.3此职位和我高度匹配
一我是理论与实践的完美结合
二全局观和技术积累
三公共库
四开发高质量的软件
五强大的学习能力
六培训能力
七我的品德
八此职位不适合科班出身的技术经理
九此任务不适合自学成才的技术经理
2术语、概念、假设
3规划
3.1不同阶段核心要素不同
一项目管理核心三要素
二竞争策略
三增量市场阶段
四存量市场前期
五存量市场后期
六成熟期
3.2研发部组织架构
一工种
二关于招聘
三两级架构
四增量阶段架构
五存量前期架构
六存量后期架构
3.3规范
一规范建议
二规范
三规范节选
3.4关注点
一增量阶段
二存量前期
三存量后期
4计划
一第一周:熟悉环境
二第二周:熟悉产品
三第三四周: 寻找瓶颈和可改进之处
四第二个月
五其它
六注意
5培训与考核
5.1培训
一增量阶段
二存量前期
三存量后期
5.2考核
一增量阶段
二存量前期
三存量后期
5.3对我的考核
5.4晋升
6需求与测试
6.1不同性格在不同阶段的优劣
6.2关于需求人员
音箱的选择
电梯拥挤
ofo退押金的规划
想法
6.3关于测试人员
6.4需求确认或整理
6.5需求分解、任务跟踪
7单人代码走查
7.1代码走查员发展阶段
7.2代码走查好处
7.3我代码走查需要的时间
8专业化分工及组建公司公共库
8.1专业化分工
8.2组建公司公共库
8.3关于技术攻关
软件架构师何志丹 http://hezhidan.shnxh.cn 如果我当上技术经理如何展开工作 何志丹 如果我当上技术经理如何展开工作................................................................................................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 总括 公司成立以来,一直处于高速发展状态,未来几年也将高速发展。高速发展意味着:容易摔
软件架构师何志丹 http://hezhidan.shnxh.cn 倒。摔倒了,运气好,继续跑,抢点残羹冷汁;运气不好,直接出局。又不能不跑,等修整 好了,发现无路可跑:增量市场已被抢光。 1.1引子 电脑游戏《双点医院》的经典情节:“赚钱的医院突然巨额亏损,症状是:各科室人满为患”。 新人的解决方法是:建立更多的科室,招更多的医生、护士。新招的医生和护士是新手,效 率低,于是堵塞更严重。根本原因是:那些难治的病占用工作人员太多的时间,将那些难治 疗的病人(不到总病人的 10%)请回去,很快就扭亏为盈。对应到软件开发中,就是不到 10% 的需求,让整个团队疲于奔命,还亏钱。 放到现实中,这个问题各科室主任和各工种主任都无法解决。如果医院有技术总监的 话,归技术总监解决。绝大部分医院没技术总监,所以只能正副院长解决,如果院长们是技 术性、管理型、市场型,没有财务型,那就无解。 1.2技术经理(总监)的任务 核心任务:产品研发全过程进度与质量把控,包括:  根据不同产品、不同阶段的核心诉求,调整部门结构。  在各部门、产品、工种之间调配资源(主要是人力),从上级申请资源。  协调各产品定位,以服务不同层次的用户,分析是否存在断层。  针对高发的问题,建立够用的制度和规范。  处理部门间矛盾,协调部门间合作。 日常任务  对上沟通,了解公司的业务、战略方向、制定相应的计划。熟悉管理知识,以方便与上 级沟通。  和友方部门沟通,以相互配合。了解市场知识,以提高沟通效率。  查看代码、需求文档、测试结果,以保持对相关员工的了解。继续补充需求知识,熟悉 主要产品业务知识,了解次要产品业务知识。  检查各部门的成果(部门自查往往是不彻底的),发现瓶颈。和需求分析人员、售前、 售后(甚至客户、用户)沟通,以估算需求的效果。根据缺陷产生原因分类统计或汇总 缺陷,以发现开发团队甚至个人瓶颈。比对代码走查发现的缺陷和测试员发现的缺陷, 以估算两者的瓶颈。  处理下级部门的申请。 1.3此职位和我高度匹配 “产品研发全过程进度与质量把控”的关键是:看文档、写文档。会看文档,才能正确决策; 会写文档,才能方便上级和其它利益相关人决策。这刚好是我的特长,一般架构师都有这个 特长。
软件架构师何志丹 http://hezhidan.shnxh.cn 一 我是理论与实践的完美结合 大二是就考过了软考的高级程序员(今软件设计师),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 版的大版主多年。
软件架构师何志丹 http://hezhidan.shnxh.cn 六 培训能力 较强的培训能力,方便团队建设。网上培训 6 人,4 人上班(至少 2 人拿高的工资),2 人(初 中学历)创业接活。 如果可行的话,培养一到多个公共程序员、代码走查员,一次只培养一个。熟练的公共程序 员、代码走查员可以大幅提高开发效率:新手公共程序员、代码走查员会严重降低开发效率: 公共模块有缺陷,意味这所有模块有缺陷。新手代码走查员,会发现大量次要缺陷,被走查 左右为难:改,影响工期;不改,违反制度。 七 我的品德 敢于直言、不拉帮结派 重技术轻业务使得我在哪个公司工作的效率相差不大,所以敢于直言。 实践是检验理论的唯一标准 在方案选择上无偏好,根据实践情况调整。如果别人有更好的方案,则采纳别人的方案。 适可而止,方能全身而退 这和我最近工作经历有关。我的工资比中小公司的平均工资高很多,中小公司没有容错实力, 如果搞砸了(或 6 个月无进展),就出局了。如果搞成(或基本完成)了,公司没有能赚回 我工资的工作,也得离去。 一般而言,公司前期技术重要,后期技术相对次要,这是就形成后期技术部产出低于收益。 这时,我愿意离去。其实许多技术人员,也是适合前期,他们在后期也愿意离去,很憋屈。 善于总结 重要内容书面总结,方便后面来的人查阅。 八 此职位不适合科班出身的技术经理 科班出身的人理论强,但很可能脱离实际(执着质量,忽视工时和成本)。就算按最低标准 CMM3 搞,理想状态也要 3 个月,这个 3 个月许多工作都要暂停。快速奔跑的团队,停 3 个月,不知道能否继续跑。就算搞成了,跑速大幅降低,不利于抢占市场。 九 此任务不适合自学成才的技术经理 自学成才的人实践能力强,勇于尝试。但高速发展时,尝试失败的代价太大。 2 术语、概念、假设 标准工时:假定有一个三年工作经验的人,1 小时的能完成的工作量。主要用于衡量模块的 粒度。
软件架构师何志丹 http://hezhidan.shnxh.cn 3 规划 3.1不同阶段核心要素不同 一 项目管理核心三要素 项目管理核心三要素:时间、成本、质量三要素。三者是鱼和熊掌的关系,不可兼得。不同 阶段,不同的侧重点不同。 二 竞争策略 基本竞争策略有三种:成本领先战略、差异化战略、集中化战略。要么把成本控制到比竞争 对手更低的程度;要么在企业产品和服务中形成与众不同的特色,让顾客感觉到你提供了比 其他竞争者更多的价值;要么企业致力于服务某一特定的市场细分、某一特定的产品种类或 某一特定的地理范围。这三种战略架构上差异很大,成功实施需要不同资源和技能。以公司 的实力,只会“涿鹿中原”,不会“偏安一隅”,所以集中化策略任何阶段不会选择。 三 增量市场阶段 此阶段核心因素:快(时间),早一天就可以多圈一批用户。质量是相对,要评价一个产品 的质量,必须有一个参照物。而大部分潜在用户没接触过同类产品(如果有同类产品的话), 所以无参照物参考。自然对质量没概念。这个阶段,有很多故事可讲,所以融资相对容易, 公司确实也融到资了。由于目前处于存量市场阶段,所以本规划以增量市场阶段为主。 四 存量市场前期 此阶段的核心要素:好(质量)。竞争已经开始了,但软柿子多,提高质量可以更好地捏软 柿子。已经没有多少故事可讲,融资变得困难,但此时用户较多,利润也高,所以还是钱还 是好赚。在保证质量碾压软柿子的情况下,尽可能的快,这样能多捏几个软柿子。 “好”引申一下,变成差异化战略。差异化战略的五种基本途径:1,产品差异化。主要体 现在:形式、特色、性能质量、一致性、耐用性、可靠性、可维护性、风格和设计。2,服 务差异化。3,人员差异化。4,营销渠道的差异化,5,形象的差异化。 五 存量市场后期 此阶段的核心因素:省(成本)。软柿子被清光了,寡头垄断形成了。品牌已经建立,快会 损害品牌,且没好处,所以放弃。在各自的优势领域,质量已经相对完美,通过质量很难有 所突破。万一有个疯子打价格战,大家只能奉陪;寡头垄断下几乎必定出疯子。
软件架构师何志丹 http://hezhidan.shnxh.cn 成本领先战略是企业要在提供的产品的功能、质量差别不大的前提下,努力降低成本来取得 竞争优势。如果上一阶段,质量不过关,则需要继续关注质量,直到质量令人满意。 六 成熟期 大势已定,什么都不重要。要么已经形成垄断,要么寡头已经达成默契。 3.2研发部组织架构 一 工种 开发工程师职责:  详细设计。  编码。 高级开发工程师职责:  负责核心复杂功能的实现方案详细设计、编码实现。  负责疑难 BUG 分析诊断、攻关解决。  新人指导,帮新人详细设计。 开发组长:  团队任务管理:开发工作量评估、开发任务分配。  团队生产质量提升:代码审核、开发风险识别/报告/协调解决。  团队生产力提升:代码模板研发与推广、最佳实践规范总结与推广、自动化研发生产工 具研发与推广。  团队专业力提升:招聘面试、领导复盘总结改进。 部门值日官:  行政管理:请假、报销、值日之类。  进度汇总给部门上级。  调解各组矛盾,如果不服调解,上报部门上级。  配合各组组长完成任务。 部门经理:  行政管理。  确保进度按时完成。如果不能完成,尽快上报给部门上级。  解决部门矛盾。如果不能解决,尽快上报给部门上级。  指导各组长完成任务。  原则上不再编码,但要会代码审查,防止员工欺骗。  如果没有公共组,则临时抽调人员完成公共内容。 二 关于招聘 开发组长考虑技术,部门经理考虑薪资,技术经理(总监)考虑已有人员技能分布,年龄分 布等。开发组缺人,向部门经理申请。如果部门经费充足,则向技术经理(总监)申请招人,
软件架构师何志丹 http://hezhidan.shnxh.cn 否则申请借人。 三 两级架构 研发部由若干部门组成,部门又由若干工作组组成。正式部门由经理负责,如果工作繁杂, 可设值日官;部门太小,也设值日官,不设经理;临时部门设一名值日官。工作组人员不限, 设组长一名,如果超过 10 人,设副组长一名;超过 15 人,设副组长两人,依次类推。如果 组员 3 人(或更少)设置值日生,不设组长。值日官、值日生完全是临时的,副组长有部分 临时性。 四 增量阶段架构 按产品线划分部分部门,此阶段的部门具有临时性,故主管是:值日官,如果产品经理,需 求分析能力达到良好,业务能力及格,则由产品经理担任。否则:由愿意当值日官的组长轮 流担任。这样架构的目的:快,所有任务(包括借过来的售前、售后)都可以在部门内解决。 五 存量前期架构 按开发语言划分部门,再按产品划分组。方便代码走查、培训、总结以提高产品质量。此阶 段:归还售前、售后人员,稍稍减少产品经理,大幅增加测试员。
软件架构师何志丹 http://hezhidan.shnxh.cn 六 存量后期架构 提取各语言的公共开发组,建立培训机构组建研发中心部,以降低成本。研发中心增加架构 师:评估所有任务所需的标注工时。 3.3规范 每条规范都是一个从坑里爬起来的人总结的,遵守规范可以大幅降低掉坑的几率。遵守一条 规范的成本可以忽略,遵守全部规范的成本是巨大的,以至必定亏损。较好的做法:统计掉 各种坑的几率,然后针对性的建立规范。 一 规范建议 代码走查发现的问题,不影响软件工程师的考核。影响考核的因素:完成的任务量(标注工 时),测试员或用户发现的缺陷数量。 二 规范 目前规范维持原状,如果没规范,就暂时没有规范。我收集用户和测试人员反馈的缺陷,对 产生的根源进行分类,优先针对缺陷最多或影响最大的地方建立规范。 三 规范节选 性质 增量阶段 存量前期 存量后期 案例为主(类 似英美法系) 规则为主(类 似大陆法系) 规则为主,案例为 辅 软件开发人员能否直接和客户沟通 可以 能否加班 用户、客户反映的问题 文档 坏代码(暂时没问题,但高几率引发 问题) 对软件外包态度 可以 尽量修改 尽可能少 容许 提倡 不可以 不可以 不可以 随便 请用户、客户提交 给产品经理 转给产品经理 决定 CMM3 本地化 CMM3 简化版 不容许 容 许 出 错 率 低 的 坏代码 质量过得去,便宜 就行。 尽量少,除非 外包公司有我 们正好需要的 稀缺人才。这 种几率太小。
分享到:
收藏