在前两期分享中,分别分享了:
1⃣️【如何0到1构建软件研发团队-01】要干什么?为什么干?钱从哪里来?
链接:https://www.jianshu.com/p/c412e15d3e5e
2⃣️【如何0到1构建软件研发团队-02】如何招募团队成员?
链接:https://www.jianshu.com/p/ddec5720737c
团队人员到位后就要开始制定研发规划了,合理的研发规划是保证工作效率的前提。
本次分享我们来聊聊:如何制定研发规划?
01
详细的需求分析
需求分析是软件开发前的必要工作,而且需求分析有很详细的专业专业技能来支撑。
本次分享对需求分析不做详细阐述。重点描述需求分析的注意事项,以及需求分析跟研发规划的相关工作。
1)对于初建团队,团队对业务需求理解是不可能很详细的,所以需求分析需由浅入深,需由宏观到细节。如果过于注重需求细节,很可能会陷入误区,导致研发工作迟迟不能开展,影响工作效率,打击团队士气。
2)需要尽快确定软件展现形式、核心业务流程以及主要用户范围,这样就可以确定业务框架、业务端数量以及所使用的主要技术框架和核心技术模块。
3)需确定核心业务流程以及核心用户,这样就可以确定第一个最小可执行版本所需的最少软件功能。这一点也是方便研发规划可以确定第一个明确的研发时间节点。
02
功能模块的拆分
拆分功能模块有助于框架的搭建、优先级的排序、核心模块模块的确定等工作。
除了拆分业务模块外,还有底层技术模块。比如:技术框架搭建、认证机制、数据库读写、文件存取等等。
模块的拆分也是合理评估工作量的必要条件。
03
优先级的排序
技术优先级其实很好确定,一般都是技术框架、数据库、文件、认证等等模块。
而且底层技术优先级基本都在最前面。
业务优先级不单单要考虑技术方面的合理性,也要考虑业务端是否能定期产出成果。
因为没有人能提前一次设计好所有的流程并且不出错。
所以优先级的排序需要考虑技术条件、业务优先级、人员研发能力等条件,综合评判。
如果盲目的开始研发,经常会造成研发效率低下,业务方向出错,研发成本不可控等结果。
04
工作量的评估
有了模块拆分并排了优先级,那么就要开始做工作量评估。
工作量评估也是一个较复杂的领域,在这里只说重点,后续需专门的章节来详细介绍。
工作量评估也是为了给成员合理分配任务,并且准确预估每个模块的研发时间,最终辅助确定研发关键时间点和周期。
另外,工作量的评估需要考虑技术难度、业务复杂度以及对团队的技术人员研发能力等因素。
不可能一开始就能很准确的评估。
一般刚开始都会有误差,或多或少。
但是这是一项必须要做的工作,因为后续研发周期和规划都需要知道工作量。
在团队养成这个评估习惯后,逐渐就能准确的估算出每个研发任务的工作量了,这需要一段时间,从来不会一蹴而就。
05
研发周期的确定
如今软件研发模式中最流行也是最合理的依然是敏捷开发模式。
敏捷开发标准的周期是两个星期,对C端或者游戏团队的产品有的甚至是一周一个版本。
我之前的团队主要做B端产品,一般以20到30天为一个版本,一般每个迭代不能超过一个月。
具体的迭代时间控制需结合不同软件定位、用户需求以及团队能力来确定。
而敏捷开发的一个核心思想也是要求尽快出第一个版本,不断获取反馈优化升级,不断完善。
在确定了研发迭代节奏后,需对这个产品研发有一个长期粗颗粒(以月为单位)的周期预估。
可以把整个周期分成若干个阶段,每个阶段再拆分成若干个迭代。
这样一个研发周期表就基本就出来了,后续研过程中即便有变更,也会以这个为主去调整。
如果没有这个周期表,你会发现你永远不知道当前的进度如何,你也不知道下个阶段的研发工作什么时候有结果,更不知道未来这个软件什么时间结束。
这种对未来不可控的状态下,团队成员没有明确目标,老板和领导不知道进度,用户更不知道什么时候能研发结束。这种状态对研发团队来说是致命的,团队一定走不远。
所以,制定研发周期是重要且必要的工作,一定要慎重对待。
06
成员对应工作的分工
其实成员的工作分工,在工作量评估和研发周期制定期间基本已经定的差不多了。
只是在落实到每个人时,需要在每个迭代的研发规划上标明具体的研发人员,方便管理人员跟进进度,并且第一时间找到每个模块的研发负责人。
同时成员的工作分工也是对成员对工作考核的重要依据,并且对每个人的工作态度和责任心都起到了积极促进作用。
好了,本次系列分享结束。下次我们将分享研发迭代中遇到的各种常见问题以及解决办法。
有兴趣的小伙伴可以点赞、关注,以便及时了解后续分享信息。