4

前言

作为一个前端开发工程师,我们总是希望自己能够快速的成长。从需要有人带,到成长为能够独立去进行项目开发,然后到带着其他人去进行项目开发,再然后走得更远...

写作目的

本文根据个人的经验进行总结,希望通过这篇文章能够大家带来一些参照与思考,能更好的去完成项目开发,并且在这过程中有所成长。

阶段一:跟着别人去进行项目的开发

大部分人从校园出来,到公司刚参与项目的时候,都需要有一个人带着,除了带着熟悉公司的环境之外,更多的是熟悉项目,从小任务做起,一步一步的成长为能够独立进行项目的开发。那么,处于这个阶段的时候,我们应该如何做才能更好的成长呢?

  • 了解项目开发的流程规范。每个公司都有自己的一个开发流程规范,遵循同一个流程规范,可以避免一些不必要的错误,提升整个项目组的开发效率。
  • 补充自己的基础知识,拓展项目中遇到的知识点。
  • 多去了解为什么这么做,看看其他人遇到问题的时候是怎么处理的,吸收一些比较好的处理问题的方式。
  • 做完项目,给其他人 review 一下,看看有什么不足,或者更优的解决方案,慢慢积累经验。

阶段二:独立去进行项目的开发

这个阶段,就需要咱们具备独立开发项目的能力了。如果是首次独立承担项目的开发,那么也不用害怕,你的领导或者师兄师姐给你安排这个任务的时候,说明在他们眼里,你已经具备了这个能力了。

如何去做?

可以将整个项目开发周期划分为 3 个阶段 和 1 个总结:开始阶段执行阶段收尾阶段复盘总结

开始阶段

  • 充分了解需求,明白产品到底想要做什么。补充需求,可能会出现产品逻辑功能缺失的情况,尽早提出来,避免做到最后了才发现产品逻辑不完善。
  • 技术调研/选型:这个功能是否能实现,都有哪些技术方案,各个技术方案的优缺点是什么?
  • 明确前端与各端(服务端、客户端)的交互方式 和职责范围。
  • 精细的任务拆分,最好是能拆分到一个任务一天(这样对项目有多大的工作量更清楚,更易于把控进度)。排期不要算上加班的时间,按正常的工时去计算。
  • 明确交付产物、交付标准和截止时间 (知道什么时候交付、交付什么东西,这样才能保证交付的东西是完整的,准时的)。最好整理一个交付的检验列表,和一个交付检验的流程文档。

执行阶段

  • 严格按照项目的开发流程去进行开发。
  • 当日事当日毕 ,每天的任务要保证完成。
  • 及时沟通,尽早暴露风险 (这样大家可以一起帮忙把风险解决掉,保证进度)
  • 强化解决问题的能力 ,特别是debug的能力,要沉淀出一套属于自己解决问题的方法论。比如说,不要先入为主,总觉得自己写的代码没有问题,要一步一步去确认,确保每一步的代码逻辑是没有问题的再往下定位。
  • 不确定的问题,一定及时沟通 。
  • 做项目的过程中,可以多思考一下当前项目开发流程上有什么不足,或者有什么可以改进的地方,然后带着解决方案去找项目负责人。
  • 添加代码注释或者开发文档。比如如何开发、调试、测试及上线。方便后续开发和维护。
  • 深入思考一下项目的原始需求,当前项目开发完成之后,是不是可以解决了这个需求要解决的问题,有没有需要补充的地方。

收尾阶段

  • 自测(保证提测质量):交付前根据 checklist 检查一下要交付的东西是否完整、是否达到交付标准。

复盘总结

  • 想一想,之前开发项目的时候哪里被卡住了,如何提升自己的开发效率(比如说下次再有同样的项目,如何缩短项目的开发时间)。
  • 流程上是否有待完善的东西,以提高团队的效率、提高整体开发的质量。
  • 多从其他人的角度去思考问题,看看如何配合起来更顺畅,效率更高,条件允许的情况下,可以协助他人解决问题,提高自己的影响力。
  • 总结一下目前项目的优势和不足,提取经验复用到下一个项目中,能落成文章或者跟大家分享更好。

核心点:保证完成项目开发的前提下,提高自身能力和影响力。

阶段三:带着其他人去进行项目开发

在能够很好的去独立完成项目开发的情况下,更进一步,就是作为业务的接口人,带着大家去进行业务的开发了。

业务接口人应该具备的能力

  • 熟悉自己所支持的业务,知道业务的目标是什么。
  • 要有明确的目标规划,可以让团队其他成员知道各自都需要做什么。
  • 技术选型、方案定制、定制开发流程及规范。
  • 具备攻坚能力,能够解决项目中遇到的重点、难点问题。针对自己的项目和遇到的问题开发合适的工具,提升团队工作效率。
  • 资源协调及良好的沟通能力(跨部门协作需要进行资源的沟通协调)。
  • 处理风险及把控进度(解决开发过程中遇到的问题)。
  • 成果检验(保证交付质量)。

如何去做?

同样可以将整个项目开发周期划分为 3 个阶段 和 1 个总结:开始阶段执行阶段收尾阶段复盘总结

开始阶段

  • 充分了解业务,从业务的角度,和产品经理探讨需求的合理性,发表自己的看法和见解。
  • 根据需求,分析一下项目的重点或者难点,定制一下解决方案。有必要的话出一个小demo,做技术预演。
  • 定一下项目的架构,进行模块及任务划分。
  • 梳理一下项目开发中需要依赖的外部资源,提前沟通协调。
  • 定制开发流程和规范。

执行阶段

  • 每天下班之前同步一下开发进度及问题点,协助解决重点难点问题,当日问题尽量当日解决。如果是紧急项目,小组内进度同步完成之后,整理汇总到项目负责人或者领导处。
  • 拉通认知,随时保持大家对项目、需求的理解是一致的。
  • 保持良好的沟通氛围,可提高开发效率或者及时发现问题。
  • 管理风险:风险接受(知道这个风险并且能接受)、风险规避(通过其他方式规避这个风险)、风险控制(采用策略缓解这个风险带来的影响)。
  • 解决冲突:人力冲突、优先级冲突、技术见解冲突等。能自行解决的就解决,解决不了的,可让第三方介入解决(比如其他同事或者领导)。
  • 重要的技术方案及重点问题记录,统一形成文档,让大家都能看到。
  • 协助解决问题以引导为主,帮助其他成员提升解决问题的能力。

收尾阶段

整合项目,并进行自测/预演,确认没有问题之后再交付。

复盘总结

项目交付之后,自己先进行总结,然后带着大家一起进行复盘。不用太正式,每个人都有发言的机会,畅所欲言(最好是给大家时间去想,写纸上,然后挨个发言)。最后总结,提取经验,形成文档一起归档。

自我总结的思考:

  • 项目是否达到预期的效果?如果没有,原因是什么。
  • 团队开发效率和配合的默契程度如何?是否还能再提升?
  • 开发流程是否完善?有没有需要补充、改善的地方?
  • 团队成员的收获是什么?什么东西对于他们来说是有收获和成长的?
  • 在服务好业务的同时,如何扩大团队的影响力?

核心点:整体规划、业务理解、项目管理、团队成长

结束语

积极主动是成长的最好方式,不管我们处于什么样的年龄段,能够不断的成长和进步都还不算晚。另外,沟通和表达,在职场上是挺重要的。不要被“程序员”的标签束缚了自己,大胆的去沟通表达,会有意想不到的收获。


heweixiao
152 声望4 粉丝