segunda-feira, 13 de fevereiro de 2012

Venda ou aluguel de software?

Como desenvolvedor de software essa pergunta quase sempre é feita pelo cliente, que normalmente prefere “comprar” o software do que alugar, já que o aluguel remete a aluguel de algo que não será nunca seu, como um imóvel por exemplo.

Software é licenciado

No caso de software, só existe a posse se o usuário possuir acesso contratual o código fonte e todos os recursos necessários para gerar o aplicativo final. Como essa não é situação na grande maioria do software disponibilizado no mercado, salvo a categoria de software livre, o que existe é a cessão direito de uso de uma versão de software.

Como exemplo cito o contrato de licença do Adobe Photoshop CS5, ênfase minha:

“…A ADOBE E SEUS FORNECEDORES POSSUEM TODOS OS DIREITOS DE PROPRIEDADE INTELECTUAL SOBRE O SOFTWARE. O SOFTWARE É LICENCIADO, NÃO VENDIDO. A ADOBE PERMITE QUE VOCÊ COPIE, FAÇA DOWNLOAD, INSTALE, USE OU BENEFICIE-SE DE ALGUMA OUTRA FORMA DA FUNCIONALIDADE OU DA PROPRIEDADE INTELECTUAL DO SOFTWARE SOMENTE EM CONFORMIDADE COM OS TERMOS DESTE CONTRATO….”

Praticamente todos os contratos de licença de software possuem clausulas semelhantes a esta, onde fica explicito que o software é cedido na forma de aluguel e não de venda. O valor pago é para o aluguel da versão específica do software, no caso citado acima, o Adobe Photoshop CS5, e não dá direito a outras versões, somente a correções de erros dessa versão.

Sendo assim não existe software comprado e sim licenciado, o que nos leva ao próximo ponto.

Software como organismo

Atualmente o software é tratado não como algo estático, que tem a versão final e definitiva, e sim como algo orgânico, que está sempre em evolução, e por isso o mais natural e tratar o software como um serviço que está sempre recebendo correções e melhorias. Pois as empresas, usuários, clientes, leis, governos, relatórios, ambiente não são estáticos, sempre existe mudança e o software tem que acompanhar essas mudanças.

Assinatura ou licença única

Eu prefiro o termo assinatura ao aluguel, pois a palavra trás uma conotação melhor do que aluguel, remetendo a assinatura de serviços úteis, como por exemplo o serviço de acesso à internet. Para melhor entendimento, no quadro abaixo faço um comparativo entre a assinatura e a licença única usando como base um software que lançamos recentemente:

image

Fica evidente no comparativo que apesar da licença única ter como vantagem o pagamento único, nos demais itens na assinatura o cliente leva muito mais vantagem, até por que como a fonte de renda do desenvolvedor no caso da licença única é por versão/cliente, quanto mais versões lançadas, maior a receita, o que leva o desenvolvedor a focar no software e não no cliente, assim colocando os recursos da empresa no desenvolvimento de novas versões em detrimento do atendimento ao cliente.

No nosso caso específico, e para o software recém lançado, elaboramos duas tabelas de preços, a primeira utilizando o licenciamento através de assinatura e a segunda utilizássemos a licença única:

image

image

Os valores da tabela de licença única, se somados, dão um valor muito maior do que a de assinatura, pois como a receita é única por venda é preciso equalizar em valores que não tragam prejuízo a longo prazo, e que ainda possam sustentar o desenvolvimento de novas versões com um suporte de qualidade. Após muita ponderação, decidimos então optar pela assinatura, que nos permite oferecer aos clientes um software de qualidade, sempre atualizado e por um custo acessível até para as empresas com menor poder aquisitivo.

Software como serviço

Acredito que o software deve ser visto como um serviço que traz benefícios aos usuários, e não como uma ferramenta estática, que após ser comprada só recebe remendos quando dá problema. A assinatura de um software traz benefícios não só para o desenvolvedor, mas também para o cliente que recebe um software de maior qualidade, que está sempre atualizado sem custo adicional, com ótimo suporte e ainda cria uma relação mais estreita entre o desenvolvedor e o cliente, beneficiando ambos no processo.

terça-feira, 7 de fevereiro de 2012

Automatizando a geração de patchs

Tenho um projeto que está na fase final para lançamento da versão 1.0, mas sempre que é necessário a geração de uma nova versão/patch eu tenho que efetuar vários passos manualmente.

O fluxo é basicamente o seguinte:

Fluxo Desenvolvimento Versão

Cada um desses passos é uma sequencia repetitiva e propensa a erros, que podem ser somente descobertos já no cliente. Para resolver esse problema desenvolvi um aplicativo que faria todos esses passos de forma automática, utilizando parametros configuráveis.

O aplicativo

O aplicativo atualmente é bem simples:

Atualiza Versão

Escolhi fazer como WinForms em vez de console, utilizando os componentes DevExpress. A sequencia é a mesma do fluxo mostrado acima, com a opção de pular algum passo se preciso. É a primeira versão desse aplicativo e por isso optei por deixar algumas coisas fixas no código por enquanto, como por exemplo a solução a ser atualizada.

No próximo post eu darei mais detalhes sobre esse aplicativo.

quarta-feira, 1 de fevereiro de 2012

Snapshots no VMware

Hoje percebi que estava ficando sem espaço no disco C: no meu desktop, usei o SpaceSniffer, um ótimo programa gratuito para visualizar o espaço utilizado, e descobri o culpado: VMware Workstation.

Algumas VM's estavam ocupando muito espaço, principalmente as de Windows XP, que normalmente não utilizam muito espaço para os discos virtuais. Ao analizar os arquivos percebi arquivos vmdk duplicados, que na verdade estão ligados aos arquivos de snapshot. Como utilizo muito a função snapshot no VMware, principalmente no XP, os arquivos estavam diminuindo drasticamente o meu espaço livre no disco.

Agora estou removendo os snapshots que não estão sendo utilizados para recuperar um pouco de espaço.