2013这一年值得总结的有两方面的事情:一是技术分享和收获,二是创业感悟。
技术分享
我这一年在技术分享上投入了更多的时间,也得到了非常大的收获。
我主要的技术分享渠道包括:
个人博客。今年一共完成了24篇原创博客。相比于去年的36篇,少了很多。主要是因为很多精力分散到微信公共帐号上去了。不过今年文章的质量相比去年更高了,写了包括《Objective-C对象模型及应用》和《谈Objective-C Block的实现》这类比较深入的文章。
InfoQ网站 。今年一共完成了7篇发表在InfoQ 上的稿件 , 其中原创技术文章4篇,翻译技术新闻1篇,采访稿2篇。
- 我的微信公共帐号:iOSDevTips,从2013年2月21日起,我坚持在这个微博公共帐号中发表iOS开发相关的技巧和文章。有时候是发送自己的文章,但大多数时候,都是一些别处看到的不错的分享转发给大家。坚持到现在快一年了,该公共帐号积累了5600名粉丝。我个人通过该公众帐号推送了140条iOS开发相关的文章。如果你做iOS开发,欢迎扫描下面的二维码关注我的公共帐号。
- 我的微博@唐巧_boy ,基本保证了不谈别的,只谈iOS开发。粉丝虽然没怎么涨(现在4400多粉),但是现在我的微博常常可以转发上百。2013年发了996条微博,总共被转发10120次,平均每条微博被转10次。这让我有一种莫名的感觉:我这个算是大号么?
- 技术分享会。主要做了3次:
我主要的收获包括:
认识了大量的iOS开发同行,从他们身上我学到了很多知识。我再也没有刚刚创业时一个人做iOS开发的孤独感了。遇到问题时,除了google和stackoverflow外,实在不行也可以找小伙伴们求助。
因为向InfoQ投稿的原因,我有幸成为了InfoQ的兼职编辑,也认识了包括池建强、张龙等喜欢写作的大牛,交际圈子一下子扩大了不少。InfoQ时不时组织的编辑聚会也让我获得了一个了解大家不同声音和意见的渠道。对于一些行业信息,这种聚会中的小道消息总是比官方新闻要真实和靠谱得多。
InfoQ为编辑和讲师专门做了一次演讲培训,让我关注到自己从未注意到的领域,也珍惜起每次演讲的机会,努力提高自己的演讲技能。
因为写博客的关系,今年还持续收到来自出版社的约稿邀请,其实我一直想写一本iOS进阶开发方面的书,也一直在通过博客积累书稿的素材,所以最终水到渠成。我选择了和电子工业出版社签约。出版社的张老师永恒的侠少 也特别的开明,使我几乎没有写稿的压力,能够平衡好工作和写作的时间。希望在2014年,这本书能够和读者见面。
影响力变大了。以前我发一条微博,没有人转,现在随便就超过10次转发。有了影响力之后,大家有什么iOS开发的消息都会主动@我来求转发,使得我可以获得第一手的iOS开发相关的推荐。另外,当我说错什么话或者犯傻的时候,马上就有人来纠正我,使得我能够很快进步。
创业
创业流水帐
2013年我们改变了方向,慢慢关停了粉笔网,然后专注地做猿题库相关的开发和运营。作为一个创业者,我一开始就有创业不顺利的预期,所以这次调整还是挺能接受的。不但能接受,我还非常佩服CEO李勇的果断,我们在粉笔网上几乎没有耗费什么过多的精力,就全力投到新项目猿题库上面了。
因为猿题库这个方向被证明还可行,所以2013是忙碌的一年,找到目标之后就是赶紧开发,我们在2013年春节上线了猿题库行测后,又花2个月上线了猿题库司考,之后花1个半月上线了通用课程平台。通用课程在7月1日上线,我们通过通用课程平台发布了猿题库考研政治、证券从业、初级会计、法律顾问、一级建造师5门课程。
之后我们又花了1个月完成了猿题库iPad版的开发。我们选择了将App做成Universal的形式来发布,使其能同时支持iPhone和iPad。
9月份我们发布了猿题库高考,之后我们将之前单独定制的猿题库行测和猿题库司考客户端融入到通用课程的项目中,使我们最终只用维护一套代码。
再之后,我们进入了功能改进阶段。其中比较大的事情包括增加夜间模式,字体调节,搜索功能,离线下载,数据缓存逻辑。
我们还将之前花大力气做的扫描答题卡功能去掉了,因为我们认为用户如果有精力在纸上填涂答题卡的话,还不如直接在手机上录入答案更为方便一些。虽然我之前在这个功能上耗费了大量精力,但我还是挺支持这个决定的。
最后,我们在年底前顺利拿到了B轮融资。
工作效率与身体
我感觉通过番茄工作法和Rescue Time软件等软件,我已经将个人效率提高到极致了。我常常可以保持在电脑前面连续coding几个小时不分神,有些时候眼睛都发酸了,才想起要休息。另外,由于长期运动较少,我的肩膀问题比较多,动起来都会响。所以我不打算再提高效率了,再提高的话可能也不能提多少效率,而且会伤害身体。
我们团队也尽量保证晚上不加班的文化,所以身体还算吃得消,就是锻炼太少了。圣诞节的时候朋友回国,帮我带了一个Fitbit Force,希望通过它提醒我每天坚持运动。
个人能力的提高
随着自己在iOS开发上的积累,在开发上的提高越来越慢,大部分的开发工作对我来说都不太有挑战了。而开发任务排得相当满,几乎没有留给我充电和学习的时间。我还是一个喜欢让自己一直处在学习状态的人,所以基本上就只有利用晚上和周末的时候来学习和积累了。
写作和分享是一个很好的激励方式,促进我通过发表文章的方式完成新知识的学习。不过这其实挺不能长久的,我还是希望是在工作中学习和进步,因为每天分配给工作的时间是最多的,业余时间毕竟相对较少。
我想对于创业的各种苦来说,这算是一个吧。对于这种苦,最好的解决方法就是努力让公司做大做强,只有公司做大了,你才有机会招更多人,同时做更多更有技术含量的事情。
拆分scrum团队
随着团队人数的扩张,我们尝试了一次全体参加的计划会议,结果发现效率很低,于是我们将原来的srcum团队拆分成了2个团队,一个客户端团队,一个服务器端团队。团队拆分保证了每个团队都在10人以内的规模,沟通和讨论的效率都高了很多。强烈建议有同样困扰的朋友们尝试一下拆分团队,确实能使得会议更加高效。
优化发布速度
我们从产品进入优化迭代期开始,尝试进行每周发布一个Beta版本的发布。Beta版本通过我们的论坛发布,越狱的iPhone用户以及Android用户可以通过论坛下载到最新的Beta版本。每完成4个Beta版,我们会将功能提交到AppStore审核。
每周一个Beta版本发布有利于保证质量,因为相比以前一个月一个版本的提测速度,测试可以尽早介入到新功能的测试中,有助于提早发现和修复bug。
但是每周一个Beta版本其实是压缩了开发时间,因为需要留时间给测试同事测试以及修复bug,以及最终要和服务器端配合上线。每周真正的开发时间通常只有3天半。
大部分时候,我们都会由于时间紧迫造成提测时间较晚,最终又造成修复bug时间不够,于是每周都会有一两天工作到很晚,上线Beta版那天,常常会到晚上10点以后,把实在没精力修复的Bug Later掉,才能完成上线。这样的状态非常伤身体,这段时间也是我比较难受的时期。
每周一个Beta版还有一个问题是无法保证那种大功能的开发,例如我们做离线下载功能,3天半根本无法完成,于是只能将这个功能在两周后的Beta版中提交。这又会涉及多分支的开发和管理,分支间来回切换,又会降低一些开发效率。
整体来说,每周一个Beta版的发布有利于保证产品质量,但是会造成整体的开发进度稍慢于每2周或每月一个版本的发布。如果又要保证开发进度一样,每周的Beta版发布将带来更多的加班工作。
控制自己的情绪,找准自己的定位
我有一段时间过于有责任感了,感觉什么事情都应该关心,特别是项目进度。那段时间,我长期处于无法保证按时上线的焦虑状态,并且对产品和美术的调整异常敏感,因为他们的一句话,就表示我又要加班了。
我花了很长时间去转变自己对于项目按时上线的态度,现在,我更加关注自己做为开发者的身份,而不再过多考虑项目在进度上的问题。
当我发现我不再关注进度时,我的开发效率反而提高了,因为心情不再过多地受到进度或需求调整地影响了。这件事情也让我想清楚了要找到自己的位置,不应该为自己不能负责的事情而焦虑。专注于自己能改变和努力的地方,其它事情就应该相信对应的负责人,让他们来操心。
创业对于人心智的磨练还是挺大的,我相信我以后会更加容易控制自己的情绪和行为。
其它
读书
今年读的主要是iOS方面的书籍,包括如下这些,其中重点推荐《iOS 7 Programming Pushing the Limits》
- 《iOS 7 Programming Pushing the Limits》
- 《OpenCV 2 Computer Vision Application Programming Cookbook》
- 《Cocoa设计模式》
- 《黑客攻防技术宝典·iOS实战篇》
- 《Web之困:现代Web应用安全指南》
- 《Objective-C高级编程:iOS与OS X多线程和内存管理》
- 《七周七语言》
- 《不抱怨的世界》
感谢
2013年有很多贵人帮助,自己才能快速成长,在此感谢2013年陪我一起走过的家人和朋友,和我一起努力的公司同事。
特别要感谢的是:体贴的老婆和岳母大人,宽容细致的老大郭常圳,iOS开发群里的小伙伴(特别是Lexrus),InfoQ的老大Kevin和编辑杨Sai、水哥,MacTalk作者@池建强,小道消息作者@Fenng,@永恒的侠少,@gaosboy,@neat爷,张兰。谢谢你们~
个人Milestone
- 开始写iOS开发的书
- 创业得到了B轮融资