如果我当上技术经理如何展开工作(二)
1 术语、概念、假设
标准工时:假定有一个三年工作经验的人,1小时的能完成的工作量。主要用于衡量模块的粒度。
2 规划
2.1 不同阶段核心要素不同
一 项目管理核心三要素
项目管理核心三要素:时间、成本、质量三要素。三者是鱼和熊掌的关系,不可兼得。不同阶段,不同的侧重点不同。
二 竞争策略
基本竞争策略有三种:成本领先战略、差异化战略、集中化战略。要么把成本控制到比竞争对手更低的程度;要么在企业产品和服务中形成与众不同的特色,让顾客感觉到你提供了比其他竞争者更多的价值;要么企业致力于服务某一特定的市场细分、某一特定的产品种类或某一特定的地理范围。这三种战略架构上差异很大,成功实施需要不同资源和技能。以公司的实力,只会“涿鹿中原”,不会“偏安一隅”,所以集中化策略任何阶段不会选择。
三 增量市场阶段
此阶段核心因素:快(时间),早一天就可以多圈一批用户。质量是相对,要评价一个产品的质量,必须有一个参照物。而大部分潜在用户没接触过同类产品(如果有同类产品的话),所以无参照物参考。自然对质量没概念。这个阶段,有很多故事可讲,所以融资相对容易,公司确实也融到资了。由于目前处于存量市场阶段,所以本规划以增量市场阶段为主。
四 存量市场前期
此阶段的核心要素:好(质量)。竞争已经开始了,但软柿子多,提高质量可以更好地捏软柿子。已经没有多少故事可讲,融资变得困难,但此时用户较多,利润也高,所以还是钱还是好赚。在保证质量碾压软柿子的情况下,尽可能的快,这样能多捏几个软柿子。
“好”引申一下,变成差异化战略。差异化战略的五种基本途径:1,产品差异化。主要体现在:形式、特色、性能质量、一致性、耐用性、可靠性、可维护性、风格和设计。2,服务差异化。3,人员差异化。4,营销渠道的差异化,5,形象的差异化。
五 存量市场后期
此阶段的核心因素:省(成本)。软柿子被清光了,寡头垄断形成了。品牌已经建立,快会损害品牌,且没好处,所以放弃。在各自的优势领域,质量已经相对完美,通过质量很难有所突破。万一有个疯子打价格战,大家只能奉陪;寡头垄断下几乎必定出疯子。
成本领先战略是企业要在提供的产品的功能、质量差别不大的前提下,努力降低成本来取得竞争优势。如果上一阶段,质量不过关,则需要继续关注质量,直到质量令人满意。
六 成熟期
大势已定,什么都不重要。要么已经形成垄断,要么寡头已经达成默契。
2.2 研发部组织架构
一 工种
开发工程师职责:
l 详细设计。
l 编码。
高级开发工程师职责:
l 负责核心复杂功能的实现方案详细设计、编码实现。
l 负责疑难BUG分析诊断、攻关解决。
l 新人指导,帮新人详细设计。
开发组长:
l 团队任务管理:开发工作量评估、开发任务分配。
l 团队生产质量提升:代码审核、开发风险识别/报告/协调解决。
l 团队生产力提升:代码模板研发与推广、最佳实践规范总结与推广、自动化研发生产工具研发与推广。
l 团队专业力提升:招聘面试、领导复盘总结改进。
部门值日官:
l 行政管理:请假、报销、值日之类。
l 进度汇总给部门上级。
l 调解各组矛盾,如果不服调解,上报部门上级。
l 配合各组组长完成任务。
部门经理:
l 行政管理。
l 确保进度按时完成。如果不能完成,尽快上报给部门上级。
l 解决部门矛盾。如果不能解决,尽快上报给部门上级。
l 指导各组长完成任务。
l 原则上不再编码,但要会代码审查,防止员工欺骗。
l 如果没有公共组,则临时抽调人员完成公共内容。
二 关于招聘
开发组长考虑技术,部门经理考虑薪资,技术经理(总监)考虑已有人员技能分布,年龄分布等。开发组缺人,向部门经理申请。如果部门经费充足,则向技术经理(总监)申请招人,否则申请借人。
三 两级架构
研发部由若干部门组成,部门又由若干工作组组成。正式部门由经理负责,如果工作繁杂,可设值日官;部门太小,也设值日官,不设经理;临时部门设一名值日官。工作组人员不限,设组长一名,如果超过10人,设副组长一名;超过15人,设副组长两人,依次类推。如果组员3人(或更少)设置值日生,不设组长。值日官、值日生完全是临时的,副组长有部分临时性。
四 增量阶段架构
按产品线划分部分部门,此阶段的部门具有临时性,故主管是:值日官,如果产品经理,需求分析能力达到良好,业务能力及格,则由产品经理担任。否则:由愿意当值日官的组长轮流担任。这样架构的目的:快,所有任务(包括借过来的售前、售后)都可以在部门内解决。
五 存量前期架构
按开发语言划分部门,再按产品划分组。方便代码走查、培训、总结以提高产品质量。此阶段:归还售前、售后人员,稍稍减少产品经理,大幅增加测试员。
六 存量后期架构
提取各语言的公共开发组,建立培训机构组建研发中心部,以降低成本。研发中心增加架构师:评估所有任务所需的标注工时。
2.3 规范
每条规范都是一个从坑里爬起来的人总结的,遵守规范可以大幅降低掉坑的几率。遵守一条规范的成本可以忽略,遵守全部规范的成本是巨大的,以至必定亏损。较好的做法:统计掉各种坑的几率,然后针对性的建立规范。
一 规范建议
代码走查发现的问题,不影响软件工程师的考核。影响考核的因素:完成的任务量(标注工时),测试员或用户发现的缺陷数量。
二 规范
目前规范维持原状,如果没规范,就暂时没有规范。我收集用户和测试人员反馈的缺陷,对产生的根源进行分类,优先针对缺陷最多或影响最大的地方建立规范。
三 规范节选
|
增量阶段 |
存量前期 |
存量后期 |
性质 |
案例为主(类似英美法系) |
规则为主(类似大陆法系) |
规则为主,案例为辅 |
软件开发人员能否直接和客户沟通 |
可以 |
不可以 |
不可以 |
能否加班 |
可以 |
不可以 |
随便 |
用户、客户反映的问题 |
尽量修改 |
转给产品经理决定 |
请用户、客户提交给产品经理 |
文档 |
尽可能少 |
CMM3 本地化 |
CMM3简化版 |
坏代码(暂时没问题,但高几率引发问题) |
容许 |
不容许 |
容许出错率低的坏代码 |
对软件外包态度 |
提倡 |
尽量少,除非外包公司有我们正好需要的稀缺人才。这种几率太小。 |
质量过得去,便宜就行。 |
|
|
|
|
2.4 关注点
增量阶段:重点关注需求分析人员,砍掉鸡肋需求,暂缓次要需求、后期需求,工作量会减少一半到三分之二;要懂得克制,有所为有所不为,紧跟需求、找准题眼。存量前期,重点关注各组长,尤其是测试组长,他们是提高质量的关键,对降低成本也有好处。存量后期,重点关注各部门经理,尤其是研发中心部经理,分析、设计、公共库、培训是可以跨语言的。
一 增量阶段
l 深入了解顾客需求,减少开发过程中的需求变更与返工。根据国际最佳实践,改进型的项目在正式开发前应该有80%的需求确定性,突破性的新产品在开发前也至少应有50%的需求确定性。
l 市场与技术人员一起进行产品定义,减少信息传递过程中的失真,减少开发过程中的返工。
l 采用跨职能团队进行工作,以节省开发、测试、制造和上市等的周期时间。
l 对新产品项目进行开发优先顺序排列和资源分配,确保重要的项目得到优先开发。大需求的子需求如果优先级不同,则分开。
l 采用适当的IT工具提升开发效率。比如:基与AutoCAD(或中望CAD)比直接开发好;基于引擎比从头开发好。
l 代码走查。
l 采用有效的项目管理进行开发项目管理。
l 外包。
二 存量前期
l 代码走查,以提前发现问题。
l 增加评审力度,以提前发现问题。
l 培训。
l 采用适当的IT工具提升开发效率。
l 采用有效的项目管理进行开发项目管理。
l 建立技术平台和共用模块。有研究发现,一个新产品开发项目中平均有40%以上的重复劳动。由于是通过以前产品测试的,所以质量高的多。
l 专业性极强的工作,外包出去。
三 存量后期
l 软件开发人力成本是大头。培训,使得员工的技能匹配度高,这可降低平均工资。
l 建立技术平台和共用模块,缩短开发周期。缩短的不仅仅是开发,还是测试、售后。
l 代码走查。
l 采用适当的IT工具提升开发效率。
l 采用有效的项目管理进行开发项目管理。
l 多使用质量过得去,便宜的外包。