[Delphi Series] Como saber o Serial Number de um HD via Delphi?

| sábado, 20 de junho de 2009


Recentemente procurando um trecho de código em Delphi para uma implementação em um dos poucos programas que ainda sou responsável, encontrei um código que escrevi há algum tempo atrás que me foi muito útil em uma ocasião onde precisava validar a instalação da aplicação mediante uma licença vinculada ao número de série do HD do PC instalado.

Além desta função, ainda encontrei outras tantas procedures e functions que escrevi e mantenho ainda em meus arquivos de código e pretendo disponibilizar esses códigos numa série específica de códigos em Pascal, para os que ainda desenvolvem em Delphi e passam talvez pela mesma necessidade que eu já passei algum dia.

Sei que talvez hoje poucas pessoas ainda estejam programando aplicativos para Desktop, Win32. Também acredito que o número de desenvolvedores que usam Delphi ainda, é bem menor que alguns anos atrás, mas também acredito que alguém ainda algum dia possa precisar, então ai vai o primeiro código, a que se refere à identificar o número de série de um HD.

Testei o código na versão 7 do Delphi em um PC com Windows XP SP3 e funcionou corretamente, ok?

function GetSerialNumberFromHD(const SourceDrive: String): String;
var SerialNumber, DirLenght, Marks: DWord;
DriveLabel: Array[0..11] of Char;
stringDrive: String;
charDrive:  Char;
begin
Result := 'Error';
if (length(SourceDrive) = 0) then Exit;

stringDrive := SourceDrive[1]; charDrive := stringDrive[1];

if (charDrive in ['A'..'Z','a'..'z'] = false) then Exit;

try
GetVolumeInformation(PChar(charDrive+':\'), DriveLabel, 12, @SerialNumber, DirLenght, Marks, nil, 0);
Result := IntToHex(SerialNumber,8);
except
Result := 'Error';
end;
end;

Para testar é simples:

Comece uma nova aplicação, acrescente um componente Button ao seu Form, e coloque o seguinte código no evento OnClick:
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(GetSerialNumberFromHD('c:'));
end;

Espero ter ajudado! :)

Vendendo "Seu Peixe" - parte #3 - É mensal? Não quero!

| quarta-feira, 17 de junho de 2009


Em todos os anos em que tenho atuado como comercial de uma empresa de software, oferecendo sistemas, soluções e serviços, colecionei um número de resistências consideráveis por parte das diretorias e coordenadorias das empresas, principalmente quando encerrava a fase de apresentação e demonstração do produto e o assunto passava a ser a política comercial, a precificação.

Dentre as resistências que encontro, destaco uma em especial, talvez a maior de todas elas: a cobrança por um valor mensal, seja ela pela manutenção e suporte técnico de um sistema, seja por uma locação mensal do software. Enfim, quando se trata de uma política comercial que envolve uma taxa mensal por qualquer que seja a razão, há uma certa repulsa por parte dos dirigentes da empresa e em muitas situações inicia-se uma cansativa negociação e um interminável questionamento para que se justifique as reais razões pela tal cobrança.

Fazendo um parênteses aqui, não poderia deixar de citar um artigo postado pelo Carlos Brando no seu blog Nome do Jogo recentemente, onde ele relaciona as formas mais conhecidas de se cobrar por softwares e tem tudo a ver com este post. Se você ainda não leu, vale a pena, vá conferir!

Acontece que, na minha opinião, quando se trabalha com desenvolvimento de softwares e sistemas especializados/específicos, voltados à empresas de médio e grande porte, uma empresa de desenvolvimento nesse segmento não pode e nem deve se aventurar em depender apenas das vendas de licenças de uso, ignorando a cobrança de uma mensalidade por suporte e manutenção do sistema ora desenvolvido. Como se poderia manter uma equipe de suporte técnico especilizada, uma boa equipe de desenvolvedores preparados, atualização de equipamentos como servidores e estações de trabalho, link de Internet, atualização de ferramentas de desenvolvimento e principalmente, como se poderia manter a evolução do sistema ou software no cliente, sem uma boa e saudável receita recorrente?

Trato aqui como receita recorrente, não só as provenientes da venda de licença de uso, mas sim também, e principalmente, as originadas das mensalidades pagas pelos clientes.

Alguns poderiam me responder que isso é possível somente com a venda de licenças de uso, claro, concordo, quando se está falando de softwares que são vendidos em grandes quantidades de licenças de uso e que demandam pouco suporte técnico (pelo menos o suporte técnico que envolve interação humana).

Já passei por uma experiência em uma empresa que, equivocadamente, para fazer frente ao seu principal concorrente, usava o argumento de que não existia a necessidade de cobrança por uma taxa mensal de suporte ou manutenção do software. Em alguns anos conseguiu um número considerável de clientes, até mesmo conseguiu fazer com que clientes do concorrente trocassem de fornecedor, porém a empresa em que trabalhava na época se esqueceu de pensar em alguns detalhes:

* O mercado que atuava era muitíssimo restrito, praticamente algumas centenas no Brasil todo;

* O software era muito específico e muito peculiar; 
* O software em algum momento precisaria evoluir, ter uma nova versão mais atualizada e que acompanhasse as necessidades de cada cliente; 
* Haveria a necessidade de prestar suporte técnico à esses clientes, e obviamente, quanto mais clientes, mais pessoas seriam necessárias contratar para o departamento de suporte técnico; 
* O espaço físico para suportar o número de pessoas contratadas teria que ser maior, ocasionando em investimentos na ampliação do espaço, fosse ele construindo ou locando tal espaço;
Enfim, para resumir a história, a política comercial adotada pela empresa na época não foi sustentável, e o resultado foi no mínimo desastroso. A qualidade no atendimento passou a ser péssima, as reclamações dos clientes eram constantes e o software vendido ficou totalmente obsoleto, ou seja, não acompanhou a evolução das necessidades dos clientes, pois a empresa não possuia recursos suficientes para evoluir seu quadro de desenvolvedores ou investir em novas tecnologias. Resultado: Rapidamente um novo concorrente com um software mais atualizado e com uma nova política de atendimento, mesmo que cobrando uma taxa mensal, passou a arrebatar todos, eu disse todos, os clientes da empresa pela qual eu trabalhava.

Hoje, quando sou sabatinado pelos diretores e coordenadores das empresas que estou prospectando sobre o motivo da cobrança de uma mensalidade para o que chamamos de manutenção e suporte técnico, faço uso de meu principal e mais forte argumento perguntando-lhes se preferem um contrato de parceria com uma empresa que possa perpetuar sua permanência no mercado evoluindo tecnologicamente, mantendo em seu quadro de profissionais pessoas qualificadas e preparadas ou um contrato de parceria com uma empresa que corre o risco de ser extinta por não possuir recursos suficientes para se manter no mercado ou para manter os melhores profissionais em seu quadro.

Até agora tenho obtido êxito com minha argumentação, pois a grande maioria das empresas sérias, buscam uma parceria duradoura e de qualidade com as empresas de software, visto a grande dependência por sistemas de informação que realmente funcionem com qualidade e precisão.

Portanto, caso você tenha passado pela mesma experiência de ser sabatinado e questionado quando se apresenta uma política comercial que envolva a cobrança de mensalidades, tente tal argumentação, mas seja enfático, seja convincente o suficiente para que o seu prospect confie plenamente no que você argumenta. E o mais importante disso tudo: Mantenha sua palavra! Se o seu argumento o convercer que os valores percebidos mensalmente irão possibilitar um bom produto combinado com um excelente atendimento, cumpra-o, pois caso contrário, também estará fadado ao descrédito e ao insucesso.

Caso tenha algo a complementar no post, comente, deixe sua experiência, compartilhe suas idéias. Valew :)

Vendendo "Seu Peixe" - parte #2

| segunda-feira, 1 de junho de 2009


Alguns meses atrás escrevi meu primeiro post sobre vendas, focando principalmente o trabalho de vendas e comercial na área de desenvolvimento de softwares. Meus planos eram de escrever pelo menos 1 artigo relacionado com o assunto por mês, porém acabei deixando que outros compromissos me impedissem de dar continuidade e a partir de hoje farei o possível para postar com mais periodicidade, nem que sejam posts mais curtos.

Como já havia postado, vender software ou oferecer um serviço de consultoria no mercado, realmente não é uma das tarefas mais fáceis de se fazer. Convencer um cliente do valor que se tem o produto ou serviço oferecido, muitas das vezes se torna um processo longo e até mesmo cansativo, mas como digo às vezes: "se fosse muito fácil, não teria graça nenhuma." ;)

Em primeiro lugar, assim como qualquer bem ou serviço que se queira vender, é preciso conhecer em detalhes aquilo que está sendo oferecido para o cliente, é preciso conhecer cada função, cada tarefa, cada recurso que o software oferece, como se comporta, saber exatamente os detalhes da interface, a navegabilidade entre os formulários ou páginas do sistema, como extrair rapidamente uma informação importante, conhecer profundamente as integrações entre os módulos, enfim, o vendedor, ou melhor ainda, o Engenheiro de Vendas, como é chamado o profissional de vendas de software no livro da Aisa Pereira, deve conhecer minuciosamente o software ou o sistema a ser oferecido.

Mas não basta apenas conhecer todos os detalhes do software oferecido, deve-se também saber dos detalhes técnicos, muitas das vezes fatores de decisão na contratação pelo cliente:

A linguagem ou plataforma utilizada no desenovlvimento;
O banco de dados utilizado;
A plataforma do sistema operacional requerido;
As configurações de hardware necessárias (servidor e estações);
A estrutura de rede;
    Uma vez "craque" como profundo conhecedor do produto ou software oferecido, o Engenheiro de Vendas deve também elencar alguns itens que deve ter na ponta da língua quando estiver diante de um cliente ou de uma diretoria, fazendo uma apresentação de sua empresa e dos benefícios oferecidos pelo software, tais como:
    A economia financeira que pode ser alcançada (Na minha opinião, o principal argumento que o cliente quer ouvir);
    A agilidade de processos operacionais;
    Redução de tempo em tarefas antes manuais;
    O melhor aproveitamento dos profissionais da empresa;
    Maior controle do fluxo e centralização de informações;
    Velocidade na tomada de decisões;
    Segurança e sigilo dos dados;
    Suporte ao crescimento da empresa como um todo;
    Entre outros;
      O Engenheiro de Vendas na ocasião da apresentação ou abordagem do produto, pode ainda considerar o conhecimento dos detalhes necessários para a implantação do software oferecido, como o prazo para customizações, técnicas de migração de dados, treinamento dos colaboradores da empresa, etc.

      Enfim, considero o conhecimento detalhado do produto, bem como seus aspectos técnicos e detalhes da implantação, de suma importância para o início de uma boa negociação e fundamentais para a conclusão de um bom negócio.