软件项目中的复杂系统与创新驱动
1. 简单性的迷思与可视化思维
曾经,简单性被视为一种理想状态,但如今这一观念已逐渐过时。Don Norman 在文章中指出,产品拥有更多功能往往比功能少更具价值,因为更多功能意味着不同或增强的行为,以及不同的结构。例如,谷歌为 Gmail 添加 Priority Inbox 后,Gmail 的行为变得更复杂,用户界面也更复杂,但用户仍能较好理解。然而,Don Norman 在使用“简化”一词时,既用于行为的线性化(横向),也用于结构的简化(纵向),这导致他的信息传达变得复杂,让很多人难以理解。
可视化思维的目标是通过使复杂事物可见来让人理解,而不是将其简单化。Dan Roam 在《餐巾纸的背面》中建议用图片来帮助理解事物,但他“不要把事情简单化”的警告,实际上是术语的混淆,他的意思是图片不应改变事物的复杂性,否则会影响人们对图片含义的预测。所以,对于难以理解的事物,应尽力简化,但要避免线性化,因为简化后的行为可能并非用户所期望。
2. 非自适应与自适应系统
非自适应复杂系统如浴缸里的小漩涡,当拔掉浴缸底部的塞子,漩涡出现,它虽复杂但无法适应外界变化。而复杂自适应系统(CAS)则能适应环境,例如婴儿学走路、细菌对抗生素产生抗性、司机避开交通堵塞、蚁群寻找食物、软件团队根据客户需求调整等。软件项目团队大多属于复杂自适应系统,它们会朝着秩序与混乱之间的最佳状态发展,通过“混沌有序过程”学习、适应和导航。
3. 科学术语的应用争议
在敏捷软件开发中,常能听到“自组织”和“涌现”等科学术语。例如蚁群、大脑、免疫系统、Scrum 团队和纽约市都是自组织系统,Scrum 是一个开放的开发框架,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



