老生常谈一点企业软件研发的基本常识

这是友人昨天问我的一些问题,我随口解答的(没做梳理没做框架)。由于时间问题篇幅问题我就不能具体展开了,具体详细内容我曾经写过《走出软件作坊2》(我2013年就写好了)有专门章节介绍(没有发表过,出版社编辑说现在流行互联网研发模式,不流行传统研发模式了,所以就没出版。现在企业服务又兴起了,估计这个内容又有价值了)。


一、有关功能架构


我一般把功能点分为以下几类:计费收银、业务留痕追溯、共享录入查询、PDCA、综合统计、老板展示。


有的对性能要求高,有的对稳定性要求高,有的对代码业务逻辑复杂性要求高,有的对集成要求高,有的对安全要求高,有的对用户体验要求高。


而且这么划分后,对功能复杂度定级、功能任务按初中高级人员进行分配,也起到很好的参考作用。


二、有关产品系统权限控制体系


每个ERP系统都应该有套角色体系(有些国产ERP系统居然没有角色体系)。


系统实施人员角色,专门用于系统实施人员使用,登录上来能操作的功能主要是系统实施需要的工具。


系统运维人员角色、系统定制开发人员,亦同。


业务基础维护人员角色:这个角色尤其被人们忽视。这个角色日常主要操作如基础业务主数据维护、业务编码维护、业务开关参数维护、工作流流程维护。


管理人员角色:一般在审批时候需要


普通用户角色


三、有关快速新模块开发


大家都想提高研发效率,如果不细分场景,研发效率是提高不了的。我这里主要讲快速新功能开发。


至于对外集成(如财务软件和OA软件)、报表制作&数据导出、定制开发(和用户权限关联和工作流引擎关联)、性能诊断和性能优化、重大异常跟踪调试、紧急BUG升级、子系统模块拆分独立部署、系统迁移&数据迁移,这些细分场景如何保证大规模普通员工如何高效高质量进行工作,我另外讲。


快速新功能开发:我曾经总结过22个常见功能模板。这套模板,都是从需求分析、到详细设计、到测试方案全套的。当你要设计一个功能时,就用什么模板,怎么测试,都往里填肉就行。


这套模板的日常持续维护主要在于Leader(产品Leader、开发Leader、测试Leader)。


常见的情况是Leader干高级员工事,没有高级员工(企业软件在过去靠回款滚动所以工作低不容易招到足够数量的高级员工),中级员工干初级员工事,初级员工没事干(为了保证质量保证进度不敢让初级员工多下手)。


我明确规定了Leader的职责:

规范最佳工作实践提炼与分享推广、模板提炼与制作与应用落地

工作成果检查、组织团队集体Review学习交流理解提升

公共模块提炼识别、设计、框架编写


我还明确了Leader了KPI绩效考核方法。


我还开办了Leader班,专门落实Leader的职责、工作成果


而高级员工去对应做高级模块任务,如高性能、高安全、高稳定、高业务逻辑复杂度的模块任务。


四、有关团队建制


架构团队:前端架构、应用架构、数据架构。他们专门在业界各种主流技术中趟出路,找到兼容性方案和框架。他们都属于纯技术级的框架,这些框架都会成为应用开发平台的一部分。


平台团队:应用开发平台研发团队、实施平台研发团队、运维平台研发团队。很多企业软件在实施功能和运维功能薄弱,就是缺乏相应责任的研发团队来专门负责


产品团队:核心成熟产品研发团队、创新研发团队、新产品研发团队

四。创新研发团队可以小而脏工作,只需要验证某业务场景是适合用户落地应用的就OK。新产品研发团队要拿创新团队的成果做借鉴(千万不要直接COPY),重新按软件工程要求重新设计重新代码严格开发严格测试。核心成熟产品研发团队要保住公司最赚钱的几个核心产品的稳定和持续细腻改进,不能把金娃娃丢了。


定制开发团队:超大客户定制团队、大客户定制团队、中小客户定制团队。超大客户定制团队是为每个超大客户维护一个专门的团队,从开发到实施到支持运维一体的。大客户定制团队是做大客户的定制大项目的。一般一个大客户在进场后、上线前、撤场时是三大定制高峰。大客户定制团队一般按区域分割,每个团队都明确承包几个客户。中小客户定制团队最主要是维护中小客户平时零碎小需求


运维技术团队:分为主动运维团队、技术支持团队、呼叫中心团队。呼叫中心是接单和SLA管理推动团队,是产品的问题、是平台的问题、是定制开发的问题、是现场服务的问题,由呼叫中心人员来在内部协调推动。技术支持团队来跟踪调试并解决能在运维部门解决了的问题(不需要动代码),需要动代码的就转移给产品研发或平台研发或定制研发团队。主动运维团队是对每个大型客户每年2次主动体检、主动性能诊断性能优化、主动异常数据清洗修复。


五、有关团队间协作


研发团队内部常见协作问题:

运维技术团队和定制开发团队、产品开发团队、平台开发团队的矛盾:求你们太求爷爷告奶奶了,我们自己私自给客户改掉,我们绕过去在二进制代码级别进行改


架构团队和平台开发团队的矛盾:你们搞的新框架又不兼容过去产品接口了


平台开发团队和定制开发团队的矛盾:又升级,又不好用,又不稳定。我们想解决的问题你们不搞,还强逼我们给客户升级(其实我们一般不给客户统一升级,只是出现重大安全漏洞或逻辑漏洞才会统一紧急补丁包升级)


我定义了一些原则:

1、每个子系统一套代码库,从物理来分离。既提高性能,又好控制权限,又最大限度减少大家来回从各个系统COPY代码


2、全部代码对全部研发团队可见,但只能阅读,不能CheckOut也不能Checkin,按权限才能CheckOut和CheckIn。


3、统一代码库、统一代码自动检查工具、服务器自动构建工具、自动化测试环境、预发布环境、自动打包工具、统一实施平台、统一运维平台


4、统一的代码Review机制。初级程序员修订的代码只有被中级程序员Review代码后才能真正进入正式代码库


5、一个大客户一套定制代码库


6、公共组件或基础技术框架的接口,必须呈JSON数据组型,不能成为参数型。而且接口编写者要自觉在代码内部判断维护接口的向下兼容性,出了不兼容问题,责任归你。


我还定义了一些周期性行动:

1、团队任务看板。每日更新各自的任务情况。每天早上团队围在看板前开例会,15分钟,只说团队内部和外部协作出现异常的地方。复杂问题会后专门开会,不复杂问题,Leader当场拍板下决策或给出处理原则。团队每个人每天轮流主持。


2、我每个星期五上午专门过战略级项目情况、重大异常问题项目情况、跨多个体系项目情况


3、架构团队要每月进行一次Leader沟通会,把产品研发、定制研发、运维研发的Leader的需求接纳进来,联合攻关


4、平台研发团队每发布一版平台产品,就需要做一季大宣讲(研发团队有定期的研发大讲堂)、组织一次创新马拉松比赛(为了把平台新特性做出应用来树立标杆)


5、产品研发团队每发布一版产品,就需要在正式发布时,组织实施团队Leader、运维团队Leader进行UAT测试。并且发布后,对新版本的客户项目进行一轮扶持,我们叫扶上马送一程。第一个项目以产品研发团队为主(我们叫吃自己的狗食),第二个项目以定制研发团队为主,产品研发团队做工作成果评审,到第三个项目就只有询问支持的责任。


六、有关考核有关绩效


这是很多人问过我的问题。


对于运维技术团队,主要是效率、态度、质量。他们都是一个个Case。

对于定制研发团队,主要是成本、进度、质量。他们都是一个个项目。

对于产品研发团队、平台研发团队,主要是进度、质量。他们都是一个个产品。

对于架构研发团队,主要是接口解耦&接口稳定性、高性能、高安全、高集成、重大升级方便性、紧急BUG升级方便性、跟踪调试方便性。他们也是一个个攻关项目。


都是每季度一次考核。


管理者是年度绩效和年度薪资包(年底打分)、季度绩效和季度薪资包。越高级别的管理者,年度绩效占比越大。季度绩效偏重于重大项目进度质量成本成效,年度绩效偏重于团队建设知识建设成效。


专业者主要考核项目。


但大家的考核都分为三大部分:项目情况(进度/质量/成本)、团队上下游协同情况(效率/态度/质量)、团队学习情况(最佳实践规范模板总结分享/新人培训指导)。项目情况占比最大。


七、有关激励


研发团队预算是被倒逼固定死的。公司有每年的销售目标、毛利目标,也就倒逼出了研发团队预算上限。当然也会根据每年的重大研发项目、新产品新技术研发投入来进行上下微调。


就这么大个包,你是提高人质量提高人薪资,还是低薪人海战术,还是浮动薪资比例策略,还是重点骨干特别关怀策略,还是低薪高福利高办公环境策略,还是高自由高创新激励机制,还是高学习成长机制,都可以灵活制定。


不按项目比例提成奖金。不过有每个季度创新马拉松或编程比赛,有奖金。对于大讲堂分享,有福利卡。


不过除了下午茶,各个协会活动经费(篮球足球等等),固定的就是每个团队每个人都有固定的团队建设经费。团队建设非常重要,吃吃饭唱唱歌爬爬山消消气解解压,团队配合就融洽多了。


八、有关学习成长


有团队学习日,学最新平台和最新产品、最新规范/最佳实践/模板学习、近期重大项目回顾讨论总结、重大BUG集体分析总结


有大讲堂,各个团队都必须出人来排队演讲,演讲者有福利卡激励。管理者绩效中有团队总结分享的绩效考核KPI。


有新人训练营,新人师傅制连坐绩效(绩效中有新人指导任务和新人指导效果)


九、有关晋升


晋升虽然是管理岗和专业岗双通道,但仍然是个艰难的事,因为这和日常基本薪资相关。但一个团队成建制有比例,不能成为畸形人才结构。所以晋升也是按项目绩效、重大项目贡献、重大创新、重大团队学习分享指导。


我们还有岗位资格每年的培训和考试。有产品知识类、技术类、流程与规范类。由专业委员会制定考题和判卷。主要面向初级和中级人员。这个成绩也在晋升考核范围内。专业委员会主要由架构师、各专业Leader构成,平时在招聘宣讲与面试、专业标准规范与模板、分享与培训、岗位专业考试起主要作用。


当然,这里面:管理者意见、HR意见、专业委员会意见,都很重要。


十、有关管理组织


管理要PDCA,保证执行力;

管理要选用育留,对人才要形成梯队,对团队要形成分工配合,不能让团队缺胳膊少腿不成建制;

管理还要激励,要解压,要对核心骨干员工保持关注关怀。


管理者如何识别人、招聘人、考核人、激励人、打绩效、谈绩效、形成梯队、晋升提拔,都有一期期的训练营。如后备经理训练营、新晋经理训练营、老经理训练营(怕老经理跟不上新形势)


管理者要和骨干员工要开管理月度会议,对团队出现的问题进行发言和讨论,制定下步行动。

管理者要每个开团队会,让普通员工也放放气发发言。


管理者从Q4开始,进行部门级战略讨论(10月)、体系级战略讨论(11月)、公司级战略讨论(12月)。1月份就确定下来开始第二年的正式执行。

管理者要每个季度考核、面谈沟通,年度调薪和晋升。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值