概述
富有责任心,对结果负责。
1、项目生命周期
以下主要针对敏捷开发
1、迭代前的准备阶段
需求列表收集
确定迭代需求
原型设计
需求规格说明书
2、概念与迭代计划
工时评估
熟悉业务和技术,初步评估。
制定开发计划
计划要和成员进行仔细沟通,确保大家认同
使用禅道进行跟踪,每个任务项在禅道上进行录入,每天研发人员填写当天的任务完成情况,多天的任务需要填写任务百分比。
http://demo.zentao.net/my/
3、开发阶段
开发设计文档
编码与代码review
风险管理
质量原理
4、测试阶段
单元测试,自测试
报告提测
5、发布阶段
2、团队建设
1、团队文化
团队文化建设关乎成员工作的状态,积极性,稳定性。团队活动,茶话会,关心成员生活状态。
2、梯形团队
1个高级研发带领2个初级研发。
3、工作替补
各个模块要有主责任人,主责任人对自己的模块负责。同时也要下意识培养副负责人。避免因人员请假、离职对项目带来冲击。
推荐:培养初级研发作为次负责人。
责任人轮换:模块负责人跨模块熟悉模块内容。
4、人员储备
学习、预研新的技术,业务。为新业务的开展储备人才。
3、关于提升开发效率、保障项目交付进度的实践
1、层次划分,模块划分要清晰——架构设计
前后端没有分离,无法专注于前端展示和后端逻辑的开发。同时前后端存在耦合,也不利于前端静态资源的部署。软件开发发展到今天,应该不存在这种情况。
模块的划分不清晰,各模块间耦合度高。对一个模块的修改,可能影响其他模块,对研发人员你的要求高,需要对整个系统熟悉后,才能需改代码,稍不注意就会引出新的问题。
逻辑层次的划分:controller、service、dao、bean的定义、对内的接口、对外的接口
同一模块的开发也要清晰的划分层次结构,逐层调用,不跨级调用。各层要有清晰的交互对象。比如cotroller只能通过调用service层的接口,而不能直接调用dao层接口对数据进行处理。
2、历史系统
若历史系统本身存在不规范,逻辑混乱的问题。基于此系统进行扩展开发,因为必须保证对原系统的兼容,效率的提升是较为困难的。在一定程度的衡量后,可考虑全量重构。
3、遵循编码规范
编码规范参考阿里的java开发规范。
代码格式规范可使用idea默认的样式,提交前要确保格式化,保持团队所有人代码格式统一。
重点强调:面向对象编程的一个核心思想是封装,组件化。方法要保持单一职责,最直观的体现在方法的精简,建议一个方法的代码行数在15行左右。
4、任务分解(WBS)、统筹方法、团队协作
找到存在前后关联,必须串行执行的事情,其他做尽最大化的并行执行。涉及到迭代的交叉,团队的协作和资源的协调。
需求规划,需求分析等可在迭代开始前完成。正式进入迭代后,团队其他成员即可一起进入开发状态。要不然所有人都等一两个人,那真是大大的浪费。
迭代的交叉:在保证研发质量的前提下,上一迭代的研发任务完成后,在测试阶段,研发人员即可进入下一阶段迭代的需求分析,设计阶段。
团队协作:合理规划产品、UI设计、前端、后端的工作任务协调。后端在编码前,先确定接口定义,并出具mooc接口,前后同时开发,同时降低联调的时间。后端在交付接口时,要对接口进行自测试以及测试环境测试,避免接口联调时的出现各种问题。同时后端需要先出接口文档,建议使用showdocc.com。
5、沟通与反馈
沟通分为多种形式的沟通,包括与上级领导,同级组织间,与下级成员的沟通。项目经理要促成这种沟通,及时了解项目的动态。
在招聘中体现为不光重视技术能力,沟通,性格也需要重点考察。
其形式包括
会议:高效会议,拒绝形式化,会议记录,形成决议,问题闭环。
各项目阶段的特定会议,比如需求宣讲、需求规格(原型)评审会议;计划制定与目标对齐;设计评审会议;show case演示;测试报告总结;项目复盘经验总结等。
迭代开发的晨会(10分钟左右),掌握项目实际进展情况。周例会等。
报告:以邮件、周报等形式,发送每日工作阶段进展;每周进度情况,总结,问题与求助,下周计划等。
及时反馈:主要针对项目成员,遇到困难或不确定因素要及时反馈,寻求帮助或者计划调整。杜绝将问题留到最后一刻再反馈,因为这是影响整个团队计划安排的。
6、使用工具软件提高生产效率
idea
最智能,最好用的ide,没有之一。同时还建议用默认的快捷键,1周左右即可熟悉过来。
禅道
一款非常好用的项目过程管理软件,可以完整的跟踪到项目需求、计划任务、缺陷管理等整个项目生命周期。同时具有强大的统计功能,实现项目可视化
git
版本管理工具,具有强大的分支管理能力,同时idea与其进行了完美的兼容。要用好也要遵循一些使用规范。
分支规范
gitlab、码云
远程仓库可视化git管理工具,相当于中央仓库,类似于github。测试,生成等线上环境的代码要通过它进行统一管理和构建。
gitlab可以自己在内网搭建。
若可以接受公网代码管理,也可使用码云。
genkis
支持构建、部署、自动化, 满足任何项目的需要,彻底解放双手。
比如我们代码编写完成后,可以通过它自动进行代码拉取,编译,构建,部署。让开发人员专注于业务开发。
7、使用成熟框架
Java开发发展到今天,在最近的10年里,发生了翻天覆地的变化。从最初的jsp+java,到MVC前后分离,struts,Struts2框架的出现,再到Spring,SpringMVC的出现,再到今天的SpringBoot,微服务解决方案的SpringCloud等框架的出现。每个框架的出现都是为了解决以前的一些痛点,提升研发的效率,让研发人员不再纠结一堆混乱的逻辑,繁杂的配置。从而解放出来关注自己的业务。
所以我们要用先进的框架,给自己省事,体验先进框架给我们带来的丝滑的感觉。
网友评论