在这个行业中,在“内部开发”环境中,软件开发人员正在编写将由公司自己使用的代码,而在适当的“软件开发”环境中,软件是要出售/分发给公众的,两者是有区别的。
其中一个明显的区别是,面向软件开发的公司通常会坚持某种类型的软件开发生命周期,比如编写规范、测试、构建等等,而面向内部的商店通常会以一种更随意的方式来做事情,因为它们本身就是最终用户,而且总是可以修复一些没有做好的事情。
作为一名学生(和大多数其他学生一样),我希望自己最终能在软件开发环境中工作,但最终在一家公司获得了我的第一份工作,这家公司的内部运作方式更好。
有时,我想知道我是否错过了成熟的软件开发经验。这种感觉有什么根据吗?我应该加入一个合适的软件开发环境吗?
发布于 2011-12-19 20:01:40
根据我的经验,你在“室内”和“可分销产品”之间所作的区分是错误的。
有些公司认真对待自己的软件开发流程,而有些公司则不这样做。不管它们是“内部”还是“定制”还是“收缩包装”,它们往往不会那么投入(尽管如果它们是“收缩包装”提供商,如果它们没有流程,它们很可能不会长期投入运营)。
你应该寻找一个有你想要的开发标准的地方--在面试时,你需要问这些问题,以确保这个地方在这方面(以及其他方面)符合你的喜好。
发布于 2011-12-19 20:07:49
你可以读这篇文章
http://www.joelonsoftware.com/items/2007/12/04.html
乔尔·斯波斯基,这正是你的问题所在。
我现在的处境是,在过去的几年里,我不得不致力于一种中型软件产品的销售,以及一些内部软件的开发。根据这一经验,我可以告诉您,这两个平台之间存在差异,但情况并不像Joel所描述的那么糟糕。
例如,我们的大部分内部软件只能在非常受限的环境中运行。许多工具只是使用某个电子表格或数据库版本,具有特定的网络环境,用户数量有限,不需要安装例程等等。与我们的航运产品中引入的新功能相比,这使得许多东西的开发变得更容易和更快。另一方面,这并不意味着我为“内部”程序编写的代码质量较低,或者是以更“随意”的方式编写的。
发布于 2011-12-19 20:41:16
很久以前,我读过一本关于敏捷项目管理的书(我希望我能记得书名),在书中,作者根据系统对系统缺陷的容忍度进行了区分。对缺陷的容忍度可能很高--例如,其他开发人员使用的实用程序( bug只是一种不便),到非常低的缺陷--例如,一个运行宇航员生命支持系统(在该系统中,一个bug可能危及生命)。
作者的观点是,开发方法(和形式)需要限定到系统的容错性(或临界性)。我认为这种区别是最重要的,而不是区分内部开发和一般分发的软件。
想象一下,一家医院的内部开发商建立了医疗记录系统,这可能会影响医疗质量。在这种情况下,内部商店可能比网站咨询公司更严格,后者正在开发供公众使用的网络产品。
https://softwareengineering.stackexchange.com/questions/126000
复制相似问题