大家好,我是阿甘,不是阿宣。
最近一个校友找到我,他自己开了公司,想做一个微信小程序,就让我帮他开发一下,当然不是免费的。
心想,太好了,虽然我以前没有接过私活,但不代表以后不会接私活,这是一个很好的练习机会。
我做这件事大概花了一个半月到两个月的时间,积累了一些经验,分享给大家。以后大家如果接到私活,可以参考我的做法。
由于文章中不便透露所涉及的实际业务,我将用图书馆管理系统来代替实际业务,并称呼这位校友为“老板”。
概述
我接手的项目完全从零开始,老板只有一个想法,然后说他的想法来自于另外一个小程序,部分内容可以参考那个小程序,其他就没有什么了。
先说一下我的整体流程:
确定老板的大致需求和预计成本。详细梳理开发功能,简单画出原型。评估工时,确定成本。准备正式的UI设计稿,签订合同。开发阶段验收,上线。
这些就是步骤了,也和本文的目录相对应,如果有想看的部分,可以直接跳到相应部分。
下面我会详细描述每个步骤我做了什么。
确定需求
首先我的老板来找我,说想要做一个图书管理的微信小程序,然后讲了小程序里面的几个功能点。
我也问了他几个问题:
预算是多少?
这肯定是一个需要问的问题,如果预算和工作量严重不匹配,那肯定做不成,毕竟大家都是来赚钱的,总不能只用爱心去发电吧?
预计一年会有多少用户?会产生多少数据?
我主要想知道并发量和数据量会是多少,这样方便我后续判断系统需要的配置,也方便我后续对整个系统进行设计。
还好整体的用户量和数据量都不大,所以对我来说没什么压力。至于以后会如何发展,这个就不是我应该考虑的了,最多能把代码写得漂亮点就行了,等它越来越大,他肯定会把这个项目拿进公司,雇人来做,跟我没关系。
您能提供什么?
这个主要看对方有哪些资源,能不能对项目开发提供一些帮助。
在我的项目中,老板什么都没有,没有设计图,没有服务器资源,也没有辅助人员,所有内容都由我来处理,有问题可以直接问他。
您希望多久完成它?
如果老板着急,可能要叫几个人一起做,如果时间充裕,一个人做也不是不行。
嗯,第一次谈话大概就是这些了。但是,一次谈话不可能确定需求。我们只能得到一个大概的想法。
根据老板的想法,我写了一份需求分析,先列出几个通用的功能点:
然后基于这些功能点进行扩展,列出所有功能,并画出思维导图(代码比较多,请大家多包涵):
OK,第一版的需求分析就差不多完成了,然后我就打电话给老板,根据思维导图一一跟他确认这些功能是否需要。
老板通常会提出一些反对意见,我就会不断修改思维导图,直到老板对功能满意为止。当然在这个过程中我也会给出一些建议,还是建议他不要做一些超出预算的功能。
至此,需求基本确定了。
梳理开发功能点,绘制原型图
由于我不会做前端开发,只是一个简单的后端开发,所以我找了一个前端同学和我一起做。
根据之前的需求文档,我和前端详细梳理了一下小程序和后台管理系统的功能,这部分比较重要,因为后续的设计稿和开发都会以这个文档为依据:
我也画了一些简单的原型,丑一点没关系,只要人看得懂就行:
等做完这些事情之后,我会再次去找老板确认,确认每一点,达成共识。
评估工作时间并确定成本
老板觉得没问题了,就谈钱了,之前都是谈预算,没有正式确认成本。
我们不能只要求,要求太多,老板不高兴,要求太少,自己又要吃亏。
那么我们先来评估一下工作时间吧,这里我把工作时间评估分为几个部分:
设计稿是找另外一个朋友做的,钱是另外算的,剩下的都是我和前端同学评估的,评估的粒度比较细,是按小时来算的,这里给大家粗略的概括一下:
评估完之后我们汇总了一下,根据自己的时薪给老板一个最终价格,正常情况下需要乘以一个订单系数(1.2~1.5),但是我们老板是校友,预算不多,就没乘这个系数(交个朋友还给了他折扣)。
如果你报了价,老板觉得价格太高怎么办?很简单,砍掉部分功能或者找别人做就行。
预付押金
我觉得在整理功能之前先交一部分定金是正常的,不用很多,几百块钱就可以了,算是我们整理功能的钱。
接下来我们需要画UI图,我们先让老板交定金,定金分为三部分:
因为是联系UI设计师的,所以我得先让她把钱收齐,不然她画完图跟我说不想做了,我怎么对得起画图的人?
绘制 UI 图
这部分我们不用操心,只要把文件交给设计师,等着她出图就行了。
这个过程中还可以时不时检查一下她画的内容是否符合我们的期望,充当一下小监督员的角色。
画完稿子之后需要跟老板、开发人员核对一下,是否有出入,是否符合预期,有问题及时修改,如果没有问题就按照这个稿子开发。
起草并签署合同
合同也是我起草的,其实我是先在网上找了个软件开发合同模板,然后根据自己的想法做了合理的调整。
为什么要到这一步才签合同呢?我觉得合同越详细越好,最好能把要开发的内容和风格写在合同里,省得后面麻烦。
现在文件已经出来了,图纸也完成了,让我们把所有这些东西放到合同的附录中,并附上这些条款:
这将确保开发后不会添加或修改任何恶意功能。
以下是其他一些需要特别注意的事项:
乙方的交付日期,最多可以延长多久?超过期限会怎样? 甲方的付款方式及日期(我们采用442,开工时付40%,中期验收付40%,开发验收完成付20%)。 甲方拖欠项目资金如何处理(支付逾期履约费等)。 服务器费用谁付?如果是乙方,需要注意服务器包的期限。 项目维护期一般为一年半。 乙方不保证项目100%可用,只能保证支持多少人,能同时支持多少人在线,如果发生恶意攻击,乙方不承担责任。 软件的所有权归谁? (如果项目款比较少,乙方可以要求软件的所有权,甲方如果想把项目带回自己公司维护的话,就需要从乙方那购买,这样乙方就能拿回一些钱)
就是这样。其他一切基本都基于模板,没有做太多修改。
做完之后给老板看,没问题就签字,有问题双方再协商,我们直接签字了。
发展阶段
开发没什么好说的,跟在公司开发是一样的。
但是,如果你从事私活,你就不能在公司里发展它。你只能在家里做。否则,如果你在工作中被发现从事私活,无论老板是否解雇你,你都会有麻烦。
启动微信小程序需要注意的事项
微信小程序对于请求接口有三个基本要求:
域名必须已注册。域名必须有 SSL 证书()。域名不得包含端口号。
这个域名的问题必须尽快解决,否则等到开发完成后,工信部备案审核的时间会比较长,也难以避免延期。
还有一种方式,是我在微信开放社区里看到的,利用云函数进行中转,间接请求IP接口,感觉可行又方便,具体操作大家可以自行摸索。
我也苦于没有经验,买域名+工信部注册+公安部门注册+小程序注册,这一套操作真的让我很不舒服,直接用云函数就简单多了。
验收和启动
这部分没什么好说的,大家在公司也经常会经历这个步骤。
更多沟通,更多确认,
唯一需要提醒大家的是,验收的时候,我们也不能无条件接受老板的任何要求,毕竟价格和开发内容都已经确定了,如果要增加或者更改内容,记得酌情索要一些人工费,不要亏待自己。
后记
整个流程里,沟通是最重要的,谁会写代码呢?但是老板肯定觉得没问题,有什么问题或者不合理的地方,最好尽快沟通,不然后面问题只会越来越大。
我最近刚做完这个项目,说实话没赚多少钱,甚至还小亏了。而且老板好像有点拖欠工资,中期工程款拖到项目交付了才付,工程尾款到现在还没付。不过还好合同上写了如何处理,所以不担心他不付钱。
(虽然不知道哪里有靠谱的私活,不过大家可以先把这篇文章存起来,等会找工作的时候可以翻看)
最后希望大家都能找到很好的私人工作,也祝愿大家都能早日实现财务自由!