一个CTO的一天:详细设计的作用

* 好的详细设计能提前暴露问题,减少研发中返工的概率 *
昨天有一个刚参加工作不久的初级软件工程师,向我请教一个工作中的问题,即遇到了一个挑战很大的开发任务,不知道该如何应对?即领导直接下达了一个有Deadline的任务,但这个任务实现难度有点大,除了技术本身,作为后端,还需要协同算法和前端,因此对于初级工程师还是有些挑战。那么遇到这个问题该如何应对呢?
其实很简单,那就是不要急于写代码,而是应该先做详细设计。
一个概念
在阐述详设前,有一个概念需要清楚:
需求是描述系统做成什么样,而详细设计描述如何来实现这个系统,而对应的岗位就是PM和RD。而这句话基本也定义了岗位之间的边界,系统做成什么样由PM说了算,如何实现由RD说了算。
因为我经常遇到,在需求发布会时,研发一直在讨论或者阐述需求应该是什么,不应该是什么?虽然RD可以提意见,但是最终由PM来决定系统做成什么样。这个边界如果模糊的话,往往讨论就会很紊乱,吵成了一锅粥。
PM:产品经理,RD:研发工程师。
什么是详细设计
详细设计也叫做技术调研,它是在有了明确的需求后,需要将需求做拆解,进行技术调研,确认实现的技术方案。往往技术方案会有多个,这里建议给出3个,并给出推荐选用哪个方案。给出接口协议和数据库设计,可初步写出一些Code,做一些技术点的验证。
这里按照我的过往经验,给一个大致的详设模版。
背景
需求的描述和拆解
