去年年底的时候,前后收到来自宁皓老友的两份邀请,我感到无比荣幸,开心了好几天,宁皓老友们真的是藏龙卧虎啊,个个都有所为。当时我正在准备今年的训练营,宁皓网需要我持续维护,新宁皓也得继续开发,所以婉拒了这两份邀请。
阿强:皓哥好,接触你的平台有4年多了,我这边是深圳的一家公司,现在打算挖一位技术总监,年薪XX万上下。很欣赏皓哥,不知有没有意向。
小智:王皓老师你好,想和您合作一个海外项目,我叫小智,16年在国外读硕士期间学习您的课程加了微信,毕业后留在当地工作,看到海外市场机会挺多的,所以今年组织了一个团队,有来自字节网易的开发小伙伴,还有负责融资的会计事务所,为了进一步保证产品质量,想邀请您加入担任团队CTO ...
阿强运营的是一家软件公司,很惊讶他们的发展速度,两年前,他的公司成立三年多,当时他们要成立新的公司做农业相关软件,想拉我入伙,我也是婉拒了,后来又包给我做几万的项目,两年以后就多了一个零,再过两年是不是又会多个零呢,到那时我得再好好吹一吹了😋 。之前想请他写篇小文介绍一下公司的发展,不过因为他当时要跟团队外出考察一段时间,所以就没再打扰,毕竟创业者的时间都太宝贵了。
小智要做的是创业公司,主要用户在海外。我当时回小智道:感谢邀请,荣幸至极啊。不过我最近也有一些要做的事情,嘿嘿,不知时间是否安排得开。远程吗?要不我暂时就先不参与了,先得把我自己手里的事情处理干净,不然也做不好。小智:我们找个时间可以先视频聊一下,也大概清楚您可能平时也比较忙,但是项目和团队本身还是很不错的,觉得您很合适,所以想具体聊一下。
我想聊聊就聊聊吧,也看看年轻人都在想什么,于是回道:嗯,好的。您定时间,聊聊天 [呲牙] 。第二天我们视频聊天,认识了两位发起人,小智是开发者,小策主要负责商业部分,写写商业计划,对接当地会计事务所与融资机构等等。我对他们俩的第一印象都挺好的,年青,热情,有愿景,演讲能力也都十分了得,如果我是投资人当时应该会马上掏钱给他们。
有宁皓老友的情谊在,项目本身有意义,优秀的团队,可以兼职,又能远程,所以就决定加入协助团队搭建应用架构。我当时正好也在准备全体系应用架构相关的课程内容,正好也能用得上,经过实际应用,也证明了我设计的这套内容足以应对初期的创业需求。
去年十二月初加入了小智的团队,团队有一部分成员在海外,包含两位发起人还有设计组的成员,开发团队主要在国内。我跟小智还有来自字节的一位小伙伴主要负责前端。在我加入之前,设计组已经在 Figma 上面基本完成了应用的设计,当时移动端是小智他们用 React Native 做的几个页面,服务端用的是 Java(Spring Boot),后来我们经过讨论,移动端换用了 Flutter,服务端换成了 Node.js。
起初我得到的任务就是搭建好移动应用的框架,因为当时只有几个基本的服务端接口,所以只能在本地搭建假服务来做。假服务是我自己根据设计图搭建的,这其实也是需要花时间来设计的,要模拟应用里的各种数据,以及相关的属性,后期我需要根据服务端做好的接口重新调整之前做好的界面。
搭好应用框架以后,又全凭自己的理解做了一些界面,往后我就不知道要做什么了,因为我得等有了服务端接口以后,再把它们用在客户端这里。中间停了一段时间,没啥动静,后来我知道原来后端的兄弟们也不知道要做什么,前端等后端,后端也在等。
有一天小智跟我单独聊了一下,他说其实也不是后端开发的慢,可能是他没有讲清楚让后端具体去做什么,所以就一直拖着,他说不然我们就由前端来主导开发,也就是我要根据应用的设计图,提出需要的服务,后端再根据需求去实施。这时我才意识到,原来这里少的是一个系统设计阶段,就是在客户端与服务端动手之前,最好先能确定一个基本统一的规范,也就是先把要做的这个系统用文档的形式表达出来,前端与服务端都可以参考这套东西。这可能对大部分参与过团队合作项目的同学们来说是很自然的事情,但这对我来说还真是没有想到的,我以为大家天然都知道要做什么。
我以前是没有这种意识的 ,因为对于独立开发者来说,从设计系统到设计图,再到后端与前端,这些全部都是一个人干的,也就不存在协同的问题。我认为这个系统设计阶段还是相当有必要的,甚至可以把这部分放在以后的课程内容里,因为如果大家在学习开发之前,已经理解了要学习开发的这个系统的运行逻辑,就能更容易理解课程的内容。
虽然我已经知道要以前端牵头主导开发进程,不过起初我还是挣扎了一段时间,可能是觉得沟通起来太麻烦了,我来告诉后端哪里要改,他改完以后我再测试,来来回回太麻烦了,所以我就想有这个功夫我还不如自个儿干了这事,于是我就开始用 Node.js 搭建服务端应用框架。后来龙哥的加入,才让我意识到团队协作的价值。
今年一月的时候,小智又找来一位队员,我们暂且称他为龙哥吧。龙哥是海外一家大型公司的领队,人狠话也不少,第一次开会的时候他的一句话点醒了我,他说他的任务就是快速响应前端需求,做出前端需要的接口。哦,我这时才转过弯来,之前担心的来来回回的沟通问题可能并不是问题。我只需要按自己的想法,把需要的接口用某种方式表示出来交给他就可以了。这次会议我们还确定了要将服务端从 Java 转到 Node.js,我建议用 Nest 这个应用构架,龙哥也说没问题。
我面对的新问题是要用什么方式说清楚我要的服务,我就开始搜索有没有接口设计工具,不找不知道,一找一大堆,Apiary,Swagger,Spotlight,平时用的接口测试工具 Insomnia ,Postman 这些东西都是可以的。不过新的工具总会带来新的问题,学习适应它们都要花时间,后来我决定就用最简单的工具,就是普通的文档。
我开始在 ClickUp 里面创建一些接口文档,虽然不够规范,但是可以足够清楚地表达我的想法。根据应用里的资源可以划分成几个不同的文档,每个文档里先简单描述一下功能的业务逻辑,主是就是用户在做什么的时候,应用应该怎么反应,服务端在什么情况下应该做出什么样的响应等等。然后用简单的 YAML 格式就可以将需要的接口表达清楚,比如请求用的方法,接口地址,参数,请求里带的各种数据,服务端应该给出的响应等等。几天以后我把文档交给了龙哥,让我意外的是,没过多久他就做好了一些。
因为主要用户在海外,所以服务都部署在 AWS 上面,我在客户端这里可以直接使用部署好的开发服务。随时遇到问题或者有新的需求,我会在 ClickUp 上面创建任务,描述清楚问题与需求,龙哥一般都能快速处理,因为任务在处理中与处理完成时都会改变状态,所以我能清楚的知道哪些东西正在做,哪些已经完成了,再配合使用微信群,我认为这是一套比较高效的沟通与工作方式。
兼职+远程+创业是否可行?我想先分开说一下,首先“远程” 肯定没啥问题,现在的团队协作工具越来越强了,沟通损耗也小了。不过这需要项目的发起人事先设计好一套沟通与解决问题的方案,我认为任何技术公司都应该准备一套这样的方案,以备不时之需。这点小智他们做的挺好的,确定使用 ClickUp 分配任务,Figma 做设计,每个周末大家还会花点时间在线上开个小会聊一聊,一开始我觉得开会没啥必要,随时在微信群里讨论就行了,后来我认为是有必要的,重点其实并不在开会讨论的内容上,更重要的是在团队的心理建设方面会起到积极的作用。
团队成员平时都有自己的工作,大家基本上都是在用工作以外的时间兼职来做这个项目,这是否能成呢?如果不考虑期限的话到是没啥问题,但如果应用必须要在一定时间以内上线,兼职做是非常困难的。像在字节的那位队友,经常要加班到晚上八九点,哪来的时间做额外的工作。我不知道龙哥是怎么做到的,我在任何时间段提出的任务,他都能快速响应,难道是外国公司的技术领队平时不用干活吗?我也是兼职来做,但因为自己的时间安排比较自由一些,而且我有一旦起动就很难停下来的毛病,所以用掉了大量的时间,如果按正常的兼职来做,可能得持续半年才能完成现在的进度。
最后我们再说一下创业,能不能成?我先分享个小故事:Airbnb 的两位发起人都是设计师,他们的 CTO 当时也是兼职的。几乎所有投资机构都不看好这个项目,认为想法忒疯狂了,“让陌生人睡在自己家客厅的沙发上?”。最终是因为一盒子麦片成就了他们,两位发起人在弹尽粮绝之时,决定为当时正在进行的大选设计一些麦片的包装,换来的钱又全部投到这个项目里,有一次他们去见投资机构,结果对方依旧对这个项目不感兴趣。
两位发起人灰溜溜走出了公司大门,忽然又想起他们给投资人带的礼物忘了给人家了,就是他们设计的那盒麦片,于是折返回去把麦片递给了投资人,这位投资人听了他们的故事以后,就决定要投他们了,理由就是他认为两位发起人能够不断地想方设法要做成这件事,这份坚持最终打动了投资人。去年 Airbnb 一年的收入是 96 亿。
所以创业能不能成,我认为这完全要看发起人的意志,既然都做出选择要创业了,努力攒出一支队伍,大家都投入了时间与热情,就没有回头路了,就得创到底,所以这事就得能成则成,不成也得成。兼职+远程+创业是否可行?可行,但是必须全力以赴!
评论
每次看你的文章都有热血沸腾的感觉:)
2 年 8 个月 以前