当您进行一个新项目时,甚至在打开Xcode或Visual Studio之前,您都需要有明确且商定的设计目标。这些目标应在规范文档中建立。
如果客户端尚未编写,则应编写该文档,并将其提交给他们以供审查,甚至无需打开IDE。而且,如果你遇到一个客户,谁说:“我们没有时间对设计文件”,坦率,你应该从项目步行距离,因为你有麻烦了。规范不必特别冗长;它可能只有几页,但至少应该布局用户界面,包括线框(如果有UI组件),并设置完成里程碑。
_没有_这份文件,您将陷入激烈的模棱两可的循环中,客户会争辩他们告诉您的内容或您告诉他们的内容,愤怒地发送过去的通信的剪切和粘贴内容,进行解释和争论,直到客户要求的时候到来您进行了更改以使应用程序符合“他们实际要求的内容”,并希望您进行这些更改而无需付费。
_有了_这个软件设计文档,您将对任何这样的小问题都有一个答案:当出现分歧时,您可以参考客户同意并签署的规范,指出您已经按照书信履行了该规范。您可以对文档进行修改和澄清,而不必生气地争论。如果有的话,客户首先要为让不精确之处漏掉而道歉。
我们都希望有满意的客户。我们都希望建立友好的工作关系。我们都希望工作做得很好而感到自豪。但是,如果有什么工作实际上任何含糊无论如何,这些是无法实现_的_。如果您的客户说设计文档是多余的工作,那么您就要向他们解释,当由于某种误解而需要进行修订时,_真正的_额外工作将会出现。如果客户_仍然_坚持要求您在没有此类文件的情况下前进,则您应该接受这样的事实,即您的关系不可行,请走开。
在应用程序设计文档中要问的关键问题:
概括这些想法,并尽可能详尽和透彻,因为此处的错误或误解将意味着重写代码。
您的规范模板应布局清晰的里程碑。如果您的客户编写功能和用户界面设计,则随后应就一系列里程碑达成一致。有时,这些也是结算起付额度,但至少它们为完成度提供了明确的指标。里程碑可能在功能和/或组件方面;如果演出涉及一组交付品,它们甚至可能是单独的应用程序。如果可能,里程碑的持续时间应大致相等。
在这里,我将布局适当的设计文档的示例结构。当然,该模板应根据需要进行调整。有关另一个示例,请参见Joel Spolsky的示例规范(基于本文内容)。他对文档的处理方式略有不同,但观点相似。
包括描述项目及其目标受众的简短段落。
该应用程序有_什么作用_?用户将遇到什么应用程序状态(对核心用户方案的高级描述)?
例如,您的功能描述可能类似于:
包括每页的线框,其中包含以下内容的详细说明:
以下是与我最新的iOS应用程序NotifEye相关的线框:
如果您有兴趣,我使用Balsamiq的线框图工具制作了这些模型。
例如,您的UI描述可能如下所示:
如上所述,完成期限和预期可交付成果。
例如,设计文档模板中的“里程碑”部分可能类似于:
我的意思并不是意味着一旦您和您的客户就规范文档达成一致,设计阶段便告结束。总是会有您未曾考虑过的细节,您和客户都将在查看中间结果时遇到新想法,设计更改,意外的设计缺陷和不可行的建议。
设计将不断发展,所做的更改应记录在您的文档中。在我25年的经验中,我从未从事过一个没有发生过的项目,该项目包括我自己的应用程序(即我是我自己的客户)。即使如此,我仍然创建了具有详细规格的设计文档,并根据需要对其进行了调整。
首先,保持联系。每周至少几次,与您的客户联系,报告您的进度,要求澄清,并确保您拥有相同的愿景。作为测试沟通的试金石,请尝试确保您和您的客户对以下三个问题给出_相同的_答案:
SDD代表软件设计文档或软件设计说明。
功能设计文档描述了软件产品的功能,外观以及最终需要执行的功能。设计文档也称为功能规范或功能规范文档(FSD)或功能需求规范。
高级设计文档(HLDD)描述了特定软件产品开发中使用的体系结构。它通常包括描述软件系统的预期结构的图。由于这是高级文档,因此经常使用非技术语言。
软件设计文档(SDD)通常描述软件产品的数据设计,体系结构设计,界面设计和过程设计。SDD的内容和组织由IEEE 1016标准指定。
https://www.woshipm.com/pmd/1404999.html