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