这是一个外包项目,帮别人做一个网站,包括前端和后端。
主要工作如下:

  1. 系统为客户提供活动申请、抢单、反馈、评论、组织创建,成员管理,微信分享等功能
  2. 支持后台对活动、组织、用户等资源的统一管理,包括审核,修改,发布,图片上传等功能
  3. 系统的测试,bug的修复、上线以及维护。已稳定运行2个月

项目从9月份启动,开始是两个人,有一个朋友,最后做了一点点就没有让他做了。基本上所有的功能都是我一个人完成,产品经理,UI设计,代码都一个人包了。
主要是利用晚上或者周末的时间来完成,11月初基本上所有的需求都完成了,之后就一直修修补补,新的需求不断,到了12月中旬就交了。

期间的心情变化

  1. 有钱赚,干劲十足
  2. 终于要开发完成了,欣喜
  3. 不断的改和加新功能的烦心
  4. 一直改一直改的烦
  5. 终于交接了,开心
  6. 尾款一直拖一直拖,一直催,一直催,心急,代码啥的都给了。
  7. 扣押款项的愤怒,却又忍着同意。
  8. 自己还是太嫩了吧

项目的结构:

  1. 后台采用ThinkPHP3.2搭建
  2. 前端采用了bootstrap,Vue,jQuery,frozenui
  3. 采用mysql数据库
  4. 服务器采用阿里云,centos7.2+Nginx+PHP+Mysql

踩到的坑:

  1. 代码结构没有设计好
  2. 数据库设计不具有扩展性,一改再改
  3. 需求不太明确,对方也不明确,用了才来改
  4. 中间进行了一次UI界面的全部重写

学到的经验:

  1. 外包必有合同,不能是之前认识就不要
  2. 文档要齐全,包括需求文档,功能文档,Api文档,数据库设计文档。一样也不要少,在开发一个功能的时候,先要文档化,实现什么样的功能,api如何设计,需要哪些参数等。
  3. 如何防止对方的需求不断的更改,做了一个功能,又要与之配套的功能啥的。
  4. 先要搭起整个架子,不要急于敲代码、、
  5. 代码可以让其审查,但是在没有付尾款的时候不要给

以后外包开发需要以下文档

  1. 技术合作文档
    与对方签订的开发合同
  2. 功能文档
    描述已经实现的功能
  3. 数据库设计文档
    数据库版本,表设计等
  4. 项目需求文档
    项目需要实现的功能列表和说明
  5. 总体设计文档
    描述项目整体采用的架构
  6. Api文档
    后台提供的api文档列表
  7. bug提交模板
    测试提交bug的模板

总结一下:
通过这次外包项目,初步了解了外包的一个整体流程,踩过一些坑,上过一些当,也学到了很多经验,还赚了一点点钱,第一次重在尝试。