记一个值得记录的项目
刚刚结束了一个项目,个人觉得颇有意思的一个项目,记录一些发生过的事情,算作备忘。
这是一个互联网金融的项目,P2P借贷相关,也许有人知道,就是搭建一个借贷平台,个人对个人借款。这个项目大幅度刷新了我对投资理财的一些观念,让我个人受益匪浅。但是,投资这种事,肯定是有风险的,自己想好,所以,我不会特别鼓励别人投资,只会和一些周边的人私下交流。只有几点特别提示,做这种P2P投资,要看背后的平台,发展历史,利率越高,风险越大。
说一些与做软件相关的吧。
这是一个金融项目,金融项目时间相关性非常强,这个特性刚好与做敏捷不谋而合。举个例子,我们这个项目第一阶段,做了借款相关的业务流程,而还款部分,我们一开始只处理了提前全额还款这一种情况。为什么?因为这个系统上线后,最早的正常还款、逾期还款等情况,最早要在一个月以后出现,只有提前全额还款可能在第一个月内发生,所以,在第一期上线之后,我们还有一个月时间去处理正常还款等情况。
只做当前优先级最高的,这就是敏捷软件开发的思路。我们还开发了一个理财计划的方案,采用了同样的思路,上线之初,我们只做用户购买理财计划,至于到期赎回,一开始根本没有做,因为根据产品的特点,最早的赎回会发生在6个月后,只要能在6个月内把赎回开发出来就够了。
根据客户的反馈,这次合作开发给他们留下印象最深的并不是代码或是技术能力,而是我们帮他们打造出了一个有特点的团队。合作之初,客户的开发团队还没有组建起来,只有一两个人,在双方合作的过程中,他们的新团队成员才逐渐加入进来。我们的合作模式也在这个过程中不断调整,第一期,我们的开发团队负责了所有的开发,第二期,客户的团队开始介入开发,负责一些边缘业务的开发,我们依然是开发主体,第三期,双方当做一个团队,平分主要业务的开发,第四期,他们成了主力,我们则只负责一些边缘业务的开发,至此,客户完全把项目接了过去。
相比于单纯的业务开发,客户开发团队的开发方式完全遵从了我们的方式。通过每天的代码评审,我们共同分享着对整洁的理解。因为工作时间比大多数人长,我一直在这个过程中扮演着恶人,很多人辛辛苦苦写了一天的代码,到最后都批得一无是处,不得不拿回去重写。犹记得当时,许多人都很不理解我为什么要求这么严格,但几个月下来,大家都认同了好代码,最初的不理解只是因为从来没有人这么要求过。在合作过程中,他们见识了怎么去做自动化,怎么用git管理源码和发布,认识到了测试的重要性。有了这些基础,发布不再是战战兢兢如履薄冰。
这些习惯闷着头干活的人,经过几个月的合作,已经变得开朗了许多,彼此肆无忌惮地开着玩笑,欢声笑语多了起来。每天下午4点,准时有人号召大家做平板支撑,最厉害的家伙甚至可以一次性撑个五六分钟。桌子上的技术书多了起来,这是他们的技术经理给大家买的。有不少人购买了Kindle,把它用在了上下班的路上。我们还给他们定期做了一些分享,各个方面,从前端到后端,从安全到构建。
相比于从前几个月的出差,这次的时间过得飞快,我打心眼里喜欢这个项目,它让我有所学,更重要的是,有一群有趣的人,这样的合作是值得记录的。