许多大型组织的 IT 部门会将桌面锁定为标准配置 (SOE)。最终用户通常无权安装自己的软件,即使他们有权限,组织也往往只允许安装“已批准”的软件。
即使是免费/开源软件,最终用户也经常需要提交某种申请表,以便对软件进行验证和批准。一旦遵循流程并安装软件,升级就会变得麻烦 - 许多组织倾向于坚持使用旧版本的软件(Windows XP、Office 2003 等),因为担心会出现未知问题。
软件开发人员可以做些什么来加快审批流程?
如果您参与此类审批流程:
- 在评估软件时,您会寻找什么?例如:
- 您更喜欢 MSI 还是 xcopy-able 软件?
- 如果软件需要框架(Java、.NET),那么出现问题的可能性是否会更大?
- 如果软件支持自动更新,您通常允许这样做吗?
- 一般需要多久时间?
- 您喜欢哪种许可模式(可转让、按座位、按 CPU、全站)?
- ISV 还可以做什么来提高其软件获得批准的机会?
答案1
我是一家跨国公司的软件审批组的成员,我完全赞同亚当上述所说的一切。
我还要强调以下几点:首先,始终全额支付“发展税”。这意味着要确保您的应用程序在您可能永远不会使用的各种环境中都能正常工作,但对于大公司来说,这很可能是交易破坏者,这些事情包括确保您的应用程序在漫游用户配置文件和重定向用户文件夹中正常工作(始终使用 Windows API 查找用户和配置文件文件夹,永远不要假设它们位于标准位置,甚至在本地驱动器上),确保它在远程桌面服务器上运行良好(其中可能同时运行 100 个应用程序副本,其中一些使用非常慢的连接),在网络连接速度慢或电池电量低的笔记本电脑上等等。例如,我们最近拒绝了一家非常大的公司(以“A”开头,以图形而闻名)的多个软件的新版本,因为他们的应用程序突然无法在最新版本中使用重定向主文件夹,这对我们来说是一个交易破坏者。
即使是免费/开源软件,最终用户也常常必须提交某种请求表来验证和批准软件。
从您评论的语气来看,您似乎认为审批流程与成本有关?从我们的角度来看,应用程序的单位成本根本不是我们在审批流程中考虑的问题。应用程序的财务理由已经得到解决,软件审批都是从技术和支持能力的角度进行的。免费和开源软件通常比专有商业应用程序更难通过我们的流程。这通常只是由于缺乏问责制。当应用程序出现问题并且您需要支持时,您会去找谁,他们的 SLA 是什么?当您需要了解应用程序是否适用于新版本的 OtherApp vX 时,您会问谁,他们是否真的给您一个人们真正努力实现的实际答案,或者这是一个模糊的“社区中有人可以做到”的答案?
按照流程安装软件后,升级可能会很麻烦——许多组织由于担心出现未知问题而倾向于坚持使用旧版本的软件(Windows XP、Office 2003 等)。
软件升级必须经历与全新软件相同的过程。它们唯一的优势是我们已经知道一些问题的答案,因为我们已经支持过该软件(这可能对软件不利,支持团队根据与该公司合作的经验否决了升级)。
您更喜欢 MSI 还是 xcopy-able 软件?
只要正确打包,这两种部署方法都可以。否则,我们很可能会删除您的安装程序并重新打包软件以供自己部署。
- 无论使用哪种安装程序,您都必须确保遵守其所有静默、无人值守的安装模式。如果您的应用需要手动安装,那么这会立即破坏交易,因为根本没有切实可行的方法可以在 5 大洲的机器上进行此操作,因为所有非硬件支持都来自中央办公室。
- 如果可以选择,我更喜欢 MSI 安装,而不是 xcopy 安装。大多数支持 Xcopy 的软件的问题在于它们在首次运行时尝试设置和注册自己。我很少发现有应用程序可以正确执行此操作,并且不会在漫游用户/热点办公桌环境中造成问题。MSI 安装程序(如果您坚持使用标准 API)不会出错。
- 确保您的静默安装能够进行手动安装中可以进行的所有配置更改。如果您使用 MSI 并坚持使用 API,那么这没问题,我们可以进行 MST 转换并毫无问题地完成所有这些操作。如果您使用其他第三方安装程序,请确保它允许使用“应答”文件或 INI 文件等类似文件。测试静默安装并确保所有选项均能正常工作,我遇到过一些产品,它们兴高采烈地宣布其静默安装选项,但他们从未真正测试过所有选项是否都能正常工作。
- 最好在静默安装中为我们提供额外的选项,让我们可以设置用户通常会在选项面板中更改的许多设置。这可以通过 setup.exe 上的开关来实现,可以通过为设置提供记录的 INI 文件来实现,可以通过记录必要的注册表更改来实现,或者以上所有方式。无论如何,我们都希望确保我们的用户可以启动并运行软件,而无需自己进行任何配置,这里重要的是文件的默认位置、默认服务器名称、代理设置(如果您的应用程序通过网络运行)等。
如果软件需要框架(Java、.NET),那么出现问题的可能性是否会更大?
这肯定更成问题。大多数框架中的版本控制和向后/向前兼容性都很糟糕。特别是对于 Java,许多应用程序(和网站)都需要安装特定的 Java 主版本和次版本,并且无法与其他任何版本兼容。如果您需要在一台机器上安装三个不同的应用程序,而这三个应用程序都需要不同的 Java 版本,并且它们对将一个 Java 版本伪装成另一个 Java 版本的标准方式不满意,那么就会出现问题。.Net 在版本控制方面有自己的问题,但会很乐意让您同时安装框架的所有主要版本,从而解决许多问题。
如果软件支持自动更新,您通常允许这样做吗?
永远不会。版本控制和互操作性问题太多了,应用程序不可能在没有任何警告的情况下自行更新。应用程序升级需要测试和规划。此外,具有普通用户权限的用户无论如何都无法应用更新。如果您使用允许修补的部署方法(例如使用带有 MSP 补丁的 MSI),那么这可以使应用程序的安全修补等问题变得不那么令人头疼,我们可以使用我们的部署工具(WSUS 和 SMS)自行管理自动更新。此外,我们的安全团队对任何“与基地对话”的应用程序都非常怀疑,他们想知道它到底发送了什么信息,以及它为什么需要通过互联网将任何东西发送到未知的服务器。
一般需要多久时间?
只要有 6 个人在 Outlook 中点击“批准”投票按钮,就可以决定一些简单的应用和版本升级。更复杂或有争议的应用可能需要等待我们每两周召开一次小组会议。有些应用可能会在不止一次会议上讨论,因为团队会把有关应用的问题带走并进行研究/测试。
您喜欢哪种许可模式(可转让、按座位、按 CPU、全站)?
完全取决于应用程序的使用方式和使用人数。最重要的是您的许可定义明确。我们必须派员工参加(尽管是免费的)课程来了解 Microsoft 许可。我们不会为 ISV 这样做。
在授权方面,请考虑我们的静默、自动安装需求。如果您的许可证需要激活,我们不希望每次在 PC 上重新安装应用程序时都给您打电话/发送电子邮件。如果应用程序的每个副本都需要输入单独的不同许可证密钥,那么我们就无法自动部署它,而如果我们可以购买批量(2、10、50、500 等)密钥,并保存在静默安装中,那么我们就很高兴了。如果我们可以在一年后再与您联系并协商扩大我们的许可证数量,而不必更改输入到软件中的密钥,那就更好了。
ISV 还可以做什么来提高其软件获得批准的机会?
我们还将研究与您的应用当前状况不严格相关的内容。请记住,如果您的应用成为我们某个领域的标准工作流程的一部分,它可能会使用 10 年或更长时间,那么您的产品路线图是什么样的?如果您尚未支持最新的全新或开发中的 Windows 版本,您是否有计划何时支持?您看起来会坚持这些路线图吗?您是否计划对您的应用进行重大更改,无论是其工作方式还是其使用的技术/框架?您的应用是否可插入任何其他应用,例如 MS Office 或 IE,如果是,它对这些应用的旧版本或新版本的容忍度如何?
答案2
我们是一个很小的组织,但已转向标准桌面和认可的软件,以减少管理麻烦。
您更喜欢 MSI 还是 xcopy-able 软件?
任何可以执行“静默”安装的东西。MSI 通常在这里工作得很好,但许多安装程序软件也很好。如果我们必须以某种方式配置它,那么能够编写脚本也是很好的,无论是通过 xcopy 文件还是注册表合并。
如果软件需要框架(Java、.NET),那么出现问题的可能性是否会更大?
由于版本要求不同,这可能会有问题。如果您需要 .NET 3.5 而我们使用的是 3.0,那么我们必须管理该升级并确保它不会破坏其他任何东西。
如果软件支持自动更新,您通常允许这样做吗?
不行。新版本引发问题的风险太大。此外,用户没有管理员权限,因此更新通常不起作用。
一般需要多久时间?
如果有紧急的业务需求,则需要尽快处理,最短只需几个小时。对于较难处理的软件,可能需要一周或更长时间。
您喜欢哪种许可模式(可转让、按座位、按 CPU、全站)?
越便宜越好!我们可以处理大多数合理的选项,但如果软件进行任何类型的自动检查或需要激活,情况就会变得困难。这些选项往往不能很好地处理死机、激活失败等情况,并且通常会给我们带来额外的工作。
ISV 还可以做什么来提高其软件获得批准的机会?
我想到两件事:
- 存储设置时,请考虑机器(Program Files 或 HKLM)和用户配置文件(或 HKCU)之间的差异。如果您做对了,那么我就不必为此感到遗憾了。
- 在您的网站或软件文档中清楚地记录安装、设置和许可详细信息。遵循“部署指南”比自己尝试弄清楚要容易得多。
当然,你首先要让软件值得使用——如果用户真的喜欢它,他们会大声呼喊以获得它的认可!
答案3
我通常首先要看的是 - 您是否掌握了基础知识?如果您做不到这一点,那么我将非常不愿意继续下去。因此,我希望看到一个带有标准自定义工具的 MSI 安装程序,以便我构建转换。我不希望看到安装或使用该软件需要管理员权限。我不希望看到重新配置 PC 的任何要求。我不希望看到每个用户的数据写入每个计算机的位置。我不希望看到手动访问桌面,我希望看到通过 GPO 提供的正确远程管理和配置。换句话说,您是否了解托管企业部署的要求?
如果软件需要任何类型的更新,最好是类似于 AV 定义文件或类似文件的东西,最好可以维护自己的中央更新服务器(如果需要),并且最好是完全且明显可集中配置的。只要我可以关闭程序更新,我并不介意软件附带程序更新。
除了软件运行所必需的网络通信外,我不想看到软件进行任何网络通信。最好能全部记录下来。通过将您的软件放入我的网络,我相信您不会搞砸事情,也不会作恶,所以我希望您不会背叛这种信任。如果您这样做,我会非常失望。记住 - 您是我家的客人,所以请尊重我的家。
没有 Java。根据我的经验,Java 每次部署都会造成严重破坏,主要是因为上述所有方面都出错了。我很高兴接受 .NET,因为至少从中央管理的角度来看,它的设计似乎更合理(此外,由于框架中的限制,.NET 应用程序更有可能正确完成基本工作)。
对于许可,我首先要寻找的是无需注册即可下载的免费试用版。如果我没有看到这个,我可能会怀疑你有什么不可告人的事情。我可以接受时间限制,但我不喜欢功能减少;毕竟,这是我决定你的软件是否适合在我家的阶段,所以我希望能够看到所有内容。
我希望我的整个网站使用一个许可证密钥。必须在每台电脑上输入单独的许可证密钥,这违反了“必须有中央管理”规则。定价也要合理,这样如果我只需要在 200 台电脑上安装您的软件,我支付的费用就不会与在 1500 台电脑上安装时支付的费用相同。
最后,持续的支持和维护非常重要。毕竟,让软件顺利安装和运行只是一件小事,但它在日常使用中的表现却至关重要。如果我需要与您联系以解决问题,我不希望遇到任何障碍,我也不指望您至少在没有调查事实的情况下就开始将责任推到别处。我也不接受任何明显的在维护合同中欺骗我的企图。
答案4
我将首先回答问题 #5,因为这对我来说是最重要的。
5
。 ISV 还可以做什么来提高其软件获得批准的机会?
您能做的最重要的事情就是通过 Windows 徽标测试。“专为 Windows 设计”(或现在他们怎么称呼它)程序会测试许多程序功能和系统交互,如果按照规则编写,这些程序功能和系统交互会减少我的工作量并确保一定程度的稳定性和用户可用性。
以下是对您其余问题的按顺序回答:
-
评估软件时,您会考虑什么?例如:您更喜欢 MSI 还是 xcopy-able 软件?如果软件需要框架(Java、.NET),那么出现问题的可能性是大还是小?
如果可能,请始终在单个文件中使用 MSI 安装程序。这样我就可以手动部署、使用组策略或使用我想要的几乎任何软件部署工具。Windows Vista(和 Server 2008)包含 Microsoft .NET Framework 3.0(和 2.0)作为操作系统组件。如果您使用的是 .NET,请将 2.0 或 3.0 版本作为您的要求,这样我的生活就会更轻松。如果您有其他框架要求,例如 .NET 3.5 或 Java 运行时环境,请严格按照制造商的安装指南进行操作。 -
如果软件支持自动更新,您通常允许这样做吗?
否。在受限用户环境中,用户无法批准更新,而且我几乎从不希望除操作系统安全更新之外的程序更新自动下载。在安静或基本 UI 安装模式下默认关闭自动更新,这样如果我通过组策略进行部署,就不必随后使用注册表修改脚本或工作站访问来关闭更新程序。在手动交互式安装中,提示这一点是可以的。 -
一般需要多久时间?
我不知道需要多长时间。在我上一份工作中,时间范围很广,从立即到数年不等。 -
您喜欢哪种许可模式(可转让、按座位、按 CPU、全站)?
许可需要简单且熟悉。您的产品许可与我已经知道的东西越相似,我需要了解的内容就越少,我就可以越快地购买和部署您的产品。根据程序的类型,我倾向于选择按机器或按用户许可;通过将它们分配给特定用户,可以轻松跟踪这些许可。对于我以前的工作,我们公司太小,通常非常昂贵的站点许可证是负担不起的。