先实现功能还是先搭建基础

做项目的决策时遇到的问题分享
Posted by SunnyRx on September 19, 2018
原文地址:https://sunnyrx.com/2018/09/19/Realize-the-main-function-first-or-realize-the-foundation-first/

这是笔者在和主程老朱讨论“这个项目优先实现哪部分内容?”时遇到的问题。

问题

对于一个即将要开始开发的项目,哪些功能比较重要,需要优先实现,我们提出了两个方向。但是在这两个方向中,应该选哪个,成为了问题。这两个方向分别是:

  • 先实现导入数据的功能,再实现主要的功能

  • 先实现主要的功能,再实现导入数据的功能

过程

一开始笔者的想法是,先专注实现主要的功能,再实现导入数据的功能,可以更好的专注功能本身,而测试功能时录入的测试数据可以暂时使用硬编码之类粗暴方式解决先。

同时也想到,先做好数据导入的话,之后功能实现后可以同时测试大小规模的数据,同时主程序也是建议先做数据导入,花的时间也不多。

笔者当时认为这种时候听主程序的建议是最合适的,但是考虑到如果以后独自遇到这种问题需要自行作出决策的话,搞清楚怎么做出判断是很重要的。

针对这两个方向,笔者感到无从判断,于是向蔡老师请教,在蔡老师的指引下和老朱的帮助下,整理出这两个方向的优缺点。

先实现导入数据的功能,再实现主要的功能

优点:

  1. 节省写硬编码或临时代码的时间
  2. 可以测试大规模数据

缺点:

  1. 不能很快看到主要功能的效果
  2. 不能优先解决困难的地方

先实现主要的功能,再实现导入数据的功能

优点:

  1. 能很快看到主要功能的效果
  2. 可以优先解决困难的地方

缺点:

  1. 需要花费写硬编码或临时代码的时间
  2. 测试大规模数据会很麻烦

老朱的意见是,在功能需求不怎么需要修改的情况下,先实现导入数据的功能,再实现主要的功能会更合适,当下就是这种情况。

结论

对于要开发的东西,功能已经相当明确,有具体的设计文档的时候,先实现导入数据的功能,再实现主要的功能是合适的选择。

前期将项目基础搭建好,后面可以节省很多不必要的时间,也不会造成代码浪费。这个选择对应的是瀑布开发模式

对于要开发的东西,功能尚不完全确定,需要反复验证功能的时候,先实现主要的功能,再实现导入数据的功能是合适的选择。

例如做一个新的游戏,当不确定这个游戏的玩法是否可行时,需要快速搭建原型验证和反复修改。这个选择对应的是敏捷开发模式

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,926评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,079评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,024评论 3 119
  • 这里放了几张楼主收藏的图片,都是从各大网站下载的,如果有喜欢的童鞋,可以关注下微信公众号:图癌,或围脖:图癖,我是...
    松叶芭蕉阅读 245评论 0 0
  • 如何帮助总怀疑自己生病的学生 看到题目中的怀疑自己生病,我想到的是疑病症,是精神病的一种。如果不得到及时治疗,后果...
    文昌许珊珊阅读 196评论 0 0