原子功能需求和非功能需求应该写得更正式,采用一致的结构。我们称之为"原子"需求是因为它们不需要分解。它们确实包含一些属性,就像真正的原子包含一些亚原子粒子,但作为一个单元来处理更有用。这些属性构成了完整的原子需求,最好是看成需求项框架。
白雪卡
在我们讨论需求项框架的属性之前,我们想介绍一下白雪卡。它只是一张卡片(当然是空白的),包含了需求项框架的属性。我们从Wiliam Pena那里借鉴了卡片的想法,他是一名建筑师。Pena的建筑公司的成员使用卡片来记录他们设计的楼房的需求和相关的问题。团队成员将包含未解决问题的卡片贴在会议室的墙上,然后使用这种可视化的方式来快速了解楼房的建造进度。
在收集需求时,我们发现这些卡片的类似用途。在网罗需求时,这种低技术含量的需求收集方式很方便,当然,卡片可以转移到自动化的工具中。白雪卡也可以用作故事卡片,因为它们有一些共同的属性。

在需求研讨会上,我们将一小叠白雪卡放在学员的桌子上。学员在研讨会过程中用它们来记录需求。令我们吃惊的是,尽管白雪卡是低技术含量的东西,但学员总是在研讨会结束时拿走所有没用过的白雪卡。后来我们收到电子邮件,说他们在需求收集过程的早期有多么喜欢使用白雪卡。在我们自己的项目中,我们在访谈利益相关者时使用白雪卡,记录从他们那里听到的需求。开始需求没有完全成形,所以我们可能只是记录下描述和需求来源。随着时间推移,我们对需求有了更好的了解,就不断地填写卡上的其他部分。
使用松散的卡片有一个好处,它们可以分发给分析师。我们有一些客户在需求收集阶段的早期使用白雪卡。他们发现可以很方便地将卡片订在墙上,或交给分析师作进一步澄清,或邮寄给他们的用户(我们曾收到过背面有我们的地址并贴上邮票的白雪卡),通常能够单独处理一项需求。