Faço parte do Grupo de Aprovações de Software de uma empresa multinacional e ecoaria absolutamente tudo o que Adam diz acima.
Eu também colocaria os seguintes pontos: em primeiro lugar, sempre pague todos os seus "impostos sobre o desenvolvimento". Isso significa garantir que seu aplicativo funcione corretamente em toda uma variedade de ambientes que você talvez nunca use, mas muito provavelmente será um rompimento de negócios para grandes empresas, coisas como garantir que seu aplicativo funcione bem com perfis de usuário móvel e pastas de usuário redirecionadas (sempre use APIs do Windows para encontrar pastas de usuário e perfil, nunca presuma que elas estejam em locais padrão ou mesmo na unidade local), garantindo que ele seja reproduzido corretamente nos servidores da Área de Trabalho Remota (onde pode haver uma 100 cópias do seu aplicativo em execução ao mesmo tempo, algumas usando conexões muito lentas), em laptops com conexões de rede lentas ou baterias fracas e assim por diante. Como exemplo, recentemente rejeitamos novas versões de mais de um software de uma empresa muito grande (começa com "A" e é famosa por gráficos) porque seus aplicativos repentinamente não são "
Mesmo para software livre / de código aberto, os usuários finais geralmente precisam enviar algum tipo de formulário de solicitação para que o software seja verificado e aprovado.
Pelo tom do seu comentário, parece que você acha que o processo de aprovação tem algo a ver com o custo? Do nosso ponto de vista, o custo por unidade de um aplicativo não é algo que consideraríamos no processo de aprovação. As justificativas financeiras para os aplicativos terão sido elaboradas; as aprovações de software são feitas do ponto de vista técnico e de capacidade de suporte. Geralmente, os softwares livres e de código aberto têm mais problemas para passar por nosso processo do que um aplicativo comercial proprietário. Muitas vezes, isso se deve simplesmente à falta de prestação de contas. A quem você vai quando há problemas com o aplicativo e precisa de suporte, qual é o SLA deles? Quem você pergunta quando precisa descobrir se o aplicativo funcionará com uma nova versão do OtherApp vX, eles estão realmente fornecendo uma resposta real para a qual as pessoas realmente estão trabalhando ou isso é vago "
Depois que o processo é seguido e o software é instalado, as atualizações podem ser problemáticas - muitas organizações tendem a seguir versões mais antigas de software (Windows XP, Office 2003 etc.) por medo de problemas desconhecidos.
As atualizações de software precisam passar pelo mesmo processo que as peças de software totalmente novas. A única vantagem que eles têm é que já saberemos as respostas para algumas das perguntas, pois já apoiamos o software (isso pode não ser positivo para o software, as equipes de suporte vetaram atualizações com base na experiência com a empresa).
Você prefere o software MSI ou compatível com xcopy?
Qualquer um desses métodos de implantação pode ser bom, desde que tenham sido empacotados corretamente. Caso contrário, é bem provável que arrancemos o instalador e reembalemos o software para implantação.
- Qualquer que seja o instalador que você use, certifique-se de respeitar todos os seus modos de instalação silenciosa e autônoma. Se o seu aplicativo precisar de uma instalação manual, ou seja, um rompimento instantâneo de acordos, simplesmente não há uma maneira prática de fazer isso em máquinas nos 5 continentes que recebem todo o suporte que não seja de hardware de um escritório central.
- Dada a escolha, eu prefiro uma instalação MSI bem executada a uma instalação xcopy bem executada. O problema com a maioria dos softwares compatíveis com Xcopy é quando eles tentam configurar e se registrar na primeira execução. Raramente encontrei um aplicativo que faça isso corretamente e não cause problemas em um ambiente de usuário / hotdesk em roaming. Os instaladores do MSI (se você adere à API padrão) não podem dar muito errado.
- Verifique se sua instalação silenciosa oferece a capacidade de fazer todas as alterações na configuração que podem ser feitas em uma instalação manual. Se você estiver usando o MSI e aderindo à API, tudo bem, podemos fazer as transformações do MST e fazer tudo isso sem problemas. Se você estiver usando um instalador de terceiros diferente, verifique se ele permite algo como um arquivo de "resposta" ou um arquivo INI ou similar. Teste a instalação silenciosa e verifique se todas as opções funcionam. Encontrei produtos que anunciam alegremente suas opções de instalação silenciosa, mas eles nunca testaram se todas as opções funcionavam.
- De preferência, forneça opções extras na instalação silenciosa, que permitem definir muitas configurações que um usuário normalmente alteraria no painel Opções. Isso pode ser feito com as opções no setup.exe, com um arquivo INI documentado para as configurações, documentando as alterações necessárias no registro ou todas as opções acima. Seja como for, gostaríamos de garantir que nossos usuários possam começar a funcionar com o software sem precisar fazer nenhuma configuração, os mais importantes são locais padrão para arquivos, nomes de servidores padrão, configurações de proxy (se o aplicativo for executado através de uma rede) etc.
Se o software requer estruturas (Java, .NET), é mais ou menos provável que seja problemático?
É definitivamente mais problemático. O controle de versão na maioria das estruturas e a compatibilidade com versões anteriores e posteriores são atrozes. Com o Java em particular, muitos aplicativos (e sites) exigem uma versão principal e secundária específica do Java instalada e não funcionam com mais nada. Se você precisar colocar três aplicativos diferentes em uma máquina que precisem de versões diferentes de Java e não estiverem satisfeitos com as formas padrão de esconder uma versão de Java como outra, haverá problemas. O .net tem seus próprios problemas com o controle de versão, mas felizmente permitirá que você instale todas as principais versões da estrutura ao mesmo tempo, que contorna muitas delas.
Se o software suportar atualizações automáticas, você geralmente permite isso?
Nunca. Existem muitas dores de cabeça de versão e interoperabilidade para permitir que um aplicativo se atualize sem aviso prévio. As atualizações de aplicativos realizam testes e planejamento. Os usuários com direitos normais de usuário também não podem aplicar as atualizações. Se você usar um método de implantação que permita a aplicação de patches (por exemplo, usar MSIs com patches MSP), isso pode tornar a correção de segurança de aplicativos muito menos dolorosa e podemos gerenciar a atualização automática por meio de nossas ferramentas de implantação (WSUS e SMS ) Além disso, nossa equipe de segurança desconfia de qualquer aplicativo que "retorne à base", eles gostam de saber exatamente quais informações estão enviando e exatamente por que precisam enviar algo para um servidor desconhecido pela Internet.
Quanto tempo geralmente leva?
Alguns aplicativos simples e atualizações de versão podem ser decididos desde que 6 pessoas cliquem no botão de votação "Aprovar" no Outlook. Os mais complexos ou controversos podem esperar a reunião do grupo a cada duas semanas. Alguns aplicativos podem ser discutidos em mais de uma dessas reuniões, pois as equipes tiram dúvidas sobre um aplicativo e pesquisam / testam.
Que tipo de modelos de licenciamento você prefere (transferível, por sede, por CPU, em todo o site)?
Depende totalmente de como o aplicativo será usado e de quantas pessoas. O mais importante é que seu licenciamento esteja claramente definido. Temos que enviar nosso pessoal em cursos (embora gratuitos) para entender o licenciamento da Microsoft. Não vamos nos incomodar em fazer isso por um ISV.
Considere nossas necessidades de instalação silenciosa e automatizada quando se trata de licenciamento. Se suas licenças precisarem de ativação, não queremos que você ligue / envie um e-mail toda vez que reinstalarmos um aplicativo em um PC. Se todas as cópias do aplicativo precisarem de uma chave de licença diferente e digitada, não poderemos implantá-la automaticamente, enquanto que se pudermos comprar uma chave em massa (2, 10, 50, 500, etc.), que poderá ser salva em a instalação silenciosa, então estamos felizes. É ainda melhor podermos voltar para você um ano depois e negociar para expandir nosso número de licenças sem precisar alterar a chave digitada no software.
O que mais os ISVs podem fazer para melhorar suas chances de ter seu software aprovado?
Também veremos coisas que não estão estritamente relacionadas à forma como seu aplicativo está no momento. Tendo em mente que, se o seu aplicativo se tornar parte do fluxo de trabalho padrão de uma de nossas áreas, ele poderá ser usado por 10 anos ou mais; então, como é o roteiro do seu produto? Se você ainda não suporta a versão mais recente ou em desenvolvimento mais recente do Windows, você tem um plano para quando o fará? Parece que você se atém a esses roteiros? Parece que você tem planos de mudanças drásticas no seu aplicativo, tanto do modo como ele funciona quanto das tecnologias / estruturas que ele usa? Seu aplicativo se conecta a outros aplicativos, por exemplo, MS Office ou IE, em caso afirmativo, quão tolerante é a versão antiga ou a mais recente?