向Web应用程序提供给客户的可交付成果是什么?[关闭]


11

我已经完成了一个Web应用程序,该应用程序基本上是用PHP开发的,它只是另一个常规的Web应用程序。通常,当我交付最终产品版本时,我只是将代码文档和体系结构信息移交给客户端。但是,对于这个特定项目,客户坚持要拥有有关该项目的完整的输入和输出数据。

所以我只是想知道...除了代码和体系结构文档之外,我还可以为客户提供哪些强制性技术文档和非技术文档?

(也可以向客户介绍有关该项目的各种统计数据和数据,这样他才能真正知道所涉及的工作量以及产品的实际效果如何。)


8
客户获得哪些强制性物品完全取决于合同和您所在国家/地区的法律。
猎鹰

2
为什么在合同中未指定?创建的所有文档都应为您,未来的开发人员或客户增加价值(或至少是感知价值)。您(应该)知道哪些文档可以为您自己和未来的开发人员增加价值,所以请问您的客户确切需要哪些文档来增加价值,将其放入项目计划中并获得批准。
Thomas Owens

客户想要哪些?您可以从客户的技术经理那里获得反馈吗?另外:您的产品在哪种意义上“很酷”?你能澄清一下吗?
ZJR 2013年

Answers:


9

我认为清单应包括:

  • 非技术要求(有这样的文件,对吧?)
  • 技术要求
  • 一份“决定”文件(如果有的话),解释了为什么对其他决定做出了一些决定。这可能已经存在于不同的需求或体系结构文档中,但是我们通常针对大型决策单独进行此操作。
  • 代码和其他资源(图像文件,CSS等)
  • 数据库模型(如图表,文档等)
  • DDL创建数据库。
  • 使用DML播种数据库。
  • 说明应用程序设置和基本故障排除的文档。
  • 任何重要的用户名及其密码(对于Admin帐户)的列表,以及有关如何更改密码的说明。理想情况下,当他们首次设置网站时,应提示他们输入新的管理员密码,但这更多的是体系结构。
  • 系统要求以及对Web应用程序的最低托管要求也是如此(该应用程序需要MySQL还是PostgreSQL?有多少RAM?等等。)

并非每个项目都可以使用(或必需)所有这些功能,但是我认为这是一个很好的通用指南。


“任何重要的用户名及其密码(用于管理员帐户)的列表”:真的吗?网站发布后,开发人员永远不应该知道任何密码,尤其是管理员密码。如果将开发过程中使用的密码列表提供给客户,则可以确保客户永远不会更改它们。
阿森尼·穆尔琴科

4
@MainMa:我假设客户端具有更改密码的能力,并且第一个说明是“更改您的密码!”。
FrustratedWithFormsDesigner

您能否为新手澄清什么是“非技术要求”?
2013年

1
@Abe:非技术性要求会说诸如“此应用程序应让用户管理自己的帐户”之类的内容,而技术性人员可能会说“基于SOAP的Web服务将公开一个允许客户机应用程序管理用户帐户的接口。 ”。
FrustratedWithFormsDesigner

4

除了FrustratedWithFormsDesigner的非常好的答案外,我还要说一下非技术文档包括的内容(就像我们所做的那样):

  • 分析数据:当您第一次谈论需求时,客户告诉了您什么?
  • 您提供的报价:

    • 产品需求文件
    • 和功能规格文件

    这些合同共同构成了关于您
    在开发过程中必须做的事情以及您期望客户交付的东西以及估计的时间和成本的合同。

  • 规范,包括评审协议,用例和测试计划,测试结果

  • UML中的设计以及所有相应的文档

  • 源代码的文档(doxygen或其他)

  • 手册和安装指南

  • 该项目使用的最终实际资源量(时间和金钱),因此您可以编写发票

  • 一些客户也需要会议协议,因此是上述“决定文件”的扩展

希望那是您想要的。


3

请遵循以下适用于您项目的任何文档。您可能已经有一些文档。

技术文档:

  • 有关PHP的详细信息以及它如何对项目有用
  • 有关后端的详细信息以及有关其如何对项目有用的信息
  • 有关数据库连接性的信息以及描述数据流的合适图片
  • 有关项目中涉及的其他编程语言或应用程序的信息,例如XML,HTML等。
  • 常见问题帮助文件

准备带有屏幕截图的文档,并突出显示以下内容的相关代码(如有必要):

  • 有关前端应用程序的信息,例如对象或控件,对象属性等。
  • 有关数据库查询的信息(如果尚不存在)
  • 有关数据库属性(如主键,外键等)的信息,以及它们如何确保数据一致性和准确性。
  • 通过使用示例数据运行前端和后端的所有可能屏幕类型的屏幕快照,在整个项目中进行详细指导,而无需按逻辑顺序重复类似类型的数据或屏幕。
  • 输入无效的数据并显示不可能这样做,因为您已经在前端和后端完成了数据验证。
    /* This step is not applicable if you have not used any object for getting direct input from the user like Text Field as it is obvious that you cannot get invalid data through indirect input. */

  • 通过解释相关代码,如果服务器或客户端系统突然发生故障,则表明程序中没有错误或数据不一致。

  • 通过前端提供示例数据后,您可以在后端包括示例查询,以直接从服务器检索数据,还可以包括示例DML查询,这些查询可以帮助准备数据的重要统计信息。

在对它们进行文档记录之前,您应该亲自检查这些内容,以便如果客户要求提供带有示例数据的演示,则可以显示该项目的实际工作方式。此外,请确保前端代码具有适当的注释行。

  • 最后,以统计数字作为结束,例如代码行总数,用于项目的总天数,检查项目的总次数,所有使用的应用程序列表以及其他技术和非技术信息。


    非技术文档:

  • 项目的许可详细信息(如果适用)。
  • 项目的商业方面(如果适用)。

2

警惕

可以提供给客户的潜在文档几乎是无止境的。生成您还没有的文档所需的额外时间是无薪的。

客户为什么要使用此文档(在源代码之上)?将如何处理?是给谁用的?

这些问题的答案将有助于缩小交付内容的范围。

您和客户必须就提供什么文档以及是否可以补偿任何额外的努力达成一致,这一点至关重要。

不要玩猜谜游戏。大多数技术文档对于典型的(非技术)客户来说都是无用的。


1

我可能会将其分为几个文档类别:

指南:

  • 安装指南,如何在服务器上进行设置。
  • 管理员指南,介绍如何配置和运行应用程序以获得最佳性能。安全性也是这里要涵盖的内容,以便知道此应用程序具有什么密码并可以使用哪些密码来运行。

支持:

  • 如果有问题,您会建议什么样的程序?您是否会提供一段时间的支持?我可能仍会在这方面提供一两个指南,以便其他人知道一些更容易尝试的事情,例如重新启动服务或重新启动服务器。

整合点:

  • 此应用程序是否有第三方集成点,使其依赖于您的代码以外的其他供应商?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.