1.只有一种*的编程语言
软件开发人员倾向于成为他们每天使用的编程语言的粉丝。Python是当今流行的语言,但C++也是如此。事实是,每一种编程语言的使用都有其特定的原因。这就是为什么我们不能肯定地说一种语言优于另一种语言。这就像说西班牙语比英语好一样--这归结于你所在的地方。只有当你考虑到一个具体的编程任务时,才能衡量一种特定的软件编程语言的优势。通常情况下,一个编程任务可能需要程序员知道一种以上的语言。
这就是为什么知识渊博的程序员通常把他们的语言看作是几种相互补充的语言,而不是在竞争中。*的项目结果通常发生在开发人员一起使用几种语言的时候。
2.使用更多的开发人员意味着更快的进展
软件开发过程中最关键的部分是规划阶段。如果项目没有经过深思熟虑,有些人认为你可以稍后再把更多的开发人员扔进这个组合。然而,软件开发并不像制造肥皂。如果你在游戏后期给一个软件开发项目增加资源,就会造成延误。当你引进新的开发人员时,你需要让他们尽快熟悉项目。你花在指导新团队成员的每一分钟都是你没有开发的一分钟。只要小心,你也许可以在不放慢开发速度的情况下增加团队成员,但必须加以管理和计划。
3.你不能使用远程开发人员
有些公司认为开发人员必须在现场,这样你才能控制他们。如果你有强大的项目管理工具以及与整个现场和远程项目团队的良好沟通,你可以使用他们。许多成功的硅谷初创公司证明,远程软件编程团队可以和内部开发人员一样努力*。你可以在全球范围内找到优秀的网络和移动应用程序开发人员,所以你不需要让每个人都在本地。你的公司应该根据他们的技能、奉献精神和专业精神来选择其开发人员,而不是他们的位置。
4.软件开发总是线性的
许多人认为,开发软件恰恰像制造业。如果团队遵守项目计划,软件的创建就不会有问题。不幸的是,这通常不是它的*方式。有的时候,开发可以按计划进行,特别是在较小的项目上,例如一个单一的登陆页面。如果你的团队使用的是瀑布式方法,项目有可能是线性的。但如今更多的开发团队在使用敏捷方法,它提供了更多的灵活性,但可预测性更低。有些项目不允许你对完成的时间给出准确的估计。有很多情况下,项目需要更多的灵活性以获得理想的结果。
5.软件开发是为书呆子准备的
你可能在大学里得到这样的想法:所有程序员都是书呆子。但是,你不必以某种方式行事或看起来就能成为一个有效的程序员。任何有智慧的人都可以学习编程语言和如何编码,特别是在无代码趋势的兴起下。它只是需要你了解方法论和实践。
6.如果你不擅长数学,你就不能编程
许多开发者和程序员在高中时就擅长数学。但这并不是一个要求。例如,软件工程师不需要你在学校学过的数学很出色。许多软件开发人员和工程师使用离散数学,这是不同的,更直接的。只要记住,你可以成为一个好的开发者,而不是在数学方面有很高的技能。
7.程序员的唯一技能是编码
通常情况下,开发人员和程序员对客户的主题领域有一些了解是至关重要的。例如,如果你的公司正在为iPhone开发一个会计应用程序,公司的会计人员可能无法准确解释他们想要和需要这个应用程序做什么。或者,他们可以用会计术语解释,但他们无法将这些知识与编程和开发联系起来。这就是为什么如果程序员对会计原则和功能有一定的了解会有帮助。
8.产品发布后,项目就结束了
实际上,在某些方面,当你发布软件时,项目才刚刚开始。一旦发布,你的团队就应该得到用户的反馈,并将其纳入产品的改进中。你需要建立一个流程改进系统,进行修改和测试,以改进产品。