2021年9月2日

构建或不构建–何时寻求定制工程解决方案

作为软件产品经理或工程总监,有时很难决定哪些是核心软件开发工作,哪些是定制工程。这种区别会对您如何分配开发资源产生深远的影响.

ActiveState拥有20多年为Python、Perl和Tcl开源项目创建自定义解决方案的经验,包括:

  • 使用可移植语言的自定义安装程序
  • EOL语言版本的自定义发行版(如Python 2)
  • 针对“大铁”平台(如Solaris、HP-UX和AIX)的定制发行版
  • 和更多的

在某些情况下,将定制工程工作外包比在内部处理要高效得多。本博客旨在帮助您根据自己的需要做出最佳的商业决策。

识别软件核心竞争力

一般来说,您希望客户定期使用的任何应用程序或服务功能都应被视为您希望内部团队处理的核心开发工作。但是,客户只会使用一次的功能(例如最初安装产品时)又如何呢?还是只有少数客户(尽管是关键客户)需要的功能?

还有开源工具的问题,这是开发人员每天使用的工具,但是开发人员花在工具上的时间越多,就意味着花在特性/功能上的时间就越少。开源工具是一种商品,它的使用对组织的差异化几乎没有什么帮助。您的团队不应该在这方面花费过多的时间,但如果他们都在构建/更新自己的开发环境,这正是发生的事情。

如果您的组织采用了敏捷开发,那么您就知道最大限度地提高开发团队的速度是每个sprint完成更多代码的关键。但velocity积分通常不仅仅用于编码“核心能力”特征,还包括各种“要完成的工作”:

  • 团队中没有处理新任务的专业知识?“要做的工作”将需要包括研究和调查。
  • 项目没有开发环境?“待完成的工作”需要包括建筑工程。
  • 不受支持语言中的代码漏洞?“需要完成的工作”不仅包括与任何修复工作相关的常规调查,还包括补丁创建或从支持的语言版本移植修复。

离团队的核心能力越远,“要完成的工作”占用的时间和资源就越多,使外包解决方案变得越来越可行。

成本效益分析的三个关键

对于不属于团队核心竞争力的工作,您需要做出构建还是购买的决定。当然,任何构建或购买特性/功能的决定都需要考虑以下因素的成本效益分析:

  • 预算-成本效益分析的成本部分不仅应包括最初实施的成本,还应包括持续维护和支持的成本。
    • 对于内部项目,这通常是内部开发资源的成本。请记住,研究表明,开发人员在~30%他们做维修工作的时间。
    • 对于外部项目,这要么是一次性固定成本,要么是无限期的“时间和材料”成本,这增加了超出预算的风险。
  • 上市时间-如果您的团队没有常驻专家,那么与聘请能够及时交付解决方案的专家相比,学习、实现和调试自己开发的解决方案的时间会大大增加推迟上市时间的风险。
  • 机会成本–花在非核心能力的功能上的时间就是花在不改进产品上的时间。因此,你会增加落后于竞争对手的风险。使用外部供应商可以释放您的内部资源,将精力集中在能够弥补竞争差距的更多增值功能上。

在权衡了风险、成本和收益之后,投资回报(ROI)计算应该为您的业务指明正确的方向。

结论

ActiveState拥有数十年使用开放源码语言的经验,以及在Python、Perl和Tcl方面的数十万人工小时的专业知识,可以帮助您的组织克服您在为客户创建及时、经济有效的解决方案时可能面临的挑战。我们为自己的客户群成功完成的一些定制工程项目包括:

  • 调试运行时环境的构建,简化错误识别和故障排除。
  • 自定义安装程序,包括运行时环境的可移植版本,确保所有客户都有标准部署,从而减少客户事件报告。
  • 为的EOL语言的安全修复程序的后移植Python 2,确保客户能够以安全的方式继续运行其创收应用程序。
  • 使用Python API扩展遗留应用程序,允许用户更轻松地将其与自己的应用程序和系统集成。

我们也可以为你的组织做同样的事情。当然,我们也为我们所有的Python、Perl和Tcl解决方案提供商业支持和维护。

有一个复杂或耗时的Python、Perl或Tcl构建/特性,而这不是您的核心竞争力的一部分?联系销售了解ActiveState的自定义工程是否适合您的组织。

需要更多关于建筑工程? 试试这些:

建筑工程的隐性成本

软件评估:应该包括构建工程吗?

达纳起重机

达纳起重机

经验丰富的产品营销人员和产品经理,在计算机软件行业有成功的经验。在产品生命周期管理、实用营销方法、企业软件、软件即服务(SaaS)、敏捷方法、客户关系管理(CRM)和走向市场战略方面具有较强的技能。