winter-fall / Bye2015Hi2016

292 stars 18 forks source link

2015.爱拼才会赢@jayfeng #52

Open openproject opened 8 years ago

openproject commented 8 years ago

一、从变老说起

“我能想到最浪漫的事,就是和你一起慢慢变老”,歌词写的倒是浪漫,但是现实很残酷,面镜而视,今年老的最多。主要是长期熬夜,不运动,加班造成。以前也这样,但之前没这么严重,现在开始爆发了,国庆回家见老妈,着实被骂的一惨,你比你爸看上去年纪还大,嚎啕大哭!

搞移动端这行的同学,这两年个个打了鸡血,拼命三郎,拼命四郎,拼命五郎的,都太厉害了。我也在这个行列,常常“忘我”的工作(其实更多的是追电视剧,追小说),愿我在前行的路上别忽视了健康。

不求活的长久,但求别挂的太早!

二、2015年的流水账

跳槽

年前在某创业公司负责电视 rom 开发,因为业务原因,电视不是你想做,想做就能做的,转而做一些应用,包括应用商店,支付 SDK,电视上的 Launcher 和电视上的应用商店,另外还研究了一下 dlna(遥控器,多屏互动),这其实是 2014 年的事情,不多说。我想表达的是,这些真的是我想要做的产品吗?我觉得不是。

于是年后和领导沟通,能不能把年终奖发一下(当时把我从某厂忽悠过来说是有的),结果是一毛钱都没有,吧啦吧啦吧啦,还是没有!钱也没有,发展也不是想要的,离职不?

抽空出去打探了下行情,面了几家(主要是创业公司,BAT 类公司我已经不想去了,做了四五年了,不想再只是做一个模块,一个技术,一个螺丝钉),问题不大,正巧我以前的一个同事找我,要搞一个项目,抽空过去看下,公司注册中,待遇不算最好,但也可以接受。最重要的是,成不成,一年之后见效,不会像某些产品或者项目耗费多年,在需求中挣扎,在维护中麻木,最后忘了初衷。于是决定,不妨一试?

何妨一试!

因此加入了我现在的公司。

好消息

老婆怀孕了,喜!

做一个什么样的产品

接着说公司的事情。 我 4.15 号入职,4.14 我还在上一家上班,也就是说,中间没休息一天,为什么?因为钱! 当然还有我对新的创业项目的激情。 这个创业项目是一款社交产品,类似于陌陌,但没有那么复杂,当然,如果能做到那么复杂最好了,老板心里肯定是这么想的。 从技术的角度看,就是实现一个用户+聊天+支付+各功能模块的东西。 老板就一个要求,速度要快。 领导也一个要求,能不能再快点。

两个月的魔鬼加班

进展要多快,不是靠说的。

如何估算出一个既让领导满意又让自己勉强能接受的时间?那就是,把一条条工作量仔细列出来,一一评估,不考虑卡住的时间,就是一个中间值。卡住的时间和其他沟通或者需求变化花费的时间靠加班来弥补。说起来很残酷,谁说不是呢?

两个月,我的评估。

是两个月上线,也就是说一个月就得把功能基本开发完成。

当然,这里得承认,从零开始的项目对我来说,充满了特别的激情:都是新的,大刀阔斧的干吧!

我想用两个 for 循环来表达我接下来的工作状态:

for (Date date = 4.15; date < 5.20; date++) {
    if (date == 工作日) {
        // 工作日就得工作
    } else {
        // 非工作日按工作日处理
    }
}

for (Time time = 0:00; time < 24:00; time++) {
    if (time < 2:00) {
        // 玩手机 刷微博 看小说
    } else if(time < 9:30) {
        // 睡觉 被闹钟吵醒 挣扎 飞奔公司
    } else if(time<18:30){
        // 需求 代码 接口不对 代码 需求不对 代码 UI 不对 代码 不断 crash 我擦 去吃饭 代码 ……
    } else if(time<24:00){
        // 我擦,下班了 代码 接口不对 代码 需求不对 代码 UI 不对 代码 不断 crash 代码 ……
    } else{
        // 老婆你先睡 我等下就睡
        // 算了 收回上面那句话 别吵醒了她
    }
}

第一时间把主框架搭起来,接下来就是往里面塞砖,快,快,快,擦,不对,Fuck,快,快……

又两个月的魔鬼加班

产品基本完成,公司奖了一台 iPhone6,拍照发完朋友圈,然后送给老婆。

老板看数据,看反馈,改,改,改。

产品经理看竞品,规划二期,加,加,加。

此处省略两个 for 循环。

再两个月的魔鬼加班

突然发现竟然习惯了魔鬼加班,于是惯性的又执行了一下两个 for 循环。

步入正轨

数据显示,新功能并不一定能提高付费率,相反,往往会拉低付费率。回退版本!

这是正常的,谁也不敢说什么功能一定有用。

于是我们被迫进入微调时代。也意味着,工作量得到一定的控制,重点开始着重代码重构,性能优化,工程改进等。

一句话,步入正轨!

三、团队小结

随着新同事的加入,移动开发团队规模已经发展成 android 和 ios 各三人。

招聘

没有统计看了到底几百份简历,面试了到底几十个人,也经历过假简历,招聘一个能做事的人并不容易。做事的标准就是,一个能思考着的解决问题的有基础的人。有基础代表能上手,思考代表潜力,解决问题代表动手能力。也许是这个要求太高了。甚至绝大部分人卡在第一关,select 语句都写不出来,加个分页没几个人知道,认为 sql 语句只要百度一下就能写出来。悲zhai呜呼!

当然,其中也不乏一两个比较优秀的,但招聘是一个公司和个人的双向选择,得对上才能成!

幸运的是,最终也是组成了一个勉强还行的团队。

任务分配

任务的分配,其实是个经验活。自己不能独干,但也不能撇清,最难的是把握这个度。这里谈一点自己的看法。

1. 工作量评估。

工作量不可评估的太紧,也不可评估的太松。太紧,领导满意了,但是团队难免会心生抱怨,负能量,太可怕。太松,团队没压力,工作效率容易变低,而且容易催生懒惰情绪,最重要的是,领导不高兴了!

有了这个基调,评估的重点就是把需求挖出来,一条一条,明的,暗的,难的,简单的,捋清楚,至少做到心里有数。一方面能更准确的评估,另一方面你可以一直保持对其中难点的留意,而难点问题才是导致项目delay或者卡住的第一凶手,随时准备,平时刷微博,看博客的时候说不定有惊喜,这样就可以大大减少项目delay或者卡住的风险了。

2. 早会。

敏捷开发既要早会,还要晚会。

考虑到公司实际情况,我只做早会。花五分钟到半个小时了解进度,把任务分配好,同时捋清昨天大家碰到的问题,讨论更好的解决方案等等。

另外,还会花半个小时做技术分享,后面细讲。

其实,早会也是团队沟通的一个有效方式。

3. 我们是一个团队。

我觉得一个团队的任务分工不应强求责任明确,而应该相互担当,彼此互补,切忌各扫门前雪。一方面能在碰到紧急情况,彼此能照应,避免有的人很闲而有的人很忙的矛盾现象;一方面,促进团队成员彼此的交流,整体提高代码质量,我们就是一个TEAM!

4. 因人而异。

不同能力的成员,所能承载的工作难度应该不一样。这个点在于,在任务分配的时候就把合适难度分给合适的人,而不是事后完成不了再转手,工作转手其实是极大的浪费人力资源。

有潜力的同学,就让他多做些偏研究性的;动手能力强的同学,就让他多做些偏难度的;缺少追求的同学,就让他多做些偏工作量的……

技术分享

一个好的工作环境,除了好的待遇,必须有好的成长。

每天早会,我们拿出半个小时安排技术分享。为什么不是每周每月做技术分享呢?我觉得技术的沉淀是一个日积月累的过程,而现在的移动技术发展也是斗转星移,每天做个了解是很有必要的,哪怕一个概念,一个新技术词汇,一个关键的基础知识点,一个想法,都是一种进步。我希望他日大家蓦然回首,突然惊喜的发现,不知不觉竟然学到了这么多东西,基础竟然变的扎实多了。对,要的就是这个惊喜! 从经验来看,半个小时往往是不够的,偶有超过 2 小时的,所以,当碰到版本发布,或者任务紧急,或者耗时需求,或者梳理代码的时候,必须得暂停一下技术分享。

从实践结果看,团队对技术分享是比较积极的,是大家想要的一种形式。确实如此,2015 年,我们从语言聊起,聊了命令式和声明式,聊了函数式,聊了响应式,聊到了面向对象的设计原则,聊起了 23 种设计模式,创建型、结构型、行为型,并用 swift 手打了一遍,也手把手介绍了 git,vim,CI,linux,还分享了大家开发过程中碰到的常见问题和一些性能优化的点点滴滴,也分享了 mvc,mvp,mvvm 这些常见的架构模式,也分享了 andoid 和 ios 的编码规范,也讲解了贝塞尔曲线的使用……

现在问题来了,明年我们聊些啥?敬请期待(我个人这边会和大家聊聊 android rom 开发,java 虚拟机,区块链,一些小算法,各种动画的实现……,当然,我还在学习中^_^)。

四、个人小结

技术

实际上自从前几年搞 rom 开发之后,我一直都浑浑噩噩,我不否认这个过程中的进步,但是我确实忘记了问自己一个问题,我在进步吗?现在我会问了,今天我进步了吗?这周呢?这个月呢?

真要说起技术点,还真不好列,但确实不够深入。

另外,在这里必须感谢@高爷,虽然没见过面,但是从这些人中看到了国内android的一大批中坚力量,时刻在鞭策着我前行……

最后,搭建了自己的个人博客:www.jayfeng.com

生活

不要随便和一个程序员谈生活。

因为,一个字,屌丝!

而屌丝的一个特点就是,喜欢发烧(注,发烧并不代表屌丝,所以别乱喷我)。

1 月,树莓派。 2 月,240g 三星 ssd 3 月,macbook pro 4 月,红米 2 手机 5 月,穷 6 月,穷,还没缓过来 7 月,缓过来了,留着交房租 8 月,kindle voyage 9 月,AfterShokz 2S 骨传导蓝牙耳机 10 月,小米蓝牙音箱 11 月,锤子黑色版坚果手机 12 月,德生牌收音机 PL-880

五、结束语

2016,还得继续写代码,且行且珍惜。

最后,做一个好爸爸。

okernel commented 8 years ago

祝你2016年,事业、家庭两丰收!

shinyjacklee commented 8 years ago

:)工作和生活美美的