Muitas organizações maiores têm departamentos de TI que bloqueiam os desktops em uma configuração padrão, ou SOE. Os usuários finais geralmente não têm direitos para instalar seu próprio software e, mesmo se o tivessem, as organizações tendem a permitir apenas a instalação de software "aprovado".
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. 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.
O que os desenvolvedores de software podem fazer para acelerar o processo de aprovação?
Se você estiver envolvido em um processo de aprovação:
- O que você procura ao avaliar o software? Por exemplo:
- Você prefere o software MSI ou compatível com xcopy?
- Se o software requer estruturas (Java, .NET), é mais ou menos provável que seja problemático?
- Se o software suportar atualizações automáticas, você geralmente permite isso?
- Quanto tempo geralmente leva?
- Que tipo de modelos de licenciamento você prefere (transferível, por sede, por CPU, em todo o site)?
- O que mais os ISVs podem fazer para melhorar suas chances de ter seu software aprovado?
fonte
Respostas:
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 "
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 "
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).
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.
É 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.
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.
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.
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.
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?
fonte
Somos uma organização bastante pequena, mas fomos para desktops padrão e software aprovado para reduzir nossos problemas com administradores.
Qualquer coisa que possa executar uma instalação "silenciosa". Os MSI geralmente funcionam bem aqui, mas muitos softwares de instalação também são bons. Se tivermos que configurá-lo de alguma forma, é bom poder fazer o script também, seja por xcopy-ing arquivos ou mesclagem de registro.
Pode ser problemático devido aos diferentes requisitos de versão. Se você precisa do .NET 3.5 e estamos usando o 3.0, precisamos gerenciar essa atualização e garantir que ela não interrompa mais nada.
Não. Muito risco de a nova versão causar problemas. Além disso, os usuários não têm direitos de administrador, portanto, as atualizações geralmente não funcionam de qualquer maneira.
Se houver uma necessidade comercial urgente, o mais rápido possível - em apenas algumas horas. Para software mais complicado, talvez uma semana ou mais.
Quanto mais barato, melhor! Podemos lidar com as opções mais razoáveis, mas fica difícil se o software fizer qualquer tipo de verificação automática ou exigir ativação. Eles não costumam lidar bem com PCs mortos, ativações com falha etc., e geralmente fazem um trabalho extra para nós.
Duas coisas vêm à mente:
E é claro que você precisa fazer valer a pena usar o software em primeiro lugar - se o usuário realmente o ama, eles gritam mais alto para que seja aprovado!
fonte
A primeira coisa que geralmente olho é: você entendeu o básico? Se você não puder fazer isso, ficarei incrivelmente relutante em ir além. Então, eu quero ver um instalador MSI com uma ferramenta de personalização padrão para permitir que eu crie uma transformação. Não quero ver nenhum requisito para direitos de administrador para instalar ou usar o software. Não quero ver nenhum requisito para reconfigurar PCs. Não quero ver dados por usuário gravados em locais por computador. Não quero ver visitas manuais às áreas de trabalho, quero ver o gerenciamento remoto e a configuração adequados disponíveis por meio de GPOs. Em outras palavras, você entende os requisitos de uma implantação corporativa gerenciada?
Se o software exigir algum tipo de atualização, é melhor que seja semelhante a um arquivo de definição de AV ou semelhante, é melhor manter seu próprio servidor de atualizações central, se você quiser, e é melhor e obviamente configurável centralmente. Não me importo com software que vem com atualizações de programas, desde que eu possa desativá-las.
Não quero ver nenhuma comunicação na Internet a partir do software além daquilo que é absolutamente necessário para que ele funcione. E é melhor que tudo esteja documentado. Ao deixar seu software na minha rede, estou confiando em você para não estragar nem ser mau, então espero que você não a traia. Se o fizer, ficarei muito decepcionado. Lembre-se - você é um hóspede em minha casa, então trate minha casa com respeito.
SEM JAVA . Na minha experiência, o Java causou estragos absolutos no que diz respeito à implantação, todas as vezes, principalmente ao entender tudo errado acima. Fico feliz em aceitar o .NET, pois pelo menos parece ter sido projetado com mais sensibilidade do ponto de vista do gerenciamento central (além de um aplicativo .NET ter mais chances de acertar o básico devido a restrições na estrutura).
Para o licenciamento, a primeira coisa que procurarei é uma versão de avaliação gratuita que eu possa baixar sem precisar me registrar. Se eu não vir isso, provavelmente suspeitarei que você tem algo a esconder. Estou bem com o tempo limitado, mas não gosto de funcionalidade reduzida; afinal, este é o estágio em que estou decidindo se o seu software será um hóspede aceitável em minha casa, então quero poder ver tudo.
Quero uma única chave de licença para todo o site. Ter que digitar uma chave de licença separada em cada PC quebra a regra "deve ter administrador / gerenciamento central". Faça um preço sensato também, de modo que, se eu precisar instalar apenas o software em 200 dos meus PCs, não pagarei o mesmo que precisar instalar no 1500.
Finalmente, o suporte e a manutenção contínuos são importantes. Colocar o software sem dor é apenas uma coisa pequena, afinal de contas, mas como ele se comporta ao longo do tempo no uso regular do dia a dia é absolutamente crítico. Se eu precisar entrar em contato com você para resolver um problema, não espero obstáculos e não espero que você comece a colocar a culpa em outro lugar sem pelo menos uma investigação para estabelecer os fatos. Também não aceito qualquer tentativa óbvia de me desviar de um contrato de manutenção.
fonte
A resposta do GAThrawn cobre a maior parte do que eu ia dizer. Eu quero expandir um pouco o aspecto do licenciamento.
Aplicativos que precisam telefonar para casa da nave-mãe para verificação de licenciamento geralmente são negados. Se você é realmente tão protetor com seu software, forneça um servidor de licenciamento que possamos hospedar. Essa pode ser uma solução de terceiros como o FLEXlm ou algo que você desenvolve internamente. O FLEXlm é de longe o mais comum em nosso ambiente.
As opções de licenciamento de uso simultâneo são sempre uma grande vantagem.
Se você nos hospedar em um servidor de licenças, verifique se a porta tcp / udp na qual ele se comunica é configurável. NÃO ASSUME seu servidor de licenças é o único em execução na caixa.
Toda interação cliente / servidor precisa ser feita sem nenhuma interação do usuário final.
Um arquivo de texto que vive em um compartilhamento de rede que exige que os usuários finais tenham acesso de gravação NÃO É uma solução de licenciamento aceitável. Os usuários não têm e nunca terão acesso de gravação aos nossos servidores de aplicativos ou licenciamento. Não vamos fazer uma exceção para você. Não me importo se você acha que podemos mantê-lo bloqueado com cotas e coisas assim. Não vale a pena o aborrecimento e seu software simplesmente não é tão importante.
fonte
Vou responder primeiro, porque é o mais importante para mim.
A principal coisa que você pode fazer é passar no teste do logotipo do Windows. O programa "Designed for Windows" (ou o que eles chamam hoje em dia) testa várias funções do programa e interações do sistema que, se escritas de acordo com as regras, reduzem o trabalho para mim e garantem um nível de estabilidade e usabilidade para os usuários.
Aqui estão as respostas para o restante das suas perguntas em ordem:
Sempre use um instalador MSI em um único arquivo, se possível. Isso me permite implantar manualmente, com Diretiva de Grupo ou com praticamente qualquer ferramenta de implantação de software que eu desejar. O Windows Vista (e Server 2008) inclui o Microsoft .NET Framework 3.0 (e 2.0) como um componente do sistema operacional. Se você estiver usando .NET, faça da versão 2.0 ou 3.0 sua exigência e você facilitará minha vida. Se você tiver outro requisito de estrutura, como .NET 3.5 ou Java Runtime Environment, siga as orientações do fabricante para instalação, conforme a letra.
Não. Em um ambiente de usuário limitado, os usuários não podem aprovar atualizações, e eu quase nunca quero que as atualizações de programas que não sejam atualizações de segurança do SO sejam baixadas automaticamente. Desative as atualizações automáticas por padrão nos modos de instalação da interface do usuário silenciosa ou básica, para que, se eu implantar por meio da Diretiva de Grupo, não precise seguir os scripts de modificação do registro ou as visitas à estação de trabalho para desligar o atualizador. Em uma instalação interativa manual, não há problema em solicitar isso.
Não tenho uma boa resposta por quanto tempo leva. No meu último emprego, ele variou muito na faixa de imediatamente a anos.
O licenciamento precisa ser fácil e familiar. Quanto mais o licenciamento do seu produto for semelhante a algo que eu já conheço, menos eu tenho que aprender sobre ele e mais rápido eu continuarei comprando e implantando o seu produto. Dependendo do tipo de programa, costumo preferir o licenciamento por máquina ou por usuário; estes são fáceis de rastrear atribuindo-os a usuários específicos. Para o meu trabalho anterior, nossa empresa era pequena demais para o que geralmente eram licenças de site muito caras para serem acessíveis.
fonte
A função da TI é implantar e manter a tecnologia para dar suporte ao negócio principal.
Para você, o ISV, isso significa:
Licenciar é algo que depende do que você faz. Como um cara de TI. Quando você seleciona uma solução de software para aquisição, o modelo de licenciamento precisa fazer parte desse processo. Nós custamos a administração de licenças em nossas aquisições; portanto, se você é uma empresa como a Symantec que deseja níquel e tostar com 6 métricas de licença diferentes, nosso custo de conformidade será considerado. Se você é uma empresa como a Microsoft e seu processo de licenciamento ultrajante é horrível, mas não tenho escolha ... isso se torna parte do custo de se fazer negócios.
fonte