(1)产品定位
移动互联网时代,我专门建立了移动创新研发中心专门组织。
我和他们说:不要把大象放在冰箱里。不能利用上移动硬件特性的(如传感器、摄像头麦克风、GPS等),不要做。
到了云时代,我也专门说:做到处在线连接、持续运营、社会数据融合、AI算法驱动。不是这些特征,不要做。
(2)组织
我分了:
-
架构团队:应用架构、技术架构
-
平台研发团队
-
创新研发中心
-
新产品研发中心
-
成熟产品研发中心
-
大客户定制中心、特大客户一对一专门定制团队
-
普通定制中心
-
技术支持中心、主动运维中心
创新研发中心不做产品,只快而脏地验证客户普遍需求。一旦完成验证,做好代码和文档归档,供新产品研发中心做参考资料,新产品研发中心按照正规软件研发过程重新来过。
(3)岗位
架构团队的工作要嵌入到主干研发流程中。
应用架构团队,负责:系统和系统之间的接口分析、接口定义和设计、接口实现代码复审、接口变更、接口向下兼容。为了解决应用软件的连带异常问题、集成开发问题、升级问题。
技术架构团队,负责:
-
层与层之间的解耦-集成。为了解决系统性能扩展、高可用保证、高安全保障。
-
难题技术特种部队快速诊断、攻关打点。
-
技术标准规范、编程语言和技术框架统一。
(4)产品
1、客户需求详细调研-系统应对研究
2、产品战略(策略)/产品行销:产品定位、市场定位、竞争定位。
3、产品规划-产品详细设计
很多企业没有前两个,或者这三个没有连贯整合。
(5)技术
1、如果做成公有云,我就可以很方便地随时埋点,进行用户行为跟踪,持续知道用户的真正使用,为产品持续改进提供数据说话。很多时候的研发效能低下,是产品一开始就想错了。
2、如果做成API网关/服务网关、微服务、消息队列的技术,那样就可以达到两个目的:
-
2.1、客户定制开发难题解决:A-B客户之间的共同需求功能低成本移植、版本和版本之间的功能在客户项目上低成本移植
-
2.2、异常隔离:A模块出了问题不影响其他模块,而且查找问题也好查找、追究责任也好追究。
-
2.3、系统持续集成也好做了:不用像过去很多团队的进度必须同步那么复杂那么难了。各开发各的模块,各上线各的模块。当然,这必须建立在应用架构和技术架构基础之上。
(6)能力
1、能力培训:我过去写过《
工作中怎么学习?
》。
2、产品设计-架构设计-代码实现-测试协同:交底:我说你听-你说我听。
3、岗位:Leader专门做常用代码模板、做模块之间的接口设计与保证、做代码复审
4、岗位:高级程序员,做核心功能(复杂/要求高精确/要求高性能/要求高稳定/要求高并发锁/要求高事务保证/要求高安全)、做大家共用的功能(牵扯多)
5、岗位:新实施人员先去客服中心实习。实施人员转岗做测试,以便解决测试人员不熟悉客户/瞎测瞎找BUG这种常见问题。
(7)项目管理
我特别注重研发项目管理,反复确认项目目标、项目范围、任务分解、时间表、任务分配、项目风险识别。
所以我专门设立了研发项目经理序列,不让产品部门经理/研发部门经理来兼任产品研发项目的项目经理。
每个研发项目经理必须过PMP认证。如果你拿到PMP证书后,公司来报销你的费用。
(8)工具
常用的项目管理-计划管理-任务管理不能少。我一般用Project、Excel。
常用的CF、JIRA不能少。
常用的版本管理、代码规范自动检查工具、持续集成、自动化测试、持续发布、持续部署、DevOps、用户体验管理工具不能少。
这是基础。