我们公司最近决定,我们IT部门的一个很好的部门实际上是在进行产品开发而不是内部IT开发,现在已经创建了一个新的部门。
在此类转换期间,开发人员应该寻求哪些类型的更改?
内部开发和产品开发之间是否存在任何差异?
答案 0 :(得分:3)
我不知道这些差异会在一个现有的群体中有多快地发挥作用,这个群体从一个角色转变为另一个角色,但同时兼任内部开发人员和产品开发人员,两个巨大差异跳跃于脑海:需求和测试。
作为内部工具的开发者,我几乎获得了关于界面,组织甚至范围的自由统治。规格是以电子邮件的形式说“你能写一些做X的东西吗?”同样,测试几乎不存在。经过我能够做的任何测试,这些工具将直接部署到他们的目标受众,并且当他们出现时,错误报告直接来自那些最终用户,再次通常通过电子邮件甚至霍尔滑车。
既然我正在进行产品开发,那么差异就是戏剧性的。规格是30-100页的Word文档,我们有一个专门的测试部门,它确保我们生产的匹配那些规格。我得到了项目经理的更好支持,并且对于我对需求或设计的反馈有明确的渠道。可以说,产品开发为个体开发者提供的自由度较低,但作为(希望)更有组织,更好支持的团队的一部分,可以作为交换。
答案 1 :(得分:2)
[我和杰夫合作。]
正如其他人所说,主要区别源于用户的性质:
这种差异很重要,因为跨多个应用程序的连贯用户体验对付费客户变得更加重要,他们会看到整套应用。
因此,一个主要的区别是连贯,高质量的用户体验的相对重要性。但是,这个目标本身具有重大的<强>组织分支,我们已经开始看到。
答案 2 :(得分:1)
您的客户面临巨大差异。 IT开发人员将公司的其余部分(有时是合作伙伴/子公司)作为其主要客户。产品开发开发人员将客户(即购买产品的人员,即公司存在的原因)作为主要客户。
答案 3 :(得分:1)
是的,非常如此。执行推动收入和发票的活动与被视为开销的活动之间存在巨大差异。
答案 4 :(得分:1)
我的经验是,在房子的产品开发方面工作的人有更多的预算,更好的培训,更好的旅行和更熟练的员工。在一家产品开发公司工作过,总觉得低技术员工被扔到了IT部门。
答案 5 :(得分:1)
内部开发非常注重流程。他们只是希望提供xyz功能,并使其基于公司范围的战略运作。当您的主要产品是您的代码时,这不是迭代的make-the-product更好的循环。因此,内部的东西通常只是“足够好”,而软件公司可能倾向于在“正常工作”之后很长时间内改进产品。
请注意,内部开发团队可以通过“足够好”来逃脱,但软件开发公司可以在的同时逃脱它,但最终将失去那些努力改进的人
我认为在这两种环境之间移动可能会对系统产生任何影响,但这并不是说它们都不能以同样的方式运行 - 只是根据我的经验,它们可能不会。例如,当UI是内部软件时,通常会给予较低的优先级,因为客户通常会获得使用它而不是付费使用它。
答案 6 :(得分:1)
我在两种类型的组织中都等于时间。我工作的特定组织,软件开发是IT部门的一部分,将软件开发视为成本中心,软件开发作为产品的一部分被视为利润中心。
这两者非常不同。在我的案例中,开发人员的技能水平差别很大 - 从事公共产品工作的人员总体上技能更高,更关心他们的工作质量。作为真正公共产品的开发者,您实际上正在为公司赚钱。
在我的内部软件工作中,我通常有一组已知的固定需求。我设计了一个解决方案,但如果质量问题(包括代码质量),匆忙编码并交付结果,总是给出一个不合理的截止日期。通过任何短QA流程发现的任何错误通常只有在他们提出正式的修复请求时才会得到修复。
根据我的经验,产品开发几乎是相反的。所有的要求都没有固定(只有我那个星期工作的东西是固定的),设计通常由那些在产品上工作时间最长的人决定。我决定要花多长时间(但必须真正解释为什么并证明时间合理),编码通常不会匆忙。在产品开发中通常尝试创意更加困难,因为供公众使用的产品应该使用经过试验和测试的方法。
因此,我想说,如果创造力非常重要,那么产品开发可能不适合您,因为您个人拥有的特定想法不太可能进入产品,除非您可以为其制作商业案例并以某种方式使它比业务已经规划的更重要。
根据软件的部署方式,选择特定的库也会更加困难。例如,政府使用的软件通常必须通过Common Criteria认证,这可以消除某些库选择。