Prazos
- Os tempos de desenvolvimento não são comprimíveis a partir de um certo ponto
- Nenhum sistema de qualidade fica pronto em menos de 3 meses (ou já estava pronto antes e foi cobrado um desenvolvimento que não ocorreu)
- Pelo menos um terço do tempo de desenvolvimento deveria ser dedicado a testes
Plataformas ou ambientes
- Um software deveria sempre ter - no mínimo - três ou quatro plataformas ou ambientes de trabalho:
- Um para desenvolvimento
- Um para teste(do pessoal do desenvolvimento)
- Um para homologação (para o contratante ou usuário usar o novo sistema em produção mas sem risco para a versão em produção - esta em algumas situações pode ser opcional)
- Um para produção (onde realmente está a operação do negócio que depende deste software ou do sistema do qual faz parte)
- O banco de dados usado para desenvolvimento e para teste não pode ser o mesmo banco de dados de homologação / produção. É recomendável, conforme a situação, que a homologação tenha seu próprio banco de dados
- É aconselhável que os bancos de dados não estejam nas mesmas plataformas/ambientes/servidores dos programas aplicativos. O que pode significar duas ou três plataformas/ambientes/servidores adicionais
Desenvolvimento
- Não há solução simples, mas sempre há uma solução simples e errada para um problema complexo
- A qualidade do desenvolvimento é diretamente proporcional a média da competência da equipe e inversamente proporcional ao tamanho da equipe
- Software ainda é uma atividade autoral e tão eficiente quanto mais clara é a visão do autor principal
Manutenção
- A solução para a manutenção do sistema deve ser contratada ao mesmo tempo em que se contrata seu desenvolvimento
- Todo software utilizado - isto é, bem utilizado - gerará solicitações de alteração dos seus usuários. Por outro lado. todo software não utilizado, sem valor, não terá manutenção
- A qualidade da manutenção do software é inversamente proporcional a proximidade dos que são responsáveis por manter o código daqueles que foram os criadores do código. A provável um fracasso quanto se tem um fornecedor para desenvolver e outro para manter
Soluções Móveis
- Toda solução móvel é complexa
- Nem toda a solução móvel precisa ser um app carregado no dispositivo móvel. Tendo uma conexão com a internet, o aplicativo móvel pode se reduzir a interface e/ou ao browser
- Toda solução móvel complica a gestão de segurança
Conhecimento Interno / Transferência de Conhecimento
- Conhecimento não se transfere
- Pode ser transferida a informação
- Somente uma equipe envolvida no esforço de desenvolvimento e manutenção pode receber a informação e transformar em conhecimento
Custos X Competências ou Custos X Horas
- Competência tem custo, há uma linha base de custo abaixo da qual ou a competência não existe ou há outros interesses no processo
- Em desenvolvimento de software custos e horas de trabalho são forças apertando um mesmo balão inflável. Ao apertar custos (e competências) expandem-se as horas de trabalho
- Custo pode ser reduzido com reduções de escopo - fazer somente o que é necessário e não todos os sonhos que os usuários ou planejadores possam antever
Inovação x Modismos tecnológicos
- Inovar é trazer soluções novas que afetam as operações reduzindo tempo ou custo
- Modismo tecnológico é adotar algo novo porque parece interessante e promissor
- Inovação e Modismo tecnológico raramente andam juntos
Software Livre x Software Gratuito
- Software Livre não é gratuito, sempre há custos de suporte ou de manutenção externos ou de manter uma equipe interna com conhecimento para mantê-lo
- Software Gratuito não é profissional
- Os riscos de utilizar Software Livre sem acompanhamento adequado impactam fortemente aspectos de segurança
Segurança e Privacidade
- Segurança e Privacidade são os maiores desafio hoje em qualquer sistema, principalmente se este sistema tem componentes de software (e humanos).