内部与软件开发环境[已关闭]


13

在行业中,在软件开发人员编写将由公司自己使用的代码的“内部开发”环境与构建要出售/分发的软件的适当“软件开发”环境之间存在区别。对公众。

其中,两者之间的一个明显区别是,面向软件开发的公司通常会遵循某种软件开发生命周期,例如规范编写,测试,构建等,而面向内部的商店通常会坚持因为他们自己是最终用户,并且总是可以修复未正确完成的操作,所以可以更轻松地完成操作。

作为一名学生(像其他大多数学生一样),我有点希望自己能在软件开发环境中工作,但最终我在一家以内部运作方式运作的公司中获得了第一份职位。

有时,我想知道我是否错过了成熟的软件开发经验。有这种感觉的依据吗?我是否应该寻求加入适当的软件开发环境?


9
我认为您过于笼统。与内部销售产品相比,所使用的方法与内部产品无关。我一直在研究非常临时设计的已发货产品,而忽略了许多被认为是最佳实践的东西。我还参与了内部项目,这些项目具有详细的规格,测试套件和大量的质量控制实践。
Thomas Owens

您提出的两个问题只能由您自己回答。
leo

6
恕我直言,您的问题与内部软件公司的失踪无关。您听起来好像在处于非结构化的开发环境中,并且没有能帮助您遵循最佳实践的强大指导者。
maple_shaft

1
无论该软件是开发用于出售还是供内部使用,都称为“软件开发”。商业术语可能比您所谓的“软件开发”更好。
Caleb

1
您正在混淆软件开发的两个维度-临时与结构化开发流程以及内部与产品开发。每个的程度可以独立变化。
肖恩·麦克米兰

Answers:


13

根据我的经验,您对“内部”和“可分配产品”的区分是错误的。

有一些公司认真对待其软件开发过程,而有些则没有。不管他们是“内部”,“定制”还是“热缩包装”,进入的可能性都不太高(尽管如果是“热缩包装”提供者,则如果他们没有流程,他们将可能无法开展业务)长)。

您应该寻找一个符合您所寻找的发展标准的地方-面试时,您需要提出以下问题,以确保该地方在这方面(以及其他方面)符合您的喜好。


您发布时,我正在写与此类似的内容。+1仅用于最后一句话,尽管这都是有效的观点。
Thomas Owens

@ThomasOwens-是的,在发布我的答案后看到了您对问题的评论,也期待您的回答;)
Oded

10

您可以阅读这篇文章

http://www.joelonsoftware.com/items/2007/12/04.html

Joel Spolsky的文章,这正是您的问题。

在过去的两年中,我一直处于工作状态-出售了中型软件产品beeing和一些内部软件。从这些经验中,我可以告诉您这两个平台之间存在差异,但是情况并不像Joel所描述的那样糟糕。

例如,我们大多数内部软件只能在非常受限的环境中运行。许多工具仅适用于特定的电子表格或数据库版本,具有特定的网络环境,用户数量有限,不需要安装例程等。与引入的新功能相比,这使很多事情更容易开发。我们的运输产品。另一方面,这并不意味着我为“内部”程序编写的代码质量较低或以“更随意”的方式编写。


6

很久以前,我读了一本关于敏捷项目管理的书(希望我能记得书名),作者在其中根据系统对系统缺陷的容忍度来区分系统。缺陷的容忍范围可能很高,例如,其他开发人员使用的实用程序(错误只是给用户带来的不便),或者很低,例如,为宇航员提供生命支持的系统(错误可能威胁生命)。

作者的观点是,需要将开发方法(和形式)的范围限定在系统的容错(或关键性)范围内。我认为这一区别是最重要的区别,而不是区别内部开发和一般发行的软件。

想象一下,一家拥有内部开发人员构建病历系统的医院,这可能会影响医疗质量。在这种情况下,内部商店可能比网站咨询公司更为严格,后者正在构建供公众使用的网络产品。


3

我曾经在软件公司,市场营销机构,手机电信公司和银行工作过,我要说的是,这是公司的文化和行业决定着所采用的流程的水平。我经历过的最严格,最慢,最严格和经过测试的环境是银行的内部开发。最随意的是一家营销公司。

我建议您从这种经验中学习,并用它来决定您下一份工作的未来方向。软件开发行业不是一门科学,而是一门艺术/科学,因此各个公司之间的变化和差异。了解正确执行有关代码的事情更为重要。尽管牢记故障或流程不足很有用,但是当您的经理人可以实施更好的流程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.