[摘录] 暴躁程序员的产生

--摘自 Code Complete -- 代码大全

诉诸类比 Appeal to Analogy

建造软件系统跟其他任何花费人力财力的项目是相似的; 如果打算建造一座房屋, 你需要在开始钉钉子之前准备好手绘草图(表达设计概念)和蓝图(即设计详图, 包含所有细节信息); 在浇筑混凝土之前必须审核蓝图并获得批准; 在软件领域做技术规划也包含同样多的事情;

在把圣诞树立起来之前, 不会对它做装饰; 在打开烟囱之前, 不会生火; 不会在车子的油箱是空的时候上路去长途旅行; 不会在洗完澡之前就穿戴整齐, 也不会在穿袜子之前就穿鞋; 在做软件时, 也必须按正确的顺序去做事情;

程序员是食物链的最后一环; 架构师吃掉需求, 设计师吃掉架构, 而程序员则消化设计;

我们用真实的食物链来比喻软件食物链; 在健康的生态环境中, 海鸥吃新鲜的鲑鱼; 这对海鸥是营养大餐, 因为鲑鱼吃的是新鲜的青鱼, 而青鱼吃的是新鲜的水蝽; 这是健康的食物链; 在软件开发中, 如果食物链的每一级都有健康食物, 那么最终会获得由快乐的程序员编写出的健康代码;

在受到污染的环境中, 水蝽核废料中游泳, 青鱼被氯联二苯(PCB)污染, 而吃青鱼的鲑鱼又在泄漏的原油中游荡<译注3>; 海鸥很不幸位于食物链最后一环, 因此吃下去的不仅仅是不健康的鲑鱼体内的原油, 还有青鱼体内的氯联二苯和水蝽体内的核废料; 在软件开发中, 如果需求被污染, 那么它就会污染架构, 架构又会污染构建; 这样会导致程序员脾气暴躁, 营养失调; 开发出的软件具有放射性污染, 而且周身都是缺陷;

<译注3 氯联二苯是一种幻觉污染物质, 积聚在动物组织中, 能导致发病和产生畸形;>


[YC: 再优秀的公司或团队也免不了遇上需求分析, 项目构建的问题, 但是对于需求分析根本没有认真态度和完备计划的项目, 程序员最终一定会暴躁, 除非ta聪明地避过了一切实战 ]

你可能感兴趣的:(Agile)