软件开发误区
自古以来,神话就伴随着人类,即使在如今高科技时代,神话依然存在。因此,尽管软件开发是一门相当严谨的科学,但这并不能阻止许多神话和误解在这个行业中流传。本文将探讨其中的一些神话和误解。
误区一:某种编程语言比其他语言更好
。程序员们总是喜欢吹捧自己使用的语言。你经常会听到有人说某种语言比其他语言更好。但事实是,每种语言都有其特定的用途,我们不能断言哪种语言绝对优于另一种。这就像问意大利语和法语哪个更好一样。当然,这取决于你所在的国家。因此,某种编程语言的优势只能在特定的任务中才能确定。而很多任务都需要掌握多种语言。所以,不同的语言是协同工作的,而不是相互对立的。
误区二:人越多越好。
如果计划不周,我们可以增加程序员团队,弥补损失的时间。这种情况有时被称为“蒙古部落”的概念。事实上,软件开发并非像制造业那样的机械流程。因此,通常情况下,向一个已经延误的软件项目增加人手只会让项目进一步延期。乍一看,这种说法似乎有悖常理。然而,当新成员加入时,我们需要了解他们,并花时间与他们沟通。因此,这些时间无法用于产品开发。我们可以增加人手,但必须以计划周密、协调有序的方式进行。
误区三:程序员只会写代码。
散布这种关于编程的误区的人无疑对编程领域知之甚少,也不了解开发过程。通常,计算机程序解决的问题远远超出了信息技术领域。例如,以会计工具为例。为了开发出高质量的产品,程序员通常需要了解会计领域。
理想的情况是,由一位了解自身需求的专业会计师和一位理解编程并懂得如何向机器解释指令的程序员合作。然而,大多数情况下,会计师与计算机科学相去甚远,根本无法详细阐述自己对产品的期望。因此,程序员不得不自行研究相关的经济概念和方案。
误区四:速度越快越好。
没错,有些项目确实可以通过设计师和公司经验积累的一系列定制解决方案轻松快速地完成。但这些项目通常目标受众非常狭窄,无法为产品所有者带来高额收益。所有严肃的工程解决方案往往不仅需要数年时间开发,而且需要持续的维护和支持。例如,微软Office办公软件的开发历程。当初,该项目预计耗时3个月。结果,整个项目耗时6年。
正是由于这种误区,人们普遍认为程序员应该24小时不间断地工作。然而,长时间的刷机、处理等等并不会带来任何好处。如果强迫开发人员长时间工作,他们的生产力会急剧下降。下降幅度之大,以至于10个小时的工作量只相当于以前6个小时的工作量。因此,许多公司认为程序员每天的工作时间不能超过6个小时。毕竟,工作速度和质量都会大幅下降,情况会变得更糟。
误区五:坚持计划是必须的。
毋庸置疑,软件开发是一系列复杂的操作,需要协调和注重细节。因此,计划当然是必不可少的。在开发初期,深入细节、仔细思考功能并认真研究技术任务至关重要。但并非一切都能按计划进行。要让一个项目在整个开发过程中需求保持不变,几乎是不可能的。对于步骤频繁重复的制造流程来说,跟踪每个步骤是一种有效的方法——但这并不适用于开发中的创新。新的见解可能每天都会出现,情况也可能不断变化。因此,计划应该被视为不断修订的初始假设。
误区六:没有什么是不可能的。
“没有什么是不可能的”这一广为流传的误区,正是造成这种误解的根源之一。事实上,提到IT,人们似乎很少会想到任何限制或“不便”的情况。例如,如果你以普通人的角度审视任何搜索引擎的界面,你不会发现任何困难。它不过是一些简单的短语和图片而已。然而,这一切的价值远超表面看起来。任何事物都有其局限性,IT领域也不例外。
误区七:首次尝试即成功
尝试不同的想法是创新过程中不可或缺的一部分。当然,频繁快速地进行实验,必然会经历许多想法的失败。但这能让团队迅速摒弃错误的决策,专注于更有前景的方案。
如果首次尝试就成功,团队就会倾向于风险较低的决策——即使客户并不认为这些决策比之前的方案有显著改进。这样一来,团队就失去了开发创新解决方案来解决用户问题的动力。
以上只是最流行的几种说法,除此之外还有许多其他说法。所有这些说法都在某种程度上塑造了IT领域的文化。开发人员和其他所有专业人士一样,也有自己的传统和习俗,有时甚至非常有趣,但这又是另一个故事了。
文章来源:https://dev.to/krowser/software-development-myths-331m