考虑一种敏捷方法。我的意思是,如果您有时间资源和出色的写作技巧来写下您每个设计决策以及他们的基本原理,则只需记录所有内容。实际上,我假设您不在这个位置上。 敏捷方法可以帮助应对基本原理的关键挑战:直到以后,您通常才知道哪些基本原理是重要的。
让我们从整体的角度来解决这个问题。你们有您做出决定的理由。他们现在正陷入squishyware中,成为团队的大脑。尽管获得了大量信贷文件,但将基本原理存储在sqishyware中并不是很糟糕。作为一个物种,我们实际上真的很擅长记住重要的事情。这就是为什么每个大型公司都拥有“部落知识”的原因,即使那些公司试图记录所有这些部落知识也是如此。
现在你有问题了。您发现sqiushyware无法充分发挥其原理。认识到存在问题并确定需要解决的问题对您有好处!这并不总是容易的一步!因此,我们非常确定解决方案是将一些基本原理转移到文档中。但是,这还不够。我们永远不会忘记难题的后半部分,它是在您需要做出决定时将基本原理重新加载到squishyware中。我见过很多团队,他们记录着所有疯狂的事情,但实际上这些内容并不是为了帮助您做出正确的决定而组织的,因此即使写下来,他们最终也会忘记基本原理。
因此,您需要执行两个步骤。您需要从squishyware入手文档。然后,您需要确保文档组织得井井有条,可以在需要时将合理性带回squishyware!现在,我认为我们有足够的问题陈述来认识挑战所处的位置。当您进行记录时,通常您不知道稍后将要看谁,或者他们在寻找什么。同样,回顾文档时,您通常不知道要查找的内容(最多可能知道何时)。
因此,大公司可能会尝试在两个大块中处理这个问题。首先,他们可能会根据人们在研究文档时的需求来制定需求。然后他们使用这些要求来构建用于开发所述文档的过程。而且,如果我敢说的话,那么每个人都会抱怨,因为几乎没有人确切地知道第一天的文档外观。文档总是不完整,开发人员总是抱怨该过程太繁琐。
是时候敏捷了。
我的建议是开始做出敏捷的努力来改善您的文档编制过程:从squishyware到文档再到sshyshyware整个九码。预先意识到您将丢失一些信息,因为您的流程不完美,但这没关系,因为您仍在尝试找出流程!如果您尝试创建一种适合所有解决方案的尺寸,则会怀念更多。
我会看一些特别的花絮:* 探索非正式文档。 正式文档很棒,但是很费时间。文档的目的之一是从开发者squishyware发布信息并将其放在纸上。非正式文档可将这样做的成本降至最低。
- 接受不可靠的文档格式。 第一次没事对。最好获取数据并弄清楚以后如何使其可靠。例如,您可以在<rationale> </ rationale>块或类似内容中记录您的基本原理,这将使以后收集数据变得容易。现在,将基本原理存储在用户故事中就可以了!
- 永远不要忘记组织的价值。 找出您作为一个团队如何喜欢在文档中搜索基本原理,并尝试以此为基础进行文档编制。每个团队都有不同的流程。在我的一个团队中,我们永远找不到符合其基本原理的机票。我们所能做的就是找到重要的代码行,执行一次操作
svn blame
,找出更改的时间和原因,然后查看票证。到达那里后,我们通常会在机票上正确填写我们需要的所有理由。刚刚为我们工作,找出适合您的方法。
- 有机文档会随着时间而增长。 对于开发人员而言,很少需要知道每天编写哪些基本原理最重要。我们通常会在以后找出哪些是重要的。如果您有一个整理文档的过程,使开发人员可以管理自己的一点点原理,那么重要的原理就会浮出水面。更重要的是,理由可能会改变。您可能会意识到,使用两个基本原理的两个不同的更改实际上是由对两者都适用的单个基本原理最好地描述的。现在,您与决策之间的内容越来越少了!