从2016年3月份加入ThoughtWorks以来,已经过去了十个月的时间。从最初的激动,到逐渐的适应,这其中有一些感悟想要与大家分享。
初识P3
在新人入职培训中,公司的HR介绍了ThoughtWorks的三个支柱。也就是:
- 可持续化的业务
- 追求软件和技术卓越
- 提倡社会和经济公正
ThoughtWorks所做的每一件事、每一个决定都是从这个三个支柱出发的。
当然每个公司都有自己的使命和主张。例如Google想要“整合世界的信息”,让其更有效的被人类利用。Facebook则致力于“让人们可以更加有效的分享和联结”。每个公司无论大小,无论是否被总结成文字,都有自己的使命,只不过有大小之分罢了。
ThoughtWorks的前两个支柱都很好理解,我们追求可持续化的业务,我们追求软件技术的卓越。例如我们定期会发布技术雷达,为行业提供技术选型的指导。我们为客户提供敏捷软件工程方法,提高客户的软件工程质量。但是ThoughtWorks将“提倡社会和经济公正”作为自己的使命之一,而且写出来说出去,在之前我并不是十分的理解。追求社会和经济公正,在一个国家来说,不应该是政府应该做的事情吗?如果提到“人类”的高度上来说,那不应该是联合国应该做的事情吗?会不会是仅仅说说而已?
很多大公司也做慈善,比如说会捐献一些善款,组织一些公益活动。当然这些都是很好的回馈社会的方法。但ThoughtWorks的做法的确不同,公司更多的是利用自己的技术,来推动和影响社会和经济公正。ThoughtWorks与很多NGO组织合作,利用技术的手段来帮助他们提高IT能力,让他们能更高效的完成工作。ThoughtWorks组建的思沃学院,为在校的学生提供更多技术指导和培训,帮助学生成长。当看到这些以后,我慢慢的觉得,公司的P3好像并不是仅仅的说说而已,而是尽自己的能力,来改变一些事情。实话实说,这种冲击对我来说还是挺大的,但更大的冲击,是来自于我看到了“心声”这个APP。
缘起
“心声”是ThoughtWorks西安办公室的开发人员,利用自己的业余时间,做出的一款帮助聋哑人与正常人交流的APP,可以让正常人的语音转换为文字,帮助与聋哑人交流。这是我之前根本不会想到的事情,当我看到身边的同事,话费着自己的业余时间,利用自己的技术,在实实在在帮助聋哑人的时候,感受到P3文化已经融到了TWer的DNA里。在这家公司做这样的事情,是一种自然而然的事情。那么我又能做点什么呢?
直到有一天看到一篇报道文学,讲述是中国人口老龄化,农村和城镇的空心化,产生了大量的留守老人。有一些老人长期无人照顾,在突发疾病时容易酿成人间悲剧。具体的我就不详细描述了,因为是实在是太过悲惨。感慨万千一番,我想,自己能做些什么,哪怕能带来一丝丝的改变?
我改变不了中国城市化的进程,无法让大城市的年轻人能回乡照顾自己的亲人;
我改变不了国家的户籍政策,无法让这些留守老人在大城市与自己的子女团聚。
我也改变不了现在的养老行业,无法让留守老人都住进养老院里,使之得到基本的照顾。
但是我可以做的是,利用自己的技术,帮助他们在生命紧急的关头,发出求救的信号。
开始
产品梳理
基于这样的想法,我与身边的小伙伴一起商议得出了一个成型的方案,简单来说就是开发一个APP,搭建一个平台。在一个城市、一个社区,或者村庄里,招募志愿者。同时开发老人端的APP,和一些硬件设备,比如说手环、手表等等。当老人发生危险或者需求救助的时候,他可以按下这些设备上的救助按键。那么这个救助信息就会在平台上发布,附近的志愿者就能看到,从而在最短的时间内能提供救助,避免悲剧发生。当然这只是一个初始的想法。紧接着我们就做了一次User journey,梳理了对于我们最为关键的需求点。
理清楚需求后,按照优先级划分好任务,并建起了我们的项目看板,追踪项目的运行情况。
技术选型
产品需求梳理好了以后,下面的问题就是如何进行技术选型了。第一个问题就是由于我们都缺乏相关硬件知识,在考察了市面上现有的手环之后,并没有发现可疑提供SDK让我们直接利用的。又想到了Apple Watch,但是考虑到高昂的价格并不是一个最好的选择。于是乎,还是决定再做一个针对老人的手机APP。
同样因为我们的Mobile开发经验并不是特别的丰富,于是选择了React Native。并设计出了我们的系统构架图。
由于迟迟没有找到一个合适硬件产品来触发求救信息,让我们始终觉得这还不是一个真正可用的产品。终于有天,公司广发英雄帖,召开技术大赛。并在邮件中介绍了一款AWS刚出的硬件设备——AWS IOT Button。这让我们都眼前一亮,这不就是我们要找的东西吗。简单来说IOT Button的按键可以trigger AWS上的一个lambda。有了这个,后边的事情就是我们的强项了,于是乎立马报名参赛,并购入了IOT Button。
产品实现
下面就进入到了具体开发的阶段,充分发挥每个人的特长。虽然大家都是开发,但是有人有UX的特长,有人有mobile的特长,大家各尽所能,发挥自己的特长,让这个产品越来越好,首先就是UI设计。
React-Native可以说是给传统的APP开发带来了新的方式,可以让传统的web开发人员快速实现产品。但同样也带了不少问题,例如API的变化,第三方组件的支持,好在我们的产品场景相对的简单,所以使用ReactNative还是一个比较好的选择。
同时救助者的实时位置同步也是一个比较大的挑战,我们可以在自己的后台的实现一套消息队列的服务,来做位置同步。但是最终我们使用了市面上成熟的实时数据同步服务,来快速实现产品。
目前产品已经进入了后期开发的阶段,小伙伴们在进行最后的优化,期待能在最后技术大赛的showcase里拿出一个能够成行的,可以真正帮助到老年人的产品出来。
为什么做这些
从初始想法的生成到如今产品的逐渐成型,我们花费了不少业务时间,有朋友问做这些事的意义是什么?其实我现在也说不好,在加入ThoughtWorks之前,遇见一些社会事件,可能最多就是捐点钱,在网上转发转发、评论评论。加入了ThoughtWorks后,看到了很多、也想了很多,自己也想真正做些东西出来让这个社会变得更加美好一些。
更多精彩洞见,请关注微信公众号:思特沃克