Processos de aprovação de software em grandes organizações

8

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:

  1. 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?
  2. Se o software suportar atualizações automáticas, você geralmente permite isso?
  3. Quanto tempo geralmente leva?
  4. Que tipo de modelos de licenciamento você prefere (transferível, por sede, por CPU, em todo o site)?
  5. O que mais os ISVs podem fazer para melhorar suas chances de ter seu software aprovado?
Paul Stovell
fonte
A vastidão das respostas fornecidas a esta pergunta faz parecer que ele deve ser uma comunidade wiki
Ryan Bolger

Respostas:

12

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?

GAThrawn
fonte
Resposta boa e abrangente. Muitas das coisas que o GAThrawn especifica explicitamente aqui são cobertas pelo programa de logotipo do Windows (por exemplo, pagamento de impostos sobre o desenvolvimento).
21813 Jay Michaud
+1 pelo simples esforço de responder a cada ponto.
osij2is 14/09/09
6

Somos uma organização bastante pequena, mas fomos para desktops padrão e software aprovado para reduzir nossos problemas com administradores.

Você prefere o software MSI ou compatível com xcopy?

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.

Se o software requer estruturas (Java, .NET), é mais ou menos provável que seja problemático?

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.

Se o software suportar atualizações automáticas, você geralmente permite isso?

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.

Quanto tempo geralmente leva?

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.

Que tipo de modelos de licenciamento você prefere (transferível, por sede, por CPU, em todo o site)?

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.

O que mais os ISVs podem fazer para melhorar suas chances de ter seu software aprovado?

Duas coisas vêm à mente:

  • Considere a diferença entre a máquina (Arquivos de Programas ou HKLM) e o perfil do usuário (ou HKCU) ao armazenar configurações. Se você fizer isso direito, não precisarei me desculpar.
  • Documente os detalhes de instalação, configurações e licenciamento claramente no seu site ou na documentação do software. É muito mais fácil seguir um "guia de implantação" do que tentar descobrir por mim mesmo.

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!

Adão
fonte
3

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.

Maximus Minimus
fonte
3

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.

Ryan Bolger
fonte
2

Vou responder primeiro, porque é o mais importante para mim.

5. O que mais os ISVs podem fazer para melhorar suas chances de ter seu software aprovado?

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:

  1. O que você procura ao avaliar o software? Por exemplo: Você prefere o MSI ou o software compatível com xcopy? Se o software requer estruturas (Java, .NET), é mais ou menos provável que seja problemático?
    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.
  2. Se o software suportar atualizações automáticas, você geralmente permite isso?
    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.
  3. Quanto tempo geralmente leva?
    Não tenho uma boa resposta por quanto tempo leva. No meu último emprego, ele variou muito na faixa de imediatamente a anos.
  4. Que tipo de modelos de licenciamento você prefere (transferível, por sede, por CPU, em todo o site)?
    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.
Jay Michaud
fonte
1

A função da TI é implantar e manter a tecnologia para dar suporte ao negócio principal.

Para você, o ISV, isso significa:

  • Forneça um processo automatizado de instalação e desinstalação que seja bem testado
  • Integre seu processo de atualização às ferramentas de gerenciamento de sistemas, se possível. Se você tiver um ou dois escritórios com conexões WAN / Internet rápidas, a atualização automática estará correta. Para um local como o local onde trabalho com mais de mil locais remotos com largura de banda variando de 56k Frame Relay a 1GB de metro Ethernet, precisamos controlar quando as coisas acontecem.
  • Quando grupos de desenvolvimento interno ou uma unidade de negócios enviam software para distribuição, podemos distribuí-lo em 3-5 dias. Normalmente, o teste de aceitação do usuário leva mais tempo e depende inteiramente do processo de teste do grupo com o qual estamos lidando. (O sistema 24/7 usado no callcenter possui um processo formal de teste. A atualização do Dreamweaver é um processo de teste de muito baixo impacto)
  • Se for impossível empacotar seu software em 3 a 5 dias, você estará perdendo pontos quando o avaliarmos. Se o seu modelo de distribuição for realmente burro e tivermos uma escolha, desqualificá-lo.
  • Documento, documento, documento

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.

duffbeer703
fonte