短迭代、演化、螺旋上升、多维数据
演化是一个长期的过程,螺旋上升是说事务发展的普遍规律,同时蕴含着否定之否定的过程。
一开始说演化,最开始想到是恒星的演化,时间漫长。一个大的系统通常说是“演化”,例如淘宝网站的架构,不是一开始就这么复杂,而是从简单的模型慢慢演化而来。“凡事都有一个过程”,对于软件来说,还挺靠谱。对于软件来说,演化一般是说的大的版本的演化。往往受制于用户需求(满足即可)、硬件配置、网络等因素。对于软件,演化还有另外一层含义“够用就好”,要求淘宝十年前就支持如今的交易规模,浪费。用户需求的变化,决定的网站的演过历程。
短迭代诞生的几个前提,用户需求难以理解需要快速反复确认,问题发现越早解决成本越低,能够快速的验证(自动化测试)。与里程碑不一样,里程碑更强调完成了什么,而迭代说的完成不仅仅是功能完成,而是包括测试、交付等一系列完整的周期的结束。迭代周期的长短也是由它存在的前提决定的,没有自动化测试,迭代周期自然要厂。
迭代周期一般来说,越短越好。其实生活中很多例子,年终奖变成了季度奖,按揭贷款是更多按月还而不是按年还。同时也提醒自己,复习要短迭代(遗忘就是bug,及时修复),工作总结也要短迭代才能及时调整。
短迭代有灵活的特点,随时可以调整,既然用户的需求是变化很快的,那么可以用一个极限的角度看,没有最终的用户需求,就像淘宝10年前也没有想到会做成目前的这样。从这个角度看,可以把每一次淘宝网的演化阶段看成是一个时间很长的一次短迭代。
多维数据是听数据库培训时候第一范式想到的。列不可分,但现在大数据分析,往往一条数据就是一个多维数据。从而也验证了事物发展的螺旋上升的规律。