Parte 1 – Comprar pronto, desenvolver internamente ou desenvolver externamente?
Parte 2 – Metodologia para compra de software
Parte 4 – Conclusão

Requisitos para compra de software

Muito bem, chegou a hora da equipe de TI assumir o seu papel e definir quais são os requisitos técnicos que serão avaliados no processo de escolha do software. Esta é uma tarefa bastante espinhosa pois são muitas variáveis a serem consideradas. O serviço público tem novamente uma dificuldade extra, uma vez que se levantar exigências obrigatórias muito altas, corre o risco de não encontrar nenhuma empresa que atenda às suas expectativas e então toda a licitação é cancelada. Por outro lado, se pontuar poucas coisas, as empresas com sistemas de baixa qualidade ganharão a licitação por apresentarem o menor preço.

Para facilitar este trabalho, você pode fazer primeiro um brain storm e colocar no papel todos os ítens técnicos que você gostaria de encontrar no software. Depois você deve filtrar aqueles que são pouco relevantes e verificar se existem soluções que atendam aos seus critérios. Por fim você deve definir em que posição cada critério deve estar:

  • O – Requisito obrigatório: é aquele que quando não estiver presente desclassifica completamente uma proposta. Deve-se tomar um especial cuidado para não excluir de cara soluções que possam não atender um requisito específico e ainda sim ser uma opção viável.
  • Requisito desejável: é aquele que não desclassfica uma proposta mas servirá para compor uma nota técnica final. Você pode atribuir pesos diferentes para cada ítem como:
    • MD – Muito desejável (5 pontos),
    • D – Desjável (3 pontos),
    • PD – Pouco desejável (1 ponto).
  • C – Requisito contratual: é aquele que compõe uma exigência contratual obrigatória que influenciará no custo global de implantação e manutenção. Os ítens se referem em geral a forma como os serviços da empresa contratada deverão ser realizados.

Vejamos aqui alguns requisitos que você poderá querer utilizar como ponto de partida para a sua pontuação. Longe de querer apontar uma forma acabada, a intenção aqui é demonstrar um exemplo de como comparar soluções de software, sobre o ponto de vista de TI. A classificação e escolhas dos ítens variam muito em cada caso. Dependem da maturidade do mercado de software para a solução que você deseja adquirir. Os pesos atribuídos para cada ítem são mais para efeito de ilustração e devem variar com a cultura de TI existente.

Documentação Fornecida

Aqui está em jogo a capacidade do software em fornecer informação em diversos níveis em com diferentes qualidades. A qualidade da documentação está diretamente relacionada com a capacidade de manutenção do software comprado. Quanto melhor a documentação, menor o custo de manutenção e menor o tempo necessário para correções de erro e implantação de novas funcionalidades.

Ítem C O MD D PD
Dicionário de Dados contendo descrição de tabelas, chaves estrangeiras, índices, visões, sequências, gatilhos, funções, procedimentos e rolesX
Diagrama Entidade RelacionamentoX
Diagramas de caso de uso (UML 1.1 ou superior)X
Diagramas com regras de negócio em outro formatoX
Diagramas de classes (UML 1.1 ou superior)X
Outros diagramas UML 1.1 ou superioresX
Manual do usuário impressoX
Ajuda on-line para o usuário com opção de buscaX
Ajuda on-line sensível ao contextoX
Controle de versão de toda a documentaçãoX
Atualização de toda a documentação a cada nova versão do softwareX

Vale aqui verificar qual é o formato em que as documentações técnicas estão disponíveis. É sempre interessante receber a documentação em formato impresso (alguns diagramas podem necessitar de papel de tamanho especial como A2 ou A1) e formato eletrônico. O formato eletrônico é mais adequado para receber quando houverem apenas pequenas alterações do software. No entanto, muitas empresas utilizam formatos que só abrem em programas específicos, dificultando a sua manipulação.

Tecnologia

Aqui a maioria das pessoas deve procurar se afastar dos modismos e procurar tecnologias já consagradas no mercado. Ferramentas proprietárias tem o azar de perderem o suporte depois de algum tempo, o que pode causar transtorno a longo prazo. Deve-se evitar ferramentas pouco robustas como geradores de código e RAD.

Um cuidado especial deve ser tomado com custos relacionados a tecnologias proprietárias. O custo das licenças deve ser contabilizado no custo total de implantação. O custo de manutenção destas ferramentas também deve ser contabilizado no custo total de manutenção. Particularmente, a maioria das linguagens de programação não exigem licenças de uso para executar a aplicação final, no entanto existem ferramentas que utilizam interpretadores que convertem o código da aplicação em código de máquina, necessitando de licenças por conexão ou por processador.

Ítem C O MD D PD
Uso de SGDB relacional multiplataforma compatível com a linguagem SQLX
Uso de protocolo de comunicação TCP/IPX
Uso de servidor de aplicação multiplataformaX
Interface com usuário multiplataformaX

Se possível dê preferência (colocando como ítem desejável) por tecnologias que sua equipe já tem experiência, principalmente se houver a intenção de adquirir o código fonte do software. Uma atenção especial neste sentido deve ser dada às tecnologias de comunicação e de banco de dados. Você pode ser obrigado a fazer investimentos significativos de precisar suportar tecnologias novas nesta área.

Arquitetura

A arquitetura do software é uma área importante no mundo corporativo. Softwares cliente-servidor estão sendo aposentados por apresentarem difícil manutenção e baixa escalabilidade.

Ítem C O MD D PD
Uso de 3 camadasX
Uso de MVCX
Uso de framework de software
X

Desenvolvimento WEB

Este ítem está destacado aqui por apresentar uma série de especificidades que merecem atenção especial. As aplicações web tem inúmeras vantagens que fogem do escopo deste texto, no entanto, uma boa aplicação deve atender a alguns critérios mínimos que se esquecidos podem trazer surpresas desagradáveis para os usuários. As interfaces WEB tem se tornado muito populares, mas não são adequadas ainda quando você precisa de entrada de grande volume de dados ou quando precisa de ferramentas gráficas de edição avançadas. Se você não pretende utilizar aplicações WEB, você pode pular esta parte.

Ítem C O MD D PD
Homologação nos navegadores IE 6.0, Firefox 1.0 e Safari 1.0 e todas versões superioresX
Possuir CSS 1.0 válidoX
Possuir HTML ou XHTML válidoX
Utiliza servidor web multiplataformaX
É plenamente funcional sem Java instalado no clienteX
É plenamente funcional sem JavaScript habilitadoX
Possui suporte a httpsX

A parte mais importante aqui é garantir que a aplicação WEB seja escrita utilizando os padrões da W3C, garantindo que a aplicação funcione em diferentes situações.

Metodologia de desenvolvimento

A metodologia de desenvolvimento adotado está diretamente relacionada com o risco da empresa possuir métricas capazes de cumprir prazos e orçamentos. Uma metodologia formal bem documentada e aplicada deve trazer segurança o processo de desenvolvimento. Na área corporativa, a certificação CMM e CMMI são sinônimos de qualidade nesta área. No entanto, nem sempre se encontra fornecedores com este tipo de certificação para o tipo de software que se deseja adquirir. O processo de certificação CMMI custa atualmente cerca de U$ 400 mil, sendo assim, a SOFTEX criou uma iniciativa de certificação nacional chamada MPS.BR baseado no CMMI que está permitindo fábricas de software de menor porte alcançar uma certificação. O MPS.BR é ainda muito novo, mas estima-se que um número cada vez maior de pequenas e médias empresas adotem esta certificação no Brasil.

Deve-se ter em mente que quanto mais crítico e complexo for o software, mais importante será a contratação de uma empresa com certificação.

Ítem C O MD D PD
Certificação CMM ou CMMI nível 3 ou superiorX
Certificação CMM ou CMMI nível 2X
Certificação ISO 15504 nível 3 ou superiorX
Certificação ISO 15504 nível 2X
Certificação ISO 12207X
Certificação MPS.BR níveis F e GX
Certificação MPS.BR níveis E ou superiorX

Caso você não encontre empresas certificadas que forneçam o software desejado, você terá que pensar na seguinte tarefa: como verificar se um fornecedor possui um modelo de desenvolvimento confiável onde seja visível as etapas clássicas do desenvolvimento de software (análise, especificação, projeto, implementação, teste, documentação, treinamento, implementação e manutenção). Segue alguns indicadores que podem ser utilizados.

ÍtemC O MDD PD
Organograma detalhado da equipe de desenvolvimentoX
Descrição detalhada das funções da equipe de desenvolvimentoX
Modelo de Processo de Desenvolvimento de Software formalizadoX
Utiliza RUPX
Utiliza controle de versão do código fonteX
Possui equipes distintas para

  • Análise e projeto
  • Desenvolvimento
  • Testes
X
Possui equipe distinta para gerência de projetosX
Realiza testes do tipo Caixa BrancaX
Realiza testes do tipo Caixa PretaX
Realiza testes do tipo Caixa CinzaX
Realiza testes de unidade, integração e sistemaX

Usabilidade

A usabilidade diz respeito a facilidade com que o usuário lida com a aplicação. Em geral, uma boa usabilidade garante maior produtividade e satisfação e menor ocorrencia de erros por parte do operador do software.

ÍtemC O MDD PD
Interface e menssagens traduzidas para o Português do Brazil.X
Validação dos tipos dados inseridosX
Exibe falhas de validação após a digitação de cada campoX
Exibe apenas as funções ativas na telaX
Solicita confirmação do usuário para ações destrutivas ou não reversíveisX
Realiza paginação de listasX
Possibilita a inserção de texto com letras maiúsculasX
Possibilita plena navegação na aplicação sem uso do mouseX
Tabulação dos campos segue a órdem em que aparece na telaX
Possui busca fonética no Português do Brasil em campos de textoX
Exporta relatórios no formato CSVX
Exporta relatórios no formato PDFX
Exporta relatórios no formato MS Word 2000 ou superiorX
Exporta relatórios no formato MS Excel 2000 ou superiorX
Exporta relatórios no formato ODFX
Permite que o operador selecione um tema em alto contrasteX
Permite que o operador aumente o tamanho da fonte padrão do textoX
Possui teclas de atalho para as principais funções e menusX
Sinalização gráfica informando o status de operações longas ou em várias etapas.X
Botões exibem dicas quando o ponteiro do mouse para sobre elesX

Interoperabilidade

Esta categoria diz respeito a capacidade do sistema de se integrar com os seus demais sitemas legados ou que possam vir a ser adquiridos futuramente. Suportar protocolos e padrões abertos são requisitos obrigatórios. A questão de interoperabilidade é tão importante que o Governo Federal criou o e-PING que é um documento trata com detalhes o assunto. A versão 1.0 do e-PING foi publicada em 2005 e continua sendo atualizada constantemente, se tornando uma referência obrigatória nesta área.

Segurança e Auditabilidade

Esta categoria de requisitos visa garantir a segurança e integridade das informações contidas no sistema bem como rastrear possíveis problemas ocorridos durante a operação do software.

ÍtemCOMDDPD
Utiliza integridade referencial no banco de dadosX
Utiliza controle de transações para operações concorrentesX
Não registra usuários da aplicação como usuários do banco de dadosX
Armazena senhas de usuários em formato criptografadoX
Registra histórico de operações realizadas pelos usuáriosX
Registra erros de importação de dados externos
Registra erros da aplicação dentro do servidorX
Possui busca nos registros históricos por nome de usuário, data e tipo de operaçãoX
Proteção contra injeção de SQLX
Criação de perfis de usuáriosX
Atribuição de usuários ou perfis de usuários a um perfil de usuário.
Atribuição de permissões para cada funcionalidade por usuárioX
Atribuição de permissões para cada funcionalidade por perfil de usuárioX
Atribuição de permissão para cada usuário a uma faixa de valores em funcionalidades específicasX
Possibilidade de inativar usuários por período determinadoX
Possibilidade de inativar usuários por período indeterminadoX
Possibilidade de inativar grupos de usuários por período determinadoX
Possibilidade de inativar usuário em data prédeterminadaX
Expira seção do usuário após determinado de inatividadeX

Implantação e Manutenção

Este ítem descreve como deve ser o processo de implantação e manutenção. Os prazos aqui definidos tem impacto direto nos custos de implantação e manutenção do Software.

ÍtemC O MDD PD
Importação, checagem de consistência e remodelagem de dados já existentes para o novo softwareX
Análise de requisitos, adequação do software e testesX
Implantação de funcionalidades principais em até 6 meses após início da vigência do contratoX
Implantação de funcionalidades secundárias em até 12 meses após início de operação das funcionalidades principaisX
Treinamento dos usuários do software antes da implantação do SoftwareX
Treinamento da equipe de TI demonstrando o modelo de dados do SoftwareX
Treinamento ou reciclagem de usuários anualmente após implantação do SoftwareX
Criação de interfaces com outros softwares já existentes ou que venham a ser implantados em até 20 dias úteisX
Implantação ou alteração de funcionalidades por força de alteração na legislação federal, estadual ou municipalX
Correção de erros críticos em até 4 horasX
Correção de erros graves em até 24 horasX
Correção de demais erros em até 5 dias úteisX

Aqui, é possível que alguns fornecedores lhe digam que não tem condições de cumprir alguns prazos exigidos. Não deve-se descartar imediatamente estas empresas. Se o fornecedor adquiriu uma boa avaliação nos requisitos de metodologia de desenvolvimento, e possui uma equipe de desenvolvimento com um porte mediano em comparação aos demais fornecedores, é possível que seus prazos sejam realmente impraticáveis. É recomendável discutir esta questão com outros fornecedores e avaliar se os prazos são viáveis e se for o caso altera-los.

Equipe de desenvolvimento

Este grupo de requisitos visam medir a qualidade da equipe de desenvolvimento, bem como o porte da mesma. Uma grande equipe garante que a simples saída de um funcionário do fornecedor não vá comprometer o projeto como um todo além de permitir a alocação de mais recursos em épocas de grandes demandas.

ÍtemC O MDD PD
50 ou mais pessoas da equipe de desenvolvemento com jornada acima de 30 horas semanais em regime CLTX
10 ou mais membros da equipe de desenvolvimento com mestrado ou experiência comprovadas na área de desenvolvimento superior a 10 anosX
25 ou mais membros da equipe de desenvolvimento com nível superior ou experiência comprovadas na área de desenvolvimento superior a 5 anosX
5 ou mais membros da equipe de desenvolvimento com certificação PMP ou experiência comprovada na área de desenvolvimento superior a 5 anosX
5 ou mais membros da equipe de desenvolvimento com experiência comprovada como DBA superior a 5 anosX
5 ou mais membros da equipe de desenvolvimento com experiência comprovada em teste de software superior a 5 anosX

Fabio Telles Rodriguez

DBA Oracle e PostgreSQL há mais de 15 anos. Grande experiência com ambientes críticos, grande porte, desenvolvimento, segurança e performance em banco de dados.

Comentários

3 Comentários

Deixe um comentário

Deixe um comentário