目前,移动开发很火,很多个人开发者都在独立开发应用, 有些甚至接单利用业务时间开发App。这些本人都经历过, 其中的酸甜苦辣只有自己真正清楚,唯一的甜就是拿到Money的一刻, 更多的是累、郁闷。
背景:
同学说了接了一个项目,开发一款Android App, 看我有没有意愿参与。那时候,我正在学习Android开发, 自己之前也做个两款非常简单App, 变爽快的答应了。 碰面后, 说是参考现有市场的App开发,功能点就在一张A4上面, 包括Teacher 版本+ Fmaily 版本。
Teacher 版/Fmaily 版功能点大概也各15个页面左右。包括常用登陆、注册、列表、详情、聊天(参考已有代码框架)、消息提醒等等功能。功能都简单的核对了一下,要求两个月做完。虽然知道时间很紧, 但我想抓紧点没问题。结果,后面悲剧了。
一、为某一个公司开发两款App(Teacher 版本+ Fmaily 版本)
1、任务:Android 客户端 + IOS 客户端
2、人员:一个Android客户端(me) + 两个服务器开发人员(C++) + 一个IOS开发人员, 美工由公司新招的MM负责。
二、开发
前期, 我们用了两个星期, 在某一款App上面进行移植工作,把相同的一部分功能简单移植过来, 包括聊天这一块。就这样Fmaily 版本的基本骨架出来了 。
两个星期之后, 公司MM发了几张原型图片过来, 让我们先按照图片先做着。然后, 我就利用晚上和周末的时间赶紧处理了一下, 就这样折腾了3天, 按照原型图片把界面弄出来了,一切都比较顺利 .
再过了一个星期后, 服务器聊天出来了几个接口, 接口的相关协议都变了, 然后我根据协议在原来的基础进行修改, 发现要改的东西太多了, 完全不是想想的那么回事, 改了3个晚上, 程序终于能编译了,但跑不起来。 然后熬夜联调联调接口,加上周末, 连续搞了一个星期。聊天功能基本终于能够跑起来了。这个时候, 自己还能咬咬牙坚持......
之后一个星期, 服务器接口和UI设计陆续处理了, 每天晚上花上3、4个小时实现基本功能, 时间看似挺长,但在大热天的晚上,其实是做不了多少事情......
继续煎熬着, 就这样过了一个月。后来, 公司那边希望一个星期之后给一个demo出来. 这时候我们发现我们整体进度有点delay。 一是服务器接口只出来了少部分, UI 那边也只给了部分, 说是这两天陆续会给过来。 掐指一算, 我们就5个晚上+ 一个周末, 心里想,又得熬夜赶进度了.......
赶上最近公司需求版本多, 在公司已经很累了, 回到家其实已经9到10点了. 回到家根本就不想开电脑, 但没办法, 还是硬着头皮继续奋战, 把一些基本功能完善一下, 每天晚上都2点多睡觉,日复一日.......
终于熬到周末了, 以为可以稍微放松一下, 结果在进行基本功能联调时, 联调那一块进展太慢, 一会服务器不行, 一会程序挂了, 折腾了一天, 只调通了几个接口, 只好短暂的休息会, 和同学一起吃个晚饭( 老婆做的晚饭, 比较丰盛, 就当犒劳我们)。吃完饭以后, 继续奋战, 一直到晚上12点才放下, 此时的自己已经累的不行了. 洗了个澡就呼呼睡了......
第二天稍微睡了懒觉, 起来时已经9点了。 之后便开始coding工作...... 就这样熬了一天, 在晚上2点的时候部分功能终于能用了, 便睡觉去了.
之后, Demo 发给公司, 公司体验了一下, 问题多多, 打回来说是让我们把列举的问题改一下, 下次验收没问题, 付一部分定金. 此时的自己已经疲惫不堪, 对这个答复已经没有喜悦了。
就这样又踏入了紧张的coding.......
每天除了工作还是工作, 回到家话都不想说, 但工作还是得做. 时间一长, 老婆大人有意见了, 影响到休息和生活作息了。 因为最近一个月每天回家都没和老婆说上几句话, 而且老婆大人每天早上7点要起床(8点30上班),而我是9点30 上班。就为这事和lop吵了几次. 我总是说, 家务你多分担一点, 多体谅一下我。 现在想起来, 真是为难老婆了你了!
后面, 这样的生活节奏又过了一个月...... 此时自己已经疲惫不堪。说心里话, 真不想做了, 钱我也不要了, 这次就当做学习了.
最后, 毕竟是同学, 还是坚持了下来, 断断续续又做了2个月, Teacher 版本 和 Fmaily 版本 基本版本也都出来了, 但问题还很多, 但此时的自己已无力去解决这些问题了。
三、总结
现在回想起来, 原本计划2个月做完的, 结果花了4个月才把基本功能做完, 按照这样的节奏下去, 估计还得做两个月。这里总结一下弄得自己狼别不堪的原因吧, 希望给有志于独立开发应用者一些参考。
1、需求功能点太过于简单,只是简单过了一下功能点,想当然认为没问题, 把一切向的太简单,未识别出潜在的风险.
2、评估工作量时, 未对已有功能是否满足要求, UI是否变更, 已有协议接口是否照搬进行确认。 只是想当然的认为改改就可以, 结果等做起来时,完全不是那么回事
3、未制定详细的工作计划和时间安排, 大家都很随意。 服务器接口、UI什么时候处理都没个时间, 大家都是走一步看一步的形式在做事情
4、人为因素:UI设计是一个新手MM, 设计的图片都是简单的固定宽高的图片, 点9图片不会做; UI设计出来晚, 以为就和已有App功能一样。 结果处理时,虽说没大变样, 这里改改, 哪里调调也是件很费时的事情
5、时间因素:大家都是利用业余时间开发, 时间很不可空。 赶上公司任务重, 时间保障不了。
四、梦想
虽然这几个月过的不是人的生活, 但我心里还是有自己的梦想: 做一款属于自己的App。 这不, 又花了两个月过着非人的生活, 做了一款编程学习的App, 欢迎大家下载试用. 后续我会把相关开发心得都写下来。