阿尔茨海默病数据集_敏捷发展导致阿尔茨海默氏症

阿尔茨海默病数据集

迭代开发和设计可以帮助您了解客户的真正需求,尝试新想法,评估设计,进行实验,对反馈做出响应并对变化的环境做出React。 随着您对域,客户以及所使用的语言和技术的了解更多,一切都会变得更好。 这在开发的早期很重要,而在产品成熟和维护的后期同样重要,因为您需要不断地调整和修复问题并处理异常。

但是也有缺点。 迭代开发会侵蚀代码结构和质量 。 迈克尔·费瑟斯(Michael Feathers)一直在研究不同的代码库 ,他发现,对代码进行迭代式更改会趋向于偏向代码的现有结构,从而使开发人员在以这种方式工作时会做出更多的妥协。 更改的代码模块通常变得更大,更胖,更难理解 。

反复地工作,最终将导致相同的问题,不断地重新访问早期的决策和设计,一次又一次地更改相同的代码。 您正在取得进步–如果改变就是进步–但是它不是线性的,而且不是干净的。 您没有朝着“正确答案”的明确方向前进,因为并不总是有正确答案。 有时,您会倒退或盘旋,尝试一些旧的想法,然后再次拒绝它们,或者只是在问题空间中徘徊,尝试尝试一些东西,直到出现问题为止。 然后,新来的人不了解或不喜欢该设计,尝试其他尝试,然后将其留给下一个人去接。 设计变更,错误的开始,死胡同和触发器留下了代码中的痕迹。 即使进行了持续而严格的重构,设计也不会像您“第一次正确”进行时那样干净或简单。

这不仅会破坏代码,还会破坏团队

迭代开发还对组织的记忆产生腐蚀作用-对每个人对设计以及系统如何工作的理解。 对于经历了太多方向变化,优先级变化和后向跟踪的人们来说,很难记住发生了什么变化,何时,决定了什么,为什么,考虑了哪些设计方案以及为什么以前拒绝了它们,什么例外和优势。出现了需要稍后解决的案例,以及在尝试解决问题,修复错误或进行其他设计更改时需要了解的内容。

在过去的6年或更长的时间里,我们已经改变了一些想法和代码的某些部分十二次,甚至数十次,有时以小的,微妙但重要的方式,有时是从根本上改变了。 名称保持不变,但不代表以前的意思。

所有这些决定的积累以及设计和方向的变化使事情变得混乱。 大多数人可以跟踪主要故事,即系统中常用的主要路径。 但是,对于精通设计和代码的聪明人来说,很容易丢失详细信息,异常路径和依赖项以及仅针对25、50或110版本发布于一个重要客户的非逻辑操作。 当更改逐步推出或在A / B测试中打开和关闭时,变得更加混乱,因此系统在不同时间针对不同客户的行为会有所不同。

人们会忘记或忘记事情,做出错误的假设。 很难对系统进行故障排除,很难理解何时引入问题以及原因,尤其是当您需要返回并重现过去发生的问题时。 或者,当您在进行趋势分析并试图了解用户行为随时间变化的原因时,系统究竟如何工作? 测试人员会错过错误,因为他们不清楚更改的影响,人们报告错误(有时甚至是修复错误)不是错误,他们只是忘记了在特定情况下应该发生的事情。

当迭代地和渐进地进行更改时,人们通常将重点放在他们现在正在处理的更改上,而他们忘记或不理会考虑已进行的更改。 开发人员认为他们知道事情是如何进行的,因为他们之前已经在此代码上工作过,但是他们忘记或不知道过去添加的异常。 测试人员根据刚刚更改的内容了解需要测试的内容,但是无法跟踪所有需要检查的兼容性和回归详细信息。

您最终将很大程度上依赖于回归测试套件,以获取对系统实际工作方式(包括边缘情况)的正确理解,并在有人进行修复或更改时捕获疏忽和回归错误。 但是,这意味着您必须依靠编写和维护测试的人员以及他们对事情如何运作以及每种更改产生的影响的理解和记忆。

迭代开发要付出代价

这不仅是不断的步伐,是永远在线的感觉,总是面临着随着时间的流逝而使人们感到沮丧的截止日期。 改变的速度,不断累积的小决定以及一遍又一遍地逆转或更改这些决定会削弱人们的理解力,削弱每个人对系统如何运作以及细节如何结合在一起的思维模式。 所有这些都会影响人们的准确性和效率以及他们的信心。

我不确定是否有办法避免这种情况。 系统,团队,各个年龄段的人,以及在现实生活中一样,人们自然会忘​​记事物。 您进行的更改越多,您忘记某事的机会就越大。

在这里写下来并没有多大帮助。 您可以在以下任何地方找到所有详细信息:在修订历史记录,文档,测试套件和代码中。 问题更多的是人们对系统的看法,而不是系统实际的看法。 人们可以跟上多少变化,掌握什么变化,以及这如何影响他们的思维方式和工作方式。

当您看到人们迷失方向,感到困惑或犯错时,您需要放慢速度,进行检查并重新设置。 确保在人们尝试修复或更改某些东西之前,他们对大型设计有扎实的了解-他们不仅专注于他们要解决的特定问题。 在这种情况下,两个头要比一个头好。 结对人员:尤其是开发人员和测试人员 ,以确保他们对变更所涉及的内容具有一致的理解。 设计和代码审查也是如此,以确保您不会过多地依赖一个人的记忆和理解。 就像现实生活中一样,随着年龄的增长,我们需要更多地相互依靠。

参考: 敏捷开发从JCG合作伙伴 Jim Bird在Building Real Software博客中引出了老年痴呆症 。

翻译自: https://www.javacodegeeks.com/2013/07/agile-development-leads-to-alzheimers.html

阿尔茨海默病数据集

你可能感兴趣的:(python,人工智能,java,大数据,编程语言)