哈Ha! 我正在向年轻,经验不足的人以及对技术文档方法不确定的任何人讲这篇文章。 尽管如果她能帮助野牛设计界的某人,我将加倍高兴。
起草
传统知识有很多
标准和规范 ,但是如果年轻的工作室在开发一个简单的在线商店时尝试遵守这些
标准和规范 ,他们将没有时间实施几个项目,因为它们将破产,陷入很多无法理解的文件中。

以前是什么
我们是一家从事定制Web开发的区域性小公司,与许多其他公司一样,它在一开始就承担了项目,但并不真正知道如何做。 但是,由于强烈的发展愿望,这种“强迫性增长”对团队成员产生了极其积极的影响,并帮助提升了技能和头脑。 发展情况越来越好,但职权范围仍处于最低水平。 像大多数初学者工作室一样,我们对TK使用了通常的描述性方法:可能显示哪些页面,应显示的内容,一些技术要点。

在许多项目中,这导致以下问题:
- 描述了外观,但未描述操作原理。 一个带有在线购物车的简单示例。 在工作说明中,写了“下订单”按钮。 但是,当用户单击此按钮时会发生什么? 订单号是根据什么规则形成的? 分配给他什么状态? 转发到哪里去? 并且,如果在用户下订单时其中一件商品售罄了? ToR中没有这些和其他许多问题的答案,但这只是一小部分。 这种无法形容的时刻导致与客户发生纠纷,预算大量退出以及其他不愉快的后果。
- 缺少可重复使用的块。 许多站点在不同地方使用相同的块,例如,产品预览。 但是,每个页面都对此结果进行了描述。 这是很糟糕的,原因有几个。 首先,如有必要,必须一次在多个位置进行更改,您可能会遗漏某些内容,并且会出现差异。 其次,即使预览中具有相同的元素,客户也可能需要对它们进行不同的设置,这会带来额外的成本。
- TK与团队的任务无关。 问题与现实的距离越远,输出的质量就越低。 这是我要解决的另一个问题。
新方法
确定目标之后,我们开发了一个新的,相当简单但有效的概念。
传统知识包括以下部分:
- 引言
- 静力学
- 动态性
- 任务
- 管理面板
- 通用技术要求
从项目到项目,这些部分的组成可能会有所不同,但基本结构仍然存在。 让我们仔细看看。
简介和实施准备- 我们简要描述了该项目,其目标,CA,并保留了到项目前分析的链接。
- 我们描述了初始化项目的过程:为开发人员设置环境以及为设计人员开发设计概念的方法。
- 适应性或版本控制的原则。 最近,在我们的工作中,我们坚持以下原则-“适应一切适应”。 换句话说,在开始传统知识的工作之初,我们就了解我们需要(或者在不久的将来可能需要)复杂的功能,并且与设计人员和前端开发人员一起,提出适应它的方法。 使用新方法不会产生负面结果,因此不必描述单独的版本。
本部分旨在使团队保持最新状态,并为立即开发项目奠定基础。
静力学众所周知,页面可以包含从服务器发送的静态信息或动态信息。 静态小节-项目页面。 我们将每一页分成几块。 如果该块是静态的,那么我们将描述其本质和内容类型。 例如,“关于公司”页面上其中一个块的描述可能看起来像这样。 “公司的主要优势。 5-6个描述性图标。” 这是一个非常简短的描述,但足以对块进行准确的评估。 描述静态变量时,主要目标是建立一个清晰的框架。 制作自适应图标并不困难,但是有了图形或表格,一切就不会那么简单和明确。 但是同时,将有什么样的图标和签名也没有关系。
如果页面包含一个可以“放在方括号之外”的块,则代替其集成,我们将编写“ NAME功能已集成,并且该功能本身在“动力学”部分中进行了描述。
除了页面之外,“静态”还包括弹出窗口和字母的描述。 我认为,将它们放置在单独的较大部分并为结构充气是没有意义的。
动态性与动力学相关的一切都称为功能。 也许稍后会出现其他划分,因为 这里已经存在各种类型的任务:
- 块 我们进行动态处理:
- 站点不同部分中使用的块。
- 单独评估有意义的块。 首先,它简化了评估过程本身以及客户对单个元素的复杂性的理解。 其次,对于项目而言并不重要的块通常属于此类,并且使用这种方法更容易将其从预算中排除。
- 在特定用户操作期间发生的过程。 首先,这包括下订单,付款,添加到购物篮等时发生的动作。 在项目开发过程中通常会最终确定这种功能,因此,这些改进的描述更加方便。
- 集成第三方服务。 根据集成的复杂性,它可以描述为一种功能,反之亦然,可以分为许多不同的功能来描述单个查询。
任务本部分用于无法归于其他任何部分的作品:画横幅,设置公制计数器,解析商品等。
管理面板在这里,我们描述结构,模型和领域。 细分分为多个部分,例如“产品”,“目录”,“订单”等。 我们描述了不同的用户角色可以查看编辑内容。
通用技术要求它包括很多小节,并不是所有的小节都是真正的技术要求,但是再次将它们分开是没有意义的:
- SEO标签和微标记要求
- 音译规则
- 手动和自动测试
- 支持的浏览器
- ...
新版本
描述新版本时,有必要对现有元素进行更改。 我们考虑了以下方法来描述改进:在每个部分(静态,动态,AP)的开头,写下“对“ NAME”功能的改进”,或创建一个单独的部分“改进”,其中所有更改的任务将立即转储。 到目前为止,我们已经选择了第二种方法,但这与特定项目的便利性有关。 在其他情况下,第一种方法更好。
在编写了新版本的技术规范后,我们将它们合并为一个,以便可以在一个文档的基础上编写下一个。
例子
为了清楚起见,让我们基于目录部分中的简化页面来分析TK的结构。
静力学
目录部分页面用于显示属于根目录以外任何级别的目录部分的商品。
集成了以下功能:
- “面包屑”
- “目录树”
- “过滤。 一般规定”
- “过滤。 文字“
- “过滤。 文字和图片”
- “过滤。 范围”
- “排序。 默认情况下,“
- “排序。 价格上涨“
- “排序。 价格下降”
- “产品预览。 瓷砖”
- “分页。 页面”
- “文本块”。 集成为地下室前面的SEO文本块
URL:/ c / 1745-name,其中1745是当前目录类别的ID,name是该类别的音译名称。
动态性
由于页面包含许多集成,因此我将给出其中两个最有趣的示例。
功能“过滤。 一般规定”从外部看,过滤是一系列(或几行)带有过滤器名称的按钮。 单击该按钮时,将打开一个下拉列表,其中包含带有过滤器值(相应产品特征的值)的复选框。 下拉列表的宽度取决于此列表中值的最大长度。 在下拉列表的可见区域中,最多显示10个项目。 如果有更多的过滤器值,则会出现滚动条。 过滤器值下方是“应用”按钮。 如果至少选择一个值,并且用户单击过滤器区域外的“应用”按钮或带有过滤器名称的按钮,则:
- 下拉列表关闭并应用过滤器。 只有与当前有源滤波器匹配的产品才会保留在当前部分中
- 过滤器按钮的名称采用以下形式:“过滤器名称:K”,其中K是所选过滤器值的数量(如果有2个或更多),或者如果选择了一个值,则为“过滤器名称:值”。
- 过滤器按钮的颜色更改为所用过滤器的类型
- 在其他过滤器的值中,仅保留满足当前活动过滤器的选项。 如果一个值保留在不活动的过滤器之一中,则其按钮变为不活动状态,并且名称以“过滤器名称:值”格式显示
- 对于所有活动的过滤器,在名称后添加一个叉号,单击时仅重置此过滤器
- 分页被重置
如果至少有一个过滤器处于活动状态,则在所有带有过滤器的按钮之后,将显示“重置过滤器”按钮,当单击该按钮时,将重置所有过滤器的值。
从当前类别切换到其他类别时,将检查活动过滤器以及在其中选择的值与相应过滤器以及过渡到的类别的值是否一致。 在新选择的类别中,这些过滤器和其中相同的选定值将保持活动状态。
过滤可以通过两种方式集成:动态和静态。 通过动态集成,您可以在管理面板中设置执行过滤的特征。 在没有附加参数的情况下指示了这种集成。 默认情况下,静态集成应用于页面。 在描述积分时,会指示一个附加参数-进行滤波的特性。
选定的过滤器通过查询参数添加到URL。
功能“产品预览。 瓷砖”它是具有用户最重要产品信息的图块(矩形)。 在图块版本中,关键信息是产品图像。 预览包含:
- 价格(俄罗斯卢布整数)
- 产品名称
- 标签为“在商店中”或“从窗口中”
- 图片
- 尺码
- “购物车”按钮(集成了“添加到购物车”功能)
- “添加到收藏夹”按钮(集成了“添加到收藏夹”功能)
当您单击预览的任何区域时,除“添加到购物车”按钮外,您还将被带到产品页面。
在一行上应放置3-4个带有产品预览的图块。
如您所见,此功能集成了另一个功能,使您可以制作非常方便的分区。 例如,产品图中还使用了“添加到购物车”和“添加到收藏夹”。
管理面板
一页需要AP的很多部分,我将描述其中之一。
产品介绍所有具有过滤功能的产品列表。 编辑/添加项目时,以下字段可用:
- 标题(文字)
- 品牌(电台)
- 图片
- 价格(整数)
- 说明(文本块)
- 类型(商店/展示柜,收音机)
- 条件。 含义包括标题(文本)和解释(文本)。
- 现况 选项包括:
- 特价
- 适度
- 修订中
- 被拒绝
- 卖完了
- 检查失败
- 被卖方取消
- 标签大小(可选)。 未经验证的文本字段
- ...
这里有30多个字段,因此为了避免给文章充气,我们将其省略。
结论
新方法的优点:- 完整性 。 该传统知识可以使您清楚地描述要求,这是任何传统知识的主要和必要参数。
- 清晰 。 我们约有一半的客户没有技术专家,这是他们第一次面临发展。 因此,使TK尽可能清晰易读非常重要。 而我们做到了! 甚至非精通技术的客户也了解它的工作原理,他们可以轻松阅读它并提供出色的反馈。
- 分子性 TK完全符合我们划分为单个元素的要求,从而大大简化并解决了上述问题。 TK块直接对应于开发人员执行的任务,但遇到了麻烦。 TK也非常适合设计系统(有关该系统的文章将在下周发布)。
- 简化成本估算和配置 。 精心描述和破坏的任务变得简单而易于评估。 如果在评估过程中我们了解到需求不完整,则可以添加它们。 对于每个项目(阶段),我们制作一个Google表格,客户可以在其中尝试不同的项目配置,并根据价格/功能确定最适合自己的选择。
- 客户互动已经上升到一个新的水平 。 所做的更改使您可以清楚地定义项目的边界。 如果需要改变传统知识,这被认为是一项新任务,尽管采用旧方法会引起很多争议。
- 盈利能力 。 因为 这主要是一项业务,该指标与上一个指标一起是最重要的指标之一。 一项详细的研究可以使评估不好的任务的数量减至最少。 在新方法下实施的项目均未超出预算。
缺点:- 进行改进 。 在其中一个项目中,有必要介绍商品的状态。 结果,实现了2-3条线的大量改进。 这不能称为零减,因为 需求的完整性是当务之急,但是理想的数据方法却无法被调用。
- 业务流程自动化中感知的复杂性 。 如果您将某些公司的业务流程从销售到买方收货的整个过程都包括在内,则不一定总是(或在第一阶段需要)覆盖整个流程,而静电,动力学和应付账款却会因此而损失,因为 许多任务是手动执行的,可以通过电话与客户讨论等。 这会使纯知识形式的传统知识稍微复杂化,并且需要对过程进行额外的描述。
- 成本和开发时间 。 当然,出售传统知识变得更加困难,因为并非所有与开发者初次接触的人都愿意为此付出10%至20%的费用,而我们的许多竞争对手都为此付出了1万至2万美元的费用。项目风险和提高质量。
新方法的优点对我们工作的各个方面都产生了非常积极的影响,并有助于发现我们以前未曾注意的缺点。 尽管存在缺点,但缺点并不明显,尤其是与优点相比。
每个项目都会带来新的东西,打磨角落,并允许您对其进行更好的更改。
我们对结果感到非常满意,因此决定放弃标准的任务跟踪器,而最终确定Google文档以完全处理基于TK的任务。 如果实验成功,我们将另外撰写一篇文章。 同时,我们正在等待您的客观批评和建议,希望本文对某人有所帮助。