如何阻止软件退化?

从软件退化说起软件开发行业,尤其是互联网相关行业中,软件工程的首要职责是对于利益点、风口业务的支持与落地 。而这两者都是有着与时间相关的属性的 。也就是说,同样的一件事,如果没有在正确的时间内做到,那可能也就没有意义了 。所以软件行业是一个争分夺秒的行业 。
那么当真的风口到来时,软件工程的开发是否能快速跟上目标呢?希望总是好的,但是现实是很骨感的 。当新的目标出现的时候,你会发现总有那么多的额外逻辑拖慢了脚步 。
项目工程什么时候是最优秀的时候呢?如果你是一个认真负责的开发人员的话,那么这个答案理应是当这个软件最开始设计出来的时候 。这时候的软件是完美的符合功能预期甚至还能满足开发人员对其未来扩展的幻想(很有可能不能成真) 。而更现实的是,在进行之后的功能迭代的时候,常常会和原有设计冲突,那么在这种情况下完成需求后,软件的整体质量往往是会下降的 。而在周而复始的循环里,团队会花费大量成本进行对业务的维护,最终会在一次迭代中发现,这个软件如果不重构就再也维护不下去了 。
【如何阻止软件退化?】举一个订单支付的场景,第一次的需求可能是这样的:

    推荐阅读