分类:
2011-01-21 13:33:42
从业经历中,经常遇到一些重复出现的问题,在这里总结一下.
一.技术架构问题
1.控制流程代码与业务逻辑代码混杂
导致开发成本,维护成本以及错误率增加
2.系统分层不明确
导致开发成本,学习成本 极高
要求:接口清晰,统一,文档
3.多语言问题
开发成本,调试成本增加
可 建立 中文与日文对应库,通过配置选用
4.框架过度设计,超出当前及可预期的未来过多
导致系统复杂,学习成本,开发成本增加
设想解决方案:
由 技术主力 修正架构,制定规范,开发团队讨论后,在新的代码中执行,原有代码酌情修改
二.技术管理问题
1.命名无规范
导致维护成本增加,代码可读性不佳
2.过期代码未去除
导致维护成本增加,需要阅读的代码量增加,并且容易被过期代码误导
3.注释不完善
代码可读性极差,维护成本增加
4.数据逻辑无文档
代码可读性极差,维护成本增加,尤其随着人员流动,导致后来者无法理解原数据逻辑
设想解决方案
1.由技术主力制定规范,开发团队讨论后,定稿. 在新开发的代码中执行. 原有代码可酌情修改
2.管理者要强调,技术主力要示范,复审人员要指出
3.定期安排时间,原开发者自审,交叉审核
三.团队管理问题
1.功能分配不合理,导致部分功能重复开发
导致开发效率降低,提高开发成本
2.缺乏代码复审
导致代码BUG增多,可读性差
设想解决方案
1.团队分工要明确清晰, 所有人要清楚知道每个人负责的范畴,
2.每个开发人员都有自己负责的部分, 同时要兼顾 另外一部分 (以便处理人员流动问题)
3.开发管理问题,增强协作意识,管理者安排人员进行复审
四.项目管理问题
1.移植代码 有些是对当前项目无用的
分析:
原因:项目初期准备不足,之后过程又未能采取补救措施.
设想解决方案
1.吸取经验,新项目初期准备要充分,包括技术准备.
2.现状处理,持续重构
五.团队构成问题
1.模块接口不清晰
每个模块应该有一个接口列表,
每个接口要明确入口参数(复杂结构要标明内部结构)及出口参数
2.OOP不足,部分底层包为 函数库 而不是类库,封装性不好
3.产品策划能力不足
设想解决方案
1.开发成员素质问题,也有部分管理因素
管理者要强调,技术主力要示范,复审人员要指出
2.团队构成有缺陷. 有需求,有开发,无设计
专职技术管理人员,可兼职设计
3.此问题没有彻底的解决方法,好的产品策划人员严重缺乏.
只能从实战中培养, 加强策划,开发,运营 人员之间的交流,以便策划人员及时掌握 技术范畴以及用户反馈
六.深层技术架构问题
1.开发测试过程繁琐不便
导致开发,维护成本增加
设想解决方案
如果不能更换开发语言的话, 那么这仍是技术架构问题, 分清层次 ,部分核心不变功能布置到服务器上,接口清晰,本地代码使用接口进行服务调用.
务必要实现本机开发调试
配置过程要有教程,文档. 同时要对所有开发人员进行培训.
七.企业文化问题
1.项目中过时代码,低效代码
导致长期维护成本增加,学习成本增加
2.协作意识不强
3.指导意识不强
导致学习成本提高,开发成本提高,人员流失率高
4.效率浪费较严重
5.模板文件的格式问题
问题分析
根源在于企业文化
求稳心态过重,无人愿意承担风险, 对近期目标的重视程度大于对远期目标的重视
解决问题的方法要出自高层管理人员
构建小团队独立空间,以便无障碍交流,同时组织小团队活动,以增强私人感情
就近原则(技术,工位,团队),师徒结对,
扁平结构不适合脑力劳动者, 5-7出度的金字塔结构更合理一些, 公司管理人员严重不足,按我们公司规模,应有1/4的人员专职从事管理(沟通,协调,组织,指导...)工作
现状: 所有的模板文件 都无空行,无缩进,无注释
结果:根本不可读,维护及修改效率极低
浅层原因:技术架构原因,因部分手机会表现错误
深层原因:企业文化问题,简单修改底层方法即可解决,但无人愿意承担风险.