大道至简第七章读后感——现实中的软件工程
“王不如远交而近攻,得寸,则王之寸;得尺,亦王
之尺也。”
——《战国策.秦策》
1:大公司手中的算盘
文中列举了IBM,Borland和Microsoft的一些体系,来说明大公司眼中的世界。
大公司们在标准、理论、语言上的争来夺去,未必全然出于“软件实现”的考虑。对统一理论、统一工具、统一过程的企图,其最终目的是在整个软件工程体系中的全面胜出。算 盘 上 的 绝 大 多 数 人 , 只 是 用 于 计 算 胜 负 的 一 枚 算子。所谓编程语言,只不过是他们在商业战场上争夺所用的工具而已。
2.回到工程起点
文中所画软件工程层状模型可以看出,作者将软件工程划分为实现,团队和经营三部分。从这个模型中可以看到,在“程序”与“方法”层面,是关注于“(具体的)实现”的;而在“过程”和“工程”层面,更首要考虑的是团队问题。从角色的角度上来说:开发经理思考项目的实施方案和管理具体的开发行为; 而
项目经理则保障团队的稳定性和一致性。然而这只是基本模式,或者说,是理想模式。
3.思考项目成本的经理
理想状况下,“软件工程=过程+方法+工具” 。然而工程成功的真正关键,并不在于你把你的团队“组织”得有多好。即使在团队中他们都显示有条不紊,你一样会面临失败。
蚂蚁的团队总是被本能地组织得非常好。然而如果一个蚂蚁的群体中有了流行疾病,蚂蚁在死去,而新生蚂蚁不能跟上其死亡的速度,那么很快,这个团队就溃散了。这是因为蚂蚁用于维护团队运作的“资本”在流失。如果资本没有了,就没了运作,团队的存在就没有了必要性和可能性。
所以,思考项目的成本是非常必要的,只有项目成本在承受范围之内,这个项目才能真正运行下去。
4.技术
文中作者向我们展示了他眼中的AOP和MDA/MDD,为我们介绍了这些语言的特点和人们对其的一些理解中的错误。