为了设计软件,你需要了解要满足的目标。如果这听起来天经地义,那是因为确实如此。话虽如此,但有的团队对软件应该向最终用户提供的特性还没有高层次理解,就设计甚至构建软件。有人可能会称之为敏捷,但我说这叫愚蠢。特性或用户故事清单(比如Scrum产品订单1 ),即使粗糙短小,也是必不可少的。需求驱动架构。 1 http://en.wikipedia.org/wiki/Scrum_%28software_development%29#Product_backlog