写的比较详细的工作总结
在智慧农业项目中做了近6个月时间,在项目组的共同努力下,规划的一期圆满完成进入一期维护阶段。本人参与了完整的项目实施过程,从前期的需求调研与总体设计,到后期开发、测试、部署上线。整个过程感觉上是比较顺利,但在过程中遇到的问题还是很多,比如需求不明确、需求更变、框架问题导致的bug、开发人员粗心导致的bug这些问题给测试人员带来更多的工作量。在测试方面,未能引进单元测试、集成测试、自动化测试,这是一个小中型项目的通病,项目周期与工作量需要权衡利弊,取舍对项目周期影响较大的因素。项目管理方面,采用敏捷项目管理方式,做了 需求任务拆解、开发时间评估、10分钟晨会等,在项目前期做的很到位,在后期相对任务散乱不便于采用这种管理方式,并没有强制进行晨会,导致管理人员不清楚开发究竟在做什么,希望后续项目晨会该进行还是遵守敏捷项目管理流程,就算今天没事儿,自己学习个其他技术也算一个任务啊。通过ICafe管理Task、Bug、Story很实用可实时监控项目进度非常好使。但偶尔忘记更变任务状态也是常有的事情。
以上暴露的是项目实施中的问题,下边通过各维度做一些总结:
团队协作
团队协作这个是非常重要的课题,因为团队的思想不一致会导致整合团队工作效率低下。公司层面没有重视团队建设,没有设立团建,导致同事之间关系疏远,仅仅是同一个办公室做事而不是共同创造大家的事业。但智慧农业项目组的成员非常齐心,协作效率高,开发人员代码能力强,开放式管理方式还是比较适合5人左右的项目组。管理过于严格还是会影响内部的情绪,导致工作效率低下。适当的会议可以提高团队的凝聚力,大家一起思考一起解决问题,感受整合过程的喜怒哀乐。在晨会中有团队成员迟到,导致了晨会延迟进行。后面项目最好将时间定在10点,保证晨会质量。
团队的技术能力也是需要相互学习共同进步的,应该定期举办培训会。让大家相互了解更多的技术,实现自我价值与团队综合能力提升。
组织与管理能力
在这个项目过程中本人的管理能力有所提升,能管理4个人的技术团队。以前技术带过1-2个工作1年左右开发,现在给我5个以上4-5年了开发也能带起走。能明确知道项目需要做什么事、怎么去做、到达什么效果。目前管理只是在工作任务拆解安排与监控方面管理有提升,在组织协调能力方面还需加强。
技术能力
项目采用先进的SpringBoot2 框架做为后台核心框架大大的减少框架集成引发的问题,采用标准自动装配减少代码量提高搭建框架效率,持久层采用的MybatisPlus,代码生成提高了开发效率。采用Activiti6解决了工作流审批问题,在工作流方面也是积累了不少经验。首次采用JWT技术解决APP端会话问题,并通过Redis将会话生命周期可控制。在定时任务方面采用了XXL-Job平台作为调度平台,开源且扩展性强,完全满足豆蕊米项目的定时调度需求。Web前端采用本人前项目中的框架Angular1与layui结合,效率方面比传统的JSP开发提高很多,但唯独缺少了前端代码生成(这部分做好可大大提高效率)。采用AMD异步模块加载方式前端性能非常高、前后端分离技术使项目扩展性更强。利用Maven模块化构建项目是代码复用性更强。项目部署方面,采用虚拟化容器化技术搭建了一套内网虚拟化环境,构建容器有:Gitlab、Nexus、Seafile、Jenkins、Minio、Mysql、Redis、Sonar、Nginx等等工具这些工具有效的管理了我们的源代码、知识库、项目输出的文档等等资源。同时还部署了一套CloudStack作为私有云服务器管理工具,对内网虚拟机Web可视化方式管理,目前在ETL方面实例化一台WinServer2008 R2 作为豆蕊米原始数据处理服务器。在后面大数据方面CloudStack可虚拟更多的VM实例为大数据集群环境做技术储备。
项目中对于发布采用自动化部署方式,将繁琐的部署流程通过Jenkins实现自动打包、自动上传、自动重启。通过Git分支将项目分为dev、test、prod 便于版本控制。Docker容器化部署统一了项目的启动方式,解决运行环境配置统一化大大缩减了发版时间与发版效率。目前构建项目发布完成仅需4分钟左右,但这样也没有完全实现DevOps目标,自动化测试仍需要去完成。
业务能力
对豆蕊米工作内部的运作方式有进一步了解,豆蕊米在金融、大数据分析、物联网方面的实践本人学习了很多。豆蕊米工作的组织架构与代工厂模式很好的解决了成本问题,生产计划中的按需生产节约了成本与资金压力。对于一个电商系统来说通过各类优惠方案引流,在豆蕊米项目中对优惠的设计还是很完美,做到了可扩展、可配置,根据实际优惠业务需求,制定了整套优惠体系,包含商品优惠、定金优惠、线下优惠,并在以后项目中可延用。对于大型公司的审批流程有了进一步认识,以后会通过流程引擎解决审批问题。对于利用图形化思维解决复杂业务逻辑问题,这种方式很有效果,缕清业务处理逻辑思路。
客户沟通能力
做为开发人员对于直接面对客户沟通还是有一定的问题,开发人员过于直白的沟通方式或是偏向技术的沟通,客户不理解表达的内容。因此豆蕊米项目与客户沟通基本是项目经理完成的,开发人员专注于写代码。这种管理方式还是比较好,大部分开发人员不善于拒绝客户需求,客户提出不容易实现的需求(消耗时间较长的)或是经验原因没做过的,是不会做的。通过需求更变清单提交给开发人员,通过任务分配,时间评估让项目管理更有秩序。
产品迭代方面
一个产品应该是通过实践积累不断打磨的,我们今天看到的QQ、微信都是不断收集用户意见完善用户体验的,经历了很多次版本迭代。但对于豆蕊米和公司的合作关系应该是甲方乙方关系,一锤子买卖方式。版本升级肯定会有的建议不要与维护混为一起,作为需求更变清单或者二期需求。