2周高速开发App的秘诀,CMoney从技术与组织同时翻转开发流程
在投资理财圈,有一家软件科技公司2周就能推出一款新App,短短几年推出超过80款App
,服务超过730万会员,如何办到?不只将核心数据引擎模组化和API化,以敏捷思维翻转
瀑布式开发流程,更展开组织变革,改用矩阵组织和OKR目标管理,奠下快速开发的基础
文/翁芊儒 | 2022-03-22发表
你能想像,只要2周,就能上线一支App?在投资理财圈,有一家软件科技公司,透过超快
的开发流程,短短几年内就推出了超过80支App,服务超过730万会员,从每周活跃人数破
百万的投资社群平台、或是百万人次下载的股市工具,甚至是学校爱用的操盘模拟软件,
都出自他们之手,可说是台湾最大规模的投资工具群。
虽然这些App大多是财经数据分析服务,但要在短时间内快速上线,又能大受欢迎,不是
一件容易的事。尤其十年前,这家软件商服务对象是企业,还是透过传统瀑布式开发流程
,来更版软件服务,很难想像现在只要2周,就能推出新产品,不只技术或人力,更重要
的是根本开发思维的改变。
这家快20岁的财经软件公司,就是CMoney,早年在企业端市场上,推出一款验证投资策略
的软件工具,在法人市场的采用率超过了9成,近年来瞄准一般大众推出的多款投资理财
工具,更有超过400万股民用过。
“我们很早就知道,投资不能靠直觉,每一种投资策略,都需要靠数据佐证。”CMoney数
据应用部总监陈建文指出,根据主观的想法来投资,或是仅参考小样本资讯来拟定投资策
略,在缺乏足量数据的支持下,容易面对投资失利的风险。
影响股票的变因过多,很难预测一支股票的未来走势,但许多法人改采组合投资策略,来
分散单一支股票涨跌的风险,进一步借重大量历史数据分析,更能验证不同组合策略的有
效性。
然而,靠手动捞取数据来分析的速度太慢,跟不上快速波动的股市,等到算出结果,市场
局势又改变了。“能不能把运算过程变成一个工具,来快速告诉用户,该策略过去某一段
时间的表现如何?”陈建文点出开发验证工具的初衷。
如何加速投资策略验证?把验证逻辑变成一套软件工具
这套CMoney开发的验证工具,将股市数据分析逻辑模组化,提供弹性设定分析逻辑、自订
计算公式与筛选逻辑的自助式接口设定。同时,也汇整第一线需求,提供常用投资策略的
功能模组,直接将数据和演算逻辑结合,来提供特定投资策略的快速分析功能,后续更提
供像是视觉化BI报表的功能,让股市分析工具变得简单好用,连不谙技术的分析人员,也
能透过接口设定的方式直观点击操作。
这套软件推出后的几年, 陆续取得了超过400家法人机构的采用,抢下了企业端法人市场
的9成市占。
分别从IT与开发面改造基础架构,转型迈向2C市场
不过,2010年前后,台湾股票数据公开,加上投资理财风气逐渐兴起,CMoney开始思考,
如何将服务企业的模组化软件设计与系统架构,转而符合一般民众的投资需求。
“投资用户投资方法百百种,我们当然心很大,希望每一种都要满足,这个策略体现在我
们的产品上。”CMoney行销暨内容专案总监李湘婷指出,不像企业端需求是All-in-one功
能的软件,对一般民众来说,每个人的投资方法都不同,一款App若提供过多用户不需要
的资讯,就不易获得青睐。因此,CMoney开发团队开始思考如何企业级软件功能拆解、细
化,来发展只有特定功能的投资型App。
除了软件功能拆解是一大挑战,陈建文指出:“从2B到2C,是很大的转型,从服务对象、
用户需求、程式设计与数据拆解,都不一样。”过去服务法人,只有400多家,但去年台
股累积开户数逼近1,200万,潜在的服务对象更多了。
要转而服务如此庞大的用户群,背后面临的技术挑战极其不易,首当其冲的是,原先部署
在法人机构内的软件与服务器,服务范围与人数有限,要支援一般用户每天动辄上百万人
的使用,原有运算资源完全不够。因此,CMoney重新设计了本地端的系统架构,建立了自
己的私有云,以弹性开关的虚拟机,来因应暴增的用户连线需求。后期为了稳定性和可扩
充性,更将机房迁移至标准IDC机房及可扩充的Google云端机房来提高可靠性。
除了IT架构大转变,“我们最早就有一个概念,开发产品时,总不能每开发一支App、就
做一个底层,这样永远没完没了,”陈建文指出,软件开发的特性,要避免成本大幅提升
的前提下,能够支援大量用户,才能有效发挥影响力,所以CMoney的目标,“用较低的成
本、更有效率的方法,达成开发目的。”
为此,CMoney从2010年开始,延续开发企业端软件工具的作法,整合不同的数据模组与运
算逻辑,打造了一个丛集式的数据分析引擎,并以API提供数据存取服务。
“引擎提供最底层的资料逻辑,上面可以建置不同的应用。”陈建文指出,内部开发财经
相关软件时,不必重复开发底层的资料与运算逻辑,只要透过API呼叫模组,即可执行运
算,这是快速开发App的关键基础架构。
甚至,负责不同产品的开发团队,还能大量设定各自独立的API来串接资料,依据数据组
合需求重开一只API,比如殖利率和3年平均殖利率可以分别建立不同的API,还能拆解API
来加速运算。陈建文形容,“CMoney的API,多到数不清!”透过高度弹性的API设计,让
不同产品的开发不必互相等候,API维运也互不影响,是软件开发效率再提升的另一关键
。
简化API设定让App开发再加速
有了API化的数据引擎,CMoney更运用了Low-code精神,来简化API的设定接口。比如一支
产品某一页若需要串接三项资料,专案负责人可以直接在数据引擎中设定能提供这些资料
的API,取得API编号后提供给工程师,呼叫这些编号的API,就能在App页面中提供这3项
资料内容。若遇到需要特殊数据运算的处理,无法靠接口设定完成,也可搭配简单的程式
码,来完成API的设置。
不只简化后端API作业来缩短时程,CMoney在前端接口设计上,也设计了常用图表的模板
工具,比如K线模板、走势图模板、长条图模板等,开发团队可自行选用不同模板,再串
接所需的API,就能完成一款App的核心功能设定。
“要让越多人参与开发,不是要所有人来写程式,而是打造Low-code工具,让行销、业务
、PM都能够参与。”陈建文点出,让非工程师人员参与开发,降低工程师的工作负担,也
是加速软件开发的作法。
陈建文指出,透过快速打造出多种App服务,再搭配用户分群的商业模式,精准找出目标
受众,才能领先对手抢进市场。
靠技术力解决业务难题,关键是引擎内运算逻辑与资料传输速度
“API数量不是瓶颈,成本也相对低,反而是引擎运算效能与承载,需要维持稳定。”陈
建文指出,数据分析引擎上线至今,为了满足更复杂的用户需求与爆增的流量,历经了数
次改版。
“数据引擎要容纳各式各样的数据,让用户能查得快、又不能错,速度更要稳定,背后的
细节并不容易。”陈建文说。
技术细节上有多复杂?陈建文指出,为了提供盘中即时选股的参考资讯,得先搜集台股上
市柜股票的所有讯号,从证交所取得每一笔即时撮合资讯,再搭配自行累积的盘后资料来
提供。而且,为了提供用户更即时的资讯,力求5秒更新一次资讯,后端资料运算几乎得
在1秒内完成。主要技术挑战是,得确保对外提供的盘中即时讯息或数据分析结果,能对
应到即时股价,对运算准度、运算速度到送达速度都是挑战。
不仅如此,由于每个会员关注的个股不同,为了支援上千档个股的庞大运算查询需求,
CMoney也自行开发资料传输技术,来优化引擎内部模组间的资料抛送,也取得资料封包传
输协定的专利设计,能在有限频宽下稳定传输。同样的技术,也用于后端系统与用户App
之间的传输。
为了提升用户体验,CMoney也设计了断线后的资料补回机制,让用户端App遇到网络断线
时能继续使用,等到网络恢复时后自动回补盘中即时资讯,“用户不希望回补时,手机画
面一直转圈圈,我们运用资料压缩方法来加快传输速度。”陈建文说。
靠每日6,000万笔用户数据处理的挑战,奠下AI开发基础
随着开发了更多用户端的投资工具,CMoney也面临更多资料储存与运算需求,这些与使用
者有关的记录,包含用户讨论区贴文与留言,或像是新增页签、汇入库存资料等行为,也
包括了App推播讯息等,每日资料总量达到6,000万笔的规模。对此,团队也逐步改变了资
料库的架构,除了原有SQL类数据库之外,又加入了Hadoop、MongoDB、ElasticSearch等
资料计算与查询技术,来因应不同量级的资料处理需求。
比如说,CMoney的App每日自动推送的讯息量超过3,000万则,为了分析这些讯息的推播效
果,并能依据用户对讯息的反应,来调整推送频率,团队得将累积数月的讯息推播与用户
点击行为资料用于数据分析,由于这个数据量体过大,团队因而将资料从SQL搬到大数据
运算平台Hadoop,来进一步执行分析运算。
又比如官方站上股市爆料同学会讨论区,每周活跃人次破百万,则改用NoSQL数据库
MongoDB,来提升发文、点赞、留言等互动性内容的处理,提高回应速度。而系统事件记
录,则是用大数据搜寻引擎ElasticSearch来储存,同时也会抛一份资料到Hadoop,来执
行Log的分析运算。
奠定资料分析的基础架构后,CMoney也试图透过更多用户数据分析,来提供个人化功能。
比如在App中增加用户行为追踪的埋点,以便能搜集更多用户跨平台累积的行为资料,包
括点击的文章、影音与常看股票资讯,并将资料汇整到数据平台进行分析,就能推测用户
的投资行为与偏好,来提供个人化推荐与讯息推播。
不只如此,CMoney今年更计画要大力发展AI,将App做到“千人千面”,由AI决定每一支
App的长相,让每一位用户打开的App接口资讯,都不一样。“这对AI来讲,就是一个非常
适用的场景。”陈建文指出,现有App的接口资讯固定,只提供少数客制化功能,如用户
自订选股,未来,将以AI自动推荐符合个人选股喜好的内容。另一项目标,则计画在股市
爆料同学会中增加文章自动推荐。
2周上线App第二关键,靠矩阵组织彻底翻转开发流程
CMoney凡事求快的软件开发哲学,也反映在组织管理上。“2019年初,我们发现,虽然技
术持续演进,但是产品更新的速度还是太慢了。”CMoney人资长简丽晴点出,随着组织不
断成长,沟通成本不断提升,产品迭代的速度也慢了下来,甚至出现跟不上市场变化的现
象。为此,高层决定汰换瀑布式开发方法,转而导入新创常见的敏捷式专案开发流程。
萌生这个想法后,2019年初,先挑出一支20人队伍来验证敏捷开发的可行性,团队包含了
工程师、PM、UI/UX、行销等角色,在紧密的协作之下,不同角色间的沟通更顺畅,不用
像过去得跨部门呈报再层层分派任务,产品开发可达每两周迭代一次的速度。执行半年之
后,简丽晴感悟:“这才是我们要的节奏跟感觉。”
因此,CMoney在2019年底,决定将按部门别的组织编制,改为敏捷思维的专案型编制,但
这时的公司规模成长到上百人,“要怎么翻?”成了下一个问题。
简丽晴指出,尽管部门型编制的分工模式,影响了产品开发速度,但部门仍有其不可取代
的功能,因此,组织转变的理想做法,是采取“矩阵组织”,以原组织的部门为基础,额
外根据不同的产品成立专案小组,并将各部门中可以独当一面的成员,分散到不同的小组
中,形成紧密分工的团队来加速产品开发。
在这项作法中,CMoney要求第一线的专案小组,落实敏捷开发与两个披萨原则,维持利于
沟通的扁平组织,同时赋予团队领导人足够权限,能主导产品的发展与决策,再直接向执
行长汇报,来加速产品开发迭代;原先负责汇整需求再向下分派任务的部门单位,则退居
二线,扮演类似后勤的角色,主要负责培育新人、开发共用模组、进行整合与横向沟通等
任务,在后端负责打稳地基,来支援前线的实战需求。
然而,这次组织编制大翻转,并非一声令下就全部到位,简丽晴点出个中挑战,前期投入
成本中,沟通成本尤其巨大,“我以为统一讲一次,大家就懂了,”但事实不然,员工平
时专注忙于工作,通常要等到闲暇时,才会来了解制度的改变,“得一而再、再而三的讲
。”
改为矩阵组织架构后,另一个转变是,公司内的每一位员工,不再隐身于部门之下,分派
到专案后,就得扛起一支支产品功能的成败责任,CMoney也同时导入了OKR制度,让团队
与个人学习设定目标、定期检视。
李湘婷指出,在成立十多个专案团队后,加上原有部门主管,一口气增加了三十多位直接
向执行长报告的小主管,“这是培养新进主管们领导能力的机会。”而对于进入专案团队
的员工来说,也不再只是处理来自所属部门交付的任务,得更积极了解主责的产品功能,
透过各自的专业技能,主动贡献想法。
“2021年底时,这套制度逐渐完整,我们开发App的速度也大幅提升。”以App实际开发时
间为例,2015年时,以部门主导的瀑布式开发,大约需花上3个月才能实作出一款App的初
版,但落实矩阵组织之后,一个6人专案团队只花了2周时间,就能上线一款App。除了技
术力之外,组织变革也是CMoney提升开发效率的另一关键。“虽然历经阵痛,但是很值得
。”李湘婷强调。文⊙翁芊儒
https://www.ithome.com.tw/people/150043
好厉害,二周就可以做出一个APP O_O!