上月之时, 我那位于杭州从事软件外包工作的老友陈默, 忽然于半夜之际给我打来了一通电话。电话那头, 他的声音显得沙哑, 言说自己在滨江区的一个项目当中遭遇了一个极大的挫折。陈默从事技术开发工作已有八年之久, 从最初的PC端网站, 到后续的App, 再至如今的微信小程序, 自觉得未曾见过何种风浪, 可不料此番他险些被一个看似简易的小程序项目给拖垮。

本年三月份伊始方可将此事予以详述。陈默接过了一项任务, 即研制一款所属本地生活服务平台之小程序, 需于两个月内实现上线目标, 功能涵盖了用户端、商家端与骑手端此三套别系系统。恰则当时, 在陈默之所率队伍里, 仅存四位从事开发工作之人, 其中一位尚且是方才转正的初级前端技术人员。我遂问陈默, 缘何作得此决定而未曾推诿拒绝。他唯有勉强挤出一丝苦笑, 而后吐露说道: 在所给付的报酬价格具有十足的诱导吸引力状况之下, 再者且言及必要将全部程序源代码予以完整无差错移交交付, 并于后续进程中持续开展二次深度优化开发工作, 面对如此这般的高额大订单, 又有何人能够狠下心来舍弃抛弃而放手不管?

才过去一周, 项目刚启动, 问题便接连不断地来了。客户那边频繁更改需求, 隔三岔五就有变动, 先是提出要增添优惠券功能, 紧接着明日又要求修改积分规则, 而后天又声称骑手端的定位得精准至十米以内。陈默的团队每日都加班直至凌晨两点, 然而进度仍旧如同蜗牛爬行那般缓慢。最为关键的是, 客户要求所有源码均须采用原生语言进行开发, 不允许使用第三方框架, 理由是说这样利于他们后续自行维护。

四月中旬的时候, 陈默察觉到事情彻底失去控制, 他手下那些后端工程师由于连续熬夜, 直接于工位上晕倒, 被送去医院检查后发现是心肌炎, 还有一另个开发人员因承受不了压力, 直接提交了辞职报告, 整个团队仅剩下陈默与那个前端新人, 面对一团写了一半的代码, 他初次体会到绝望。

当时, 我是真真切切地想要放弃掉这个项目了 , 陈默过后对我讲 , 只是那合同已然签订了 , 违约金是项目总共金额的三倍 , 我根本就赔不起。没办法 , 他开始在各处寻觅人来求助 , 跑遍了杭州所有知名了得技术开发公司 , 可要么是报价太过高昂 , 要么是档期安排不过来。最终 , 他在一个技术论坛之上瞧见有人分享源码开发的规避陷阱的经验 , 这才发觉自己从最开始就走上了错误的道路。

某个帖子所阐述的内容极具合理性: 开展小程序技术开发时, 最为忌讳的便是一味盲目地去追求原生开发。当下在市面上存在着成熟的第三方框架以及组件库, 它们不但能够极大程度地缩减开发周期, 并且在性能以及稳定性方面丝毫不逊色于原生开发。更为关键的是, 众多框架自身便提供了完备的权限管理以及接口文档, 后续的维护以及二次开发反倒更为简易。陈默瞬间恍然大悟, 他先前执着于原生开发, 实际上是源于客户的一句话, 然而客户真正所需要的是“能够使用的产品”以及“易于维护的源码”, 而非拘泥于采用何种技术栈。

五月初时分, 陈默对开发方案做了重新调整, 他留存了核心业务逻辑的原生代码, 与此同时引入了已然成熟的UI组件库以及网络请求框架, 将原本需手写的重复代码通通替换掉, 他又再次梳理了需求优先级, 把客户最为关心的核心功能放置在前面, 那些起到锦上添花作用的功能全部安排到二期, 如此一来, 团队的开发效率提升超过了一倍, 原本要两周才可完成的功能模块, 如今三天便能搞定。

但这回, 新的问题跑出来。客户那方瞅见陈默动用了第三方框架, 当下就表达出不满之意, 声称合同注明的是“源码开发”, 动用框架那就是在偷工减料。陈默, 没跟对方硬碰硬, 而倒是把框架的源码以及文档全给整理好了, 给客户举办了一回详尽的技术说明会。他告知客户,这些框架自身就是开源的, 所有源码都彻彻底底交付了, 并且框架的底层逻辑比他们自个儿编写的还要更稳定些, 后续维护成本反倒更低些。听完之后, 客户的态度发生了一百八十度的极大转变, 不仅如此他甚至十分主动地提出要增添一部分预算, 并且要求陈默把后台管理系统一并做了。

进入测试阶段的小程序, 是在六月中旬的时候。陈默原本以为能松口气, 可刚进入测试第一天, 就发现了十几个bug。其中最严重的, 是部分安卓机型上支付接口会闪退。他带着团队连续排查三天, 才发现是第三方支付SDK版本兼容有问题。这问题不大不小, 可要是不解决, 上线后肯定流失大量用户。陈默咬着牙, 花一周时间重写支付模块所有源码, 才彻底解决兼容性问题了。

于六月二十五号那日, 小程序终于是顺利地通过了微信官方的审核, 进而正式上线了。上线当日, 注册用户一下子就突破了五千的人数, 待三天之期过后, 日活稳固地处在两千以上这一状态。客户满心满意, 不但结清了最后的尾款金额, 另外依旧介绍了两个全新的项目给陈默这个人员。不过陈默朝着我说道, 这般一次经历的过程使他从中清楚明白了一条道理: 技术方面开发的关键压根不全是堆积其代码, 重要之处在对项目推进节奏的操控把握以及对于风险的预先判定情形呀。

现在回想起来, 陈默表示自己于这次项目里, 最大的收获并非赚了多少金钱, 而是真切领悟了什么是“源码交付”。众多客户以及开发团队都觉得源码开发就是把代码进行打包后丢给对方, 然而实际上, 一个达标的技术开发项目, 所交付的应当是完备的开发文档, 是清晰的代码注释, 是合理的模块划分, 还有一套能够持续迭代的架构设计。这些内容, 比单纯的代码自身要重要许多。

陈默随后于朋友圈发布了一条动态, 声称: “从事技术开发历时八年, 此次险些出现失误, 不过所幸及时予以制止。期望所有行业同伴皆能牢记, 技术开发并非仅仅编写代码, 实则是去解决问题。”当我瞅见这条动态之际, 彼时正身处北京回龙观的地铁之上, 身旁满是低头刷手机之人。我陡然发觉, 在这个所有人都对手机有所依赖的时代, 小程序技术开发的确是个优质赛道, 然而前提条件是, 你必须真正精通此道。

要是你也正思索着去做个小程序, 或者正为技术开发方面的事儿犯愁, 那不妨记好陈默所踩经过的这些坑: 其一, 别盲目信赖原生开发, 成熟的框架以及组件库能够帮你节省下大量时间;其二, 需求一旦发生变更务必得通过书面方式予以确认, 口头所做出的承诺在后期全都是扯皮的事儿;其三, 源码交付可不意味着就可以撒手不管了, 完整的文档以及架构设计才是客户切实真正需要的;其四, 测试阶段一定要对多机型进行覆盖, 尤其是支付以及定位这类核心功能, 兼容性方面的问题是会直接把产品给毁掉的。

陈默的项目仍在持续推进, 他近期又承接了一个社区团购的小程序开发订单, 此次他变得聪慧起来, 在签订合同以前, 先撰写了长达四十页的需求文档, 针对每一个功能细节都与客户进行了三次确认。他表示, 在技术开发这个领域里, 经验皆是由教训换来的, 期望他的经历能够助力后来者少经历一些波折。

评论 (0)
嘿,我来帮您