软件开发不是英雄主义的体现,产品面向的对象是用户,用户的需求才是软件开发的驱动。产品是一个从0到1然后再迭代的过程,所以从无到有是最关键的一环。一个不完善的开发流程可能会导致周期长、产品烂、维护难等问题。
你是否遇到这样的问题,某天你的领导说要做一个功能,口头给你描述了一下需求大概是什么样的,然后让你完成这个功能,然后你说有没有设计或者页面,领导说让你自己画一下先看一下。你回到工位后思来想去几天也没有头绪,到底我要做一个怎样的功能?页面我要怎样画?业务到底是什么样的?一连串的问题在脑海中飘过,终于鼓起勇气去跟领导询问,领导一脸无奈,这么简单的事情也要给你讲很多遍。这只是开始而已🤷🏻♂️。
一个完整的开发流程应该包括:
-
需求的收集和评审
需求在软件开发之前就要收集明确,避免产品研发的方便跑偏,需求明确后要由产品经理出具需求文档,然后开会进行需求评审,这个过程中所有相关的人员都要参与,包括产品经理、研发人员、测试、UI等。如果需求不合理则挂起需求或者由产品经理重新修改再次评审。
-
原型设计和评审
需求评审完成后由设计输出原型图,所有参与人再次进行原型评审,设计不合理再重新修改评审。
-
开发资源的分配
由leader决定这个功能由哪些研发人员参与。
-
需求的讲解
由产品和leader讲解需求,这是非常重要的一环,因为足够了解需求就可以了解业务,是一个非常好的学习机会,也会对功能更加清晰的认知,对后面的开发非常有帮助,这个环节如果有疑问的地方一定要提出来,会让自己和开发的软件都更加健壮。
-
概要设计和UI设计以及评审
研发人员了解了需求之后,就要写详细的概要设计,包括整体的逻辑,数据库的设计甚至某些重要的实现和函数(可以是伪代码)等。UI需要根据需求出具UI设计稿,后期前端的同学根据这个画页面。两个都需要所有参与人进行评审,评审通过后才可继续。
-
开发ing
前后端开发阶段,这个过程leader要把控进度和代码质量,防止错误的开发导致重复返工,开发完成后需要联调自测等。
-
测试阶段
功能提交给测试,进入bug收敛阶段。
-
修改bug迭代
修改bug,回归测试,交付验收。
总结
软件开发不是闭门造车,相反我认为是一个庞大的工程,任何一个细节都可能会让一款产品失败,有时候失败的定义不是说产品卖的不好, 而是明明可以更好却选择了“就这样”。
要做一个软件工程师而不是一个码农。