上帝说要有光 ..

作者: 一了 <1liao3@funlang.org>
日期: 2015-12-05

俗话说, 客户就是上帝! 最近接了个项目, 让我充分的体会到了这句话的真谛! 这个项目前前后后改了很多版, 最终也算是能勉强上线运行, 其中酸甜苦辣, 不足为外人道也. 有算不得宝贵的经验, 也有算不得深刻的教训, 在这里我就简要总结一下, 算是给咱搞软件的兄弟们提个醒, 遇到坑要绕着走.

客户的需求很简单, 就是说要有光. 虽然是这么简单的需求, 我也不敢怠慢, 马上查阅了所有跟光有关的知识, 决定用清洁能源----氢, 来实现, 第一个版本很快就搞出来了.

客户拿到东西一看, 马上提了很多修改意见, 比如要调整光的亮度, 颜色, 色温, 角度等等. 大部分也就是改改参数, 还算不难实现, 唯独角度相当麻烦, 客户的要求是角度要不停的变换, 不能只照在一个角度. 好吧, 经过思考, 将目标设计成一个球形, 然后让目标自转, 这样角度问题解决了. 这算是第二个版本.

很快客户又有修改要求, 说不能让每一个转圈角度重复, 我想了一下, 给光源增加了驱动, 绕着目标也转圈, 但是将自转和绕圈的交叉角度设计成一个倾斜角, 约23.5度, 总算解决了这个问题. 是为第三版.

经过一段时间的运行, 客户又发来新的修改, 说需要给目标暗面增加一点小光. 本着环保节能的理念, 我很快做了一个球状反射镜放到目标周围, 这样光源的光经过反射镜的反射, 给目标投射了很温和的小光. 又根据上一个版本的经验, 我给反射镜也增加了驱动, 让其也绕着目标转圈, 经过精心设计, 反射镜反射的光不但角度可变, 亮度也可变, 自我感觉十分完美. 这是第四版.

又过了一段时间, 客户要求增加一点小的变化, 不要让光看起来太单调. 我仔细考察了系统环境, 决定利用光晒到目标的机会, 将目标上面的水提取一部分到光经过的地方, 经过大数据处理, 放到云主机里, 慢慢的释放一些云. 大数据果然厉害, 经过精密计算, 释放的云看起来完全是随机的, 我觉得客户应该没话说了. 这是第五版.

没想到系统马上就出问题了, 一方面是目标的水不经用, 很快就耗光了, 另一方面云主机很快就塞满了, 还产生了大量泄漏, 导致光一点都透不过去, 系统变的不可用. 马上改代码, 将泄漏的云回收, 变成雨返回目标, 总算是解决问题. 因为是修复bug, 所以这个算是5.1版.

接下来的5.2版本似乎要简单的多, 就是给目标增加一点软的扰动, 让云随机变化, 包括角度位移, 分割组合等, 这就像风一样.

接下来的几个小版本基本上就是增加一点小需求, 然后不停的修复带来的bug, 比如有些云在碰撞时会漏电, 有时会导致系统假死甚至崩溃等, 好在东改西改, 没出大篓子.

系统运行了一段时间, 我以为项目就可以结算了, 没想到客户突然跑过来说他的目的是要搞一个平台, 打造生态系统, 云云...我立马就懵了, 心里闪过一万个草泥马. 要做平台, 你咋不早说, 我现在搞的是个球! 郁闷了好久, 突然想到著名的鸭子理论, 说看起来像鸭子, 叫起来像鸭子的, 就是鸭子. 于是跟客户摊牌, 多次交流, 总算达成了一致, 就是看起来像平台, 用起来像平台, 就算是平台了. 为了达成这个平台目标, 我只能将系统规模扩大了n倍, 然后大量放水, 将目标用水包围分隔, 使每一块在最终用户那里看起来都像是一块平台. 同时在最终用户那里广泛宣传平台理念, 系统经过长时间运行, 也算是得到了绝大多数用户的认可. 但是有些用户会调侃这是个乌龟驮着的平台, 以讽刺系统的性能. 这是第六版.

既然是平台, 就需要开放各种api, 就这样又修改了几个小版本, 不断的将内部接口暴露出来. 后来发现客户这个策略果然有效, 很多最终用户的乐趣就是不停的找系统参数, 拿接口来扩展系统, 自得其乐. 说实话, 这些活我自己都不一定干的来, 系统经过多个版本的修改, 里面也用了很多魔术数字, 非常的绕.

我觉得项目应该是可以了, 客户也非常的认可, 就在准备结算的时候, 客户说你再加一点锦上添花的小功能亮点吧. 客户说, 很多用户反映月黑风高, 容易出事, 能不能加点小亮点, 这个对你不是很容易么. 以我对客户的了解, 二话不说, 只能拉起队伍, 接着搞. 一开始我想的是按照第一个光源做模板, 写一个脚本不停的复制, 然后放到远近不同的地方, 经过跟客户沟通, 发现行不通, 因为人家要既有规律又有变化. 后来我想到的办法就是搞成树状混合结构, 一层一层绕圈. 搞了一部分, 发觉之前的设计不合理, 索性将系统做了个大的重构, 让目标围绕光源绕圈而不是相反, 因为目标只有一个, 而光源非常之多. 为了纪念曾经的设计, 用来反光的第一个球面反射镜没改驱动, 还是绕着目标转圈. 搞完这个, 我发觉这次锦上添花的小修改干的工作比之前所有的工作量加起来还多n倍, 简直像是设计了一个宇宙似的.

你们不要问我系统好不好用, 反正我可以告诉你们, 漏洞特别多, 甚至还有完全没照顾到的黑洞, 至于会不会出问题, 我就不知道了. 系统上线之后, 我立马删了源代码, 以防止客户要我再改, 源代码我估计客户那里也许大概差不多有可能有备份. 反正对我来说, 这个就是最终的版本了.

亲爱的小伙伴们, 你们以后还敢跟客户说这点小功能, 那还不简单, 小菜一碟, 分分钟搞定么?!

唉, 心好累, 不多说了, 说多了都是泪.

不扯远了, 准备发邮件跟客户催款去.


--------------------
演员表(不严谨)
--------------------
 
 
 
客户
上帝
宇宙设计者
太阳
氢聚变
目标
地球
倾斜角
黄赤交角
小光
月亮
大数据
水分蒸发
云主机
天空
平台
地平说
生态
地球生命
用户
人类
小亮点
星星