前言
作为一个前端开发工程师,我们总是希望自己能够快速的成长。从需要有人带,到成长为能够独立去进行项目开发,然后到带着其他人去进行项目开发,再然后走得更远...
写作目的
本文根据个人的经验进行总结,希望通过这篇文章能够大家带来一些参照与思考,能更好的去完成项目开发,并且在这过程中有所成长。
阶段一:跟着别人去进行项目的开发
大部分人从校园出来,到公司刚参与项目的时候,都需要有一个人带着,除了带着熟悉公司的环境之外,更多的是熟悉项目,从小任务做起,一步一步的成长为能够独立进行项目的开发。那么,处于这个阶段的时候,我们应该如何做才能更好的成长呢?
- 了解项目开发的流程规范。每个公司都有自己的一个开发流程规范,遵循同一个流程规范,可以避免一些不必要的错误,提升整个项目组的开发效率。
- 补充自己的基础知识,拓展项目中遇到的知识点。
- 多去了解为什么这么做,看看其他人遇到问题的时候是怎么处理的,吸收一些比较好的处理问题的方式。
- 做完项目,给其他人 review 一下,看看有什么不足,或者更优的解决方案,慢慢积累经验。
阶段二:独立去进行项目的开发
这个阶段,就需要咱们具备独立开发项目的能力了。如果是首次独立承担项目的开发,那么也不用害怕,你的领导或者师兄师姐给你安排这个任务的时候,说明在他们眼里,你已经具备了这个能力了。
如何去做?
可以将整个项目开发周期划分为 3 个阶段 和 1 个总结:开始阶段、执行阶段、收尾阶段 和 复盘总结。
开始阶段
- 充分了解需求,明白产品到底想要做什么。补充需求,可能会出现产品逻辑功能缺失的情况,尽早提出来,避免做到最后了才发现产品逻辑不完善。
- 技术调研/选型:这个功能是否能实现,都有哪些技术方案,各个技术方案的优缺点是什么?
- 明确前端与各端(服务端、客户端)的交互方式 和职责范围。
- 精细的任务拆分,最好是能拆分到一个任务一天(这样对项目有多大的工作量更清楚,更易于把控进度)。排期不要算上加班的时间,按正常的工时去计算。
- 明确交付产物、交付标准和截止时间 (知道什么时候交付、交付什么东西,这样才能保证交付的东西是完整的,准时的)。最好整理一个交付的检验列表,和一个交付检验的流程文档。
执行阶段
- 严格按照项目的开发流程去进行开发。
- 当日事当日毕 ,每天的任务要保证完成。
- 及时沟通,尽早暴露风险 (这样大家可以一起帮忙把风险解决掉,保证进度)
- 强化解决问题的能力 ,特别是debug的能力,要沉淀出一套属于自己解决问题的方法论。比如说,不要先入为主,总觉得自己写的代码没有问题,要一步一步去确认,确保每一步的代码逻辑是没有问题的再往下定位。
- 不确定的问题,一定及时沟通 。
- 做项目的过程中,可以多思考一下当前项目开发流程上有什么不足,或者有什么可以改进的地方,然后带着解决方案去找项目负责人。
- 添加代码注释或者开发文档。比如如何开发、调试、测试及上线。方便后续开发和维护。
- 深入思考一下项目的原始需求,当前项目开发完成之后,是不是可以解决了这个需求要解决的问题,有没有需要补充的地方。
收尾阶段
- 自测(保证提测质量):交付前根据 checklist 检查一下要交付的东西是否完整、是否达到交付标准。
复盘总结
- 想一想,之前开发项目的时候哪里被卡住了,如何提升自己的开发效率(比如说下次再有同样的项目,如何缩短项目的开发时间)。
- 流程上是否有待完善的东西,以提高团队的效率、提高整体开发的质量。
- 多从其他人的角度去思考问题,看看如何配合起来更顺畅,效率更高,条件允许的情况下,可以协助他人解决问题,提高自己的影响力。
- 总结一下目前项目的优势和不足,提取经验复用到下一个项目中,能落成文章或者跟大家分享更好。
核心点:保证完成项目开发的前提下,提高自身能力和影响力。
阶段三:带着其他人去进行项目开发
在能够很好的去独立完成项目开发的情况下,更进一步,就是作为业务的接口人,带着大家去进行业务的开发了。
业务接口人应该具备的能力
- 熟悉自己所支持的业务,知道业务的目标是什么。
- 要有明确的目标规划,可以让团队其他成员知道各自都需要做什么。
- 技术选型、方案定制、定制开发流程及规范。
- 具备攻坚能力,能够解决项目中遇到的重点、难点问题。针对自己的项目和遇到的问题开发合适的工具,提升团队工作效率。
- 资源协调及良好的沟通能力(跨部门协作需要进行资源的沟通协调)。
- 处理风险及把控进度(解决开发过程中遇到的问题)。
- 成果检验(保证交付质量)。
如何去做?
同样可以将整个项目开发周期划分为 3 个阶段 和 1 个总结:开始阶段、执行阶段、收尾阶段 和 复盘总结。
开始阶段
- 充分了解业务,从业务的角度,和产品经理探讨需求的合理性,发表自己的看法和见解。
- 根据需求,分析一下项目的重点或者难点,定制一下解决方案。有必要的话出一个小demo,做技术预演。
- 定一下项目的架构,进行模块及任务划分。
- 梳理一下项目开发中需要依赖的外部资源,提前沟通协调。
- 定制开发流程和规范。
执行阶段
- 每天下班之前同步一下开发进度及问题点,协助解决重点难点问题,当日问题尽量当日解决。如果是紧急项目,小组内进度同步完成之后,整理汇总到项目负责人或者领导处。
- 拉通认知,随时保持大家对项目、需求的理解是一致的。
- 保持良好的沟通氛围,可提高开发效率或者及时发现问题。
- 管理风险:风险接受(知道这个风险并且能接受)、风险规避(通过其他方式规避这个风险)、风险控制(采用策略缓解这个风险带来的影响)。
- 解决冲突:人力冲突、优先级冲突、技术见解冲突等。能自行解决的就解决,解决不了的,可让第三方介入解决(比如其他同事或者领导)。
- 重要的技术方案及重点问题记录,统一形成文档,让大家都能看到。
- 协助解决问题以引导为主,帮助其他成员提升解决问题的能力。
收尾阶段
整合项目,并进行自测/预演,确认没有问题之后再交付。
复盘总结
项目交付之后,自己先进行总结,然后带着大家一起进行复盘。不用太正式,每个人都有发言的机会,畅所欲言(最好是给大家时间去想,写纸上,然后挨个发言)。最后总结,提取经验,形成文档一起归档。
自我总结的思考:
- 项目是否达到预期的效果?如果没有,原因是什么。
- 团队开发效率和配合的默契程度如何?是否还能再提升?
- 开发流程是否完善?有没有需要补充、改善的地方?
- 团队成员的收获是什么?什么东西对于他们来说是有收获和成长的?
- 在服务好业务的同时,如何扩大团队的影响力?
核心点:整体规划、业务理解、项目管理、团队成长
结束语
积极主动是成长的最好方式,不管我们处于什么样的年龄段,能够不断的成长和进步都还不算晚。另外,沟通和表达,在职场上是挺重要的。不要被“程序员”的标签束缚了自己,大胆的去沟通表达,会有意想不到的收获。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。