Blog

  • Entendendo a Sefaz – NFe, CTe, NFSe e Outros

    Entendendo a Sefaz – NFe, CTe, NFSe e Outros

    Eu entendo que o título deste artigo vai parecer muito arrogante, pois é impossível entender a Sefaz, mas assim o título fica menor e é melhor para o SEO. O que vamos explorar aqui não é exatamente código, mas revisar conceitos e problemas mais comuns que programadores têm ao implementar um módulo fiscal em seu sistema. Este artigo é destinado para quem vai começar a implementação e facilitar o entendimento de para aqueles que simplesmente vão fazer manutenções em sistemas já existentes.

    Comecei a trabalhar com essa parte fiscal há mais ou menos 1,5 ano. Para quem já trabalhou com NFe, CTe e, mais recentemente, NFSe, deve saber que a Sefaz parece que faz de tudo para você cometer erros. O suporte é quase nulo e eles poderiam realmente fazer uma forma de facilitar a comunicação e dar melhores retornos. Mas a verdade é que parece que o governo usa multa como fonte de renda, então para quê facilitar que o empresário pague ao próprio governo, né?

    Supostamente, a NFe / CTe foi criada para reduzir o esforço e facilitar a emissão de documentos fiscais. Não há duvidas de que o controle do governo para o pagamento desses impostos aumentou e a dificuldade para sonegar impostos é maior. Entretanto, a dificuldade para emissão da nota também aumentou. Atualmente as empresas são obrigadas a emitir NF e do antigo CTRC (na maioria dos estados) de forma eletrônica. Futuramente a Nota Fiscal de Serviço também será eletrônica.

    Obs. NFe = Nota Fiscal Eletrônica, NFSe = Nota Fiscal de Serviço Eletrônica, CTe = Conhecimento de Transporte Eletrônico. O leiaute 3.0 da NFe, referente ao Cupom Fiscal Eletrônico ainda não está em fases de testes e não explorarei neste artigo por não possuir ainda conhecimento necessário para descrever, no entanto, o 3.0 deverá seguir a mesma lógica.

    Contador usando computador e falando ao telefone, com camisa azul.

    Os Manuais da Sefaz

    Muitos podem dizer que todas as respostas estão nos manuais e basta lê-los (hahahaha!). Mas muitos programadores só precisam dar suporte a um sistema já implementado ou simplesmente não entendeu determinados processos descritos nos manuais.

    Primeiramente, devo lembrar que todos os manuais estão disponíveis através dos respectivos sites das fazendas:

    Já para as notas fiscais de serviço (NFSe) há um problema a parte. Apesar de existir um padrão para NFSe, cabe a cada município a responsabilidade de disponibilizar os servidores e padrões para os webservices das mesmas, dificultando e MUITO a vida do programador. Consulte o site da Sefaz de seu município para obter o link com o manual.

    Não somente os manuais são importantes como também as notas técnicas. As notas técnicas são mudanças que acontecem com certa frequência sobre os servidores da Sefaz e atualizações nas regras de validação e legislação. Infelizmente não tem como você receber atualizações em seu email. Então você deve estar sempre de olho nessas páginas e prestar atenção em fóruns relativos a Sefaz que concordem com a linguagem que você está trabalhando.

    Sem dúvida a parte mais importante do manual e o que deve ser seguido na maioria dos erros (os erros mais comuns são os de preenchimento), são as Tabelas de Leiaute.  Ela não é complicada, mas pode causar algumas confusões em profissionais menos experientes. Abaixo, listarei a importância e descrição de cada campo da tabela leiaute:

    exemplo-tabela-leioute-nfe

    • # : Código de referência único para cada linha da tabela de leiaute;
    • Campo : Descreve o nome da tag XML para aquele valor;
    • Ele : Indica o tipo do campo(A – atributo, E – Elemento, CE – Elemento que deriva de uma Escolha, G – Grupo, CG – Elemento de Grupo que deriva de uma Escolha, ID – ID da XML 1.0, RC – Restrição de Chave);
    • Pai : Referência da tag pai daquela linha, baseado no código único;
    • Tipo: Descreve o tipo básico do valor que deve ser passado para aquele campo (N = Número, C = Caractere, D = Data, xml = XML).
    • Ocor. (Ocorrência) : Mostra o número mínimo e máximo de vezes que a tag deve aparecer na XML. Exemplo: 0-1 quer dizer que ela não é obrigatória, mas só pode aparecer uma vez, 1-1 quer dizer que é obrigatória e aparecer somente uma vez, 1-3 quer dizer que ela é obrigatória, mas só precisa aparecer uma vez e pode aparecer até 3 vezes. Ou seja, o primeiro número corresponde a ocorrência mínima e o segundo número a ocorrência máxima;
    • Tam. (Tamanho) : Quantidade de caracteres que deve ter a tag. Pode ser referenciado através de número mínimo e máximo, como na ocorrência (ex: 1-4, entre um e quatro caracteres) ou através de apenas um número, especificando que deve ter aquela quantidade exata de caracteres.
    • Dec. (Decimais) : Em caso de número, descreve a quantidade de casas decimais obrigatórias daquele número;
    • Descrição / Obsevações : Explica alguma regra específica que deve ser aplicada àquele valor da XML

    Vale lembrar que nenhuma tag pode ficar vazia. Se a tag não for obrigatória, ela simplesmente não deve ser impressa na XML.

    Fique muito atento que as vezes, no banco, pode aparecer caracteres especiais (como tabulação) e deixar uma tag vazia, mesmo quando você fizer um < if (campo.valor == “” || campo.valor == null): break;>, para impedir que a tag não seja impressa.

    Os Webservices

    A Sefaz trabalha com Webservices XML. Há webservices específicos para homologação, produção e contingência (casos em que webservices principais estejam fora do ar). A maioria dos estados possuem os próprios webservices, outros usam os de outros estados.

    Você pode verificar os links nos sites da Sefaz Nacional do NFe e do CTe. Os links para os serviços das NFEs são disponibilizados por seus municípios.

    Quando você vai enviar uma XML de nota ou conhecimento para a Sefaz, você não envia somente a XML da nota, como também para verificar o status do serviço, consulta, cancelamento, etc. Essas XMLs possuem as informações necessárias para o servidor da Sefaz saber qual função o sistema deverá executar e os parâmetros necessários para uma resposta correta.

    Validação da XML e Schemas

    Schemas são arquivos XML que servem como base para validação de um outro XML. Os schemas descrevem as regras de validação baseadas, principalmente, em expressões regulares. Você deve passar pelo schema para validar a XML antes de ir enviar para a Sefaz. No entanto, quando a XML passar pelo webservice, ela passará pelo mesmo schema e dará uma resposta, porém essa resposta as vezes não vem completa e é necessário validar “no olho”.

    Para facilitar, você pode colar a XML da sua nota pelo validador da Sefaz Virtual do Rio Grande do Sul. Irá funcionar para qualquer estado.

    Obs. As vezes o validados do RS fica dando problema e não consegue validar. Basta recarregar a página que o problema tende a desaparecer.

    Você pode baixar os schemas diretamente no site da Sefaz. Para NFSe, você vai ter que consultar, novamente, a Sefaz do município.

    Comunicação

    Por padrão, a comunicação ao Sefaz é feita através do protocolo SOAP 2. Ao montar a comunicação você deverá passar a URL do webservice, o caminho do certificado digital, a senha do certificado, a url de status e as XMLs necessárias para executar a tarefa que deseja. Erros durante a comunicação são comuns, principalmente quando há algum problema com o certificado digital ou quando o webservice da Sefaz encontra-se fora do ar.

    Sempre verifique se o webservice o qual esteja tentando comunicação está no ar através dos sites da SEFAZ nacional no menu “Verificar Disponibilidade”.

    Obs. Lembre-se de sempre colocar ?WSDL no final das URLs dos webservices (sim, a Sefaz usa servidores Windows).

    Certificado Digital

    O certificado digital é um documento criptografado que possui a assinatura da empresa. O certificado serve para autenticar a XML enviada como sendo realmente pertencente a empresa emissora da nota. Toda XML deve ser assinada através do certificado digital.

    O certificado usado na Nota Fiscal Eletrônica e no Conhecimento de Transporte Eletrônico é o do tipo A1 e pode ser adquirido através de autoridades certificadoras autorizadas pela Sefaz, como por exemplo o Serasa. Os certificados são comprados pelas empresas emissoras de nota e podem ser utilizados para várias filiais da mesma empresa.

    Vale salientar que os certificados são emitidos no padrão PKCS#12 (.pfx) e quem usa servidores Linux/Unix/Mac devem converter os certificados para PEM (.pem). Para isso há conversores online ou você pode fazer diretamente pelo Terminal através do openssl.

    Obs. Sempre abra os arquivos PEM em um editor de texto e verifique os Bag Attributes e todas as Keys estão preenchidas, pois as vezes elas não estão com esses valores e isso causa erros sem resposta.

    Homologação, Produção e Contingência

    Após o possuir o certificado, o contador da empresa emissora do NFe/CTe deve, junto a Sefaz de seu estado, autorizar a empresa para ambiente de homologação (ou seja, ambiente de testes), a autorização sai em torno de 24 horas depois do pedido feito pelo contador. Cada filial deverá ter autorizada e homologada individualmente, porém o certificado, como dito antes, pode ser o mesmo.

    No ambiente de homologação, o sistema deve estar configurado com os webservices de homologação do estado da empresa (homologação NFe, homologação CTe). A XML deve estar preenchida com os dados de homologação. Verifique a parte de homologação no manual para entender como devem ser esses dados.

    Após a autorização de homologação, você deve fazer a emissão e autorização de no mínimo 10 notas/conhecimentos, 5 cancelamentos e 5 inutilizações (falaremos disso abaixo). Somente após fazer isso, você pode pedir para o contador autorizar a empresa a emitir nota em ambiente de produção. Faça quantos testes forem necessários até sentir-se seguro. Erros em Notas podem causar problemas muito sérios para as empresas, principalmente quanto a sonegação de impostos.

    Lembre-se de, quando passar a nota para o ambiente de produção, mudar os webservices para o ambiente de produção. O tempo para autorizar a empresa para o ambiente de produção é de mais 24 horas.

    Obs. Se a empresa estiver com dívidas muito altas de impostos ou algum problema de cadastro e atualização de dados na Sefaz, você pode ter problemas durante a emissão da nota/conhecimento. Nesse caso, consulte o contador ou administrador da empresa para que ele tome as devidas providências. Como é um erro sem retorno, no caso de suspeitar desse problema, consulte o e-CAC.

    No caso dos webservices estarem fora do ar ou a empresa não disponibilizar de internet naquele momento, é necessário emitir a Nota Fiscal em contingência. Há ao todo 3 formas de continência. Os servidores de contingência estão disponíveis no site da Sefaz Nacional. Exceto no caso do emitente estar sem internet, o próprio servidor de continência envia os dados da NFe/CTe para a Sefaz Nacional. Isso pode demorar cerca de 2 horas depois que o servidor do estado voltar ao normal.

    Emissão da Nota/Conhecimento Eletrônico

    Para poder emitir uma Nota ou Conhecimento, você precisará gerar uma chave única para esta. A chave é gerada a partir da seguinte lógica:

    O dígito verificador é um número que é gerado por um algoritmo específico a partir do número restante. Basicamente, multiplica-se o número da base pelos decimais equivalentes de 2 a 9, soma o resultado e pega o resto da divisão do resultado pro 11, por fim, pega o 11 e subtrai o resto. Se o resultado for 10, deve-se pássaro 0. É fácil encontrar o algoritmo para a linguagem que você trabalha no Google. Abaixo o código em PHP.

    function calculadDigitoVerificador($chave43) {
    
       $multiplicadores = array(2,3,4,5,6,7,8,9);
    
       $i = 42;
    
       while ($i >= 0) {
    
           for ($m=0; $m<count($multiplicadores) && $i>=0; $m++) {
    
               $soma_ponderada+= $chave43[$i] * $multiplicadores[$m];
               $i--;
    
           }
    
       }
    
       $resto = $soma_ponderada % 11;
    
       if ($resto == '0' || $resto == '1') {
    
           return 0;
    
       } else {
    
           return (11 - $resto);
    
      }
    
    }

    tabela-chave-acesso-dv

    Com a chave de 44 caracteres pronta e a XML preenchida corretamente, você já pode emitir a Nota Fiscal / Conhecimento Transporte. Você receberá como resposta a XML validada e o retorno  da Sefaz avisando se a nota foi autorizada, denegada (quando há algum problema com o emitente)  ou rejeitada e precisa ser corrigida.

    Lembre-se que esses documentos fiscais devem seguir uma seqüência numérica que deve ser usada dentro de cada série.

    Obs. Os CTe’s não são emitidos por agências, mas sim por filiais, por isso fique atento a sequência numérica.

    Consulta

    Você pode consultar a nota / conhecimento através do site da Sefaz Nacional ou diretamente na Sefaz de seu estado. Para isso, basta você entrar com o número da chave.

    Há um webservice específico para consulta para permitir que o seu sistema mostre para o usuário a situação daquele documento.

    Vale lembrar que se você for consultar na Sefaz Nacional pode ser que a nota não apareça em até cerca de duas horas após a emissão. A consulta feita na Sefaz estadual tende a ser na hora.

    Carta de Correção

    A carta de correção é um documento fiscal que faz adendos a uma nota fiscal/cte emitida. Esse documento anexa informações ao documento dentro da Sefaz. Para o sistema, será emitido um novo XML de resposta contendo as informações da correção.

    Alguns estados não permitem a emissão da correção. No caso, o usuário deverá cancelar o documento e emitir outro.

    Cancelamento

    Se uma compra for cancelada ou houver um erro que não pode ser resolvido através da carta de correção, você pode fazer o cancelamento da Nota/Conhecimento através do webservice de EVENTO, passando a função de cancelamento.

    Geralmente, você tem até 24 horas para cancelar uma Nota Fiscal Eletrônica a partir da hora de emissão da mesma. Porém, alguns estados só permitem o cancelamento em até 3 horas. Para o CTe há uma semana de prazo de cancelamento.

    Em caso de necessitar cancelar a nota ou cte após o prazo terminado, avise ao contador da empresa emissora. Este deverá enviar um documento a Sefaz do estado para resolver o problema e uma pequena taxa deverá ser cobrada.

    Inutilização

    Se por algum motivo você precisar pular o número de uma nota, seja por esquecimento, erro no sistema, etc., você deverá inutilizar aquele número.

    A Nota/CTe segue um número contínuo dentro de cada série. Por isso, utilize o webservice de inutilização para pular algum número da sequência. Alguns estados não possuem servidor de inutilização (consulte o site da Sefaz Nacional), nesse caso, consulte o contador da empresa emitente e ele deverá enviar um documento para a Sefaz, em papel, para inutilizar esses números.

    DANFE/DACTE

    O Danfe / Dacte são os documentos impressos NÃO FISCAIS contendo a informação das Notas/Conhecimento. Descrevo o não fiscal porque o que tem realmente valor fiscal são as XMLs que devem ser salvas por 5 anos. No entanto o Danfe é necessário para o emissor da nfe passar os dados da nota impressos para o cliente. Já o Dacte é OBRIGATÓRIO que o motorista/piloto/ferroviário ande junto com os Danfes dos produtos que estão sendo transportados.

    Nos manuais da Sefaz há descrições de que como deve ser o leiaute do Danfe/Dacte. Estes nada mais são do que uma apresentação impressa e legível dos dados da XML. Você pode usar o DOM Document sem problema para ler a XML e gerar o seu arquivo PDF.

    Bibliotecas Prontas

    Como as comunidades de programadores são enormes, há bibliotecas para as principais linguagens que possibilitam a rápida implementação de NFe, NFs e CTe no seu sistema. Porém mesmo com essas bibliotecas, diversas modificações são necessárias, principalmente quando sai uma nova nota técnica.

    Se você conhecer outras bibliotecas, por favor deixe nos comentários para que eu possa atualizar o post.

    Erros Freqüentes

    Abaixo uma lista com algumas soluções dos erros mais freqüentes duvidosos, ou seja, que a resposta da Sefaz não deixa clara. Se você encontrar um erro que conseguiu solucionar, por favor deixe nos comentários para que possamos atualizar o post:

    • Validação de XML – São os erros mais comuns. Geralmente possuem uma resposta com o nome da tag e a descrição que leva a expressão regular pelo esquema. A grande maioria das vezes são causadas por caracteres especiais ou problemas de validação no sistema para o preenchimento de dados ou por tags vazias. Solução: converta todas as suas strings para UTF8 e faça um “trim” para retirar espaçamentos em branco. Uma boa dica é retirar qualquer acento, til, caracteres especiais para evitar erros. Verifique também se o valor do campo da XML condiz com o descrito na tabela de laioute;
    • Servidor da Sefaz Não Responde – Esse erro acontece normalmente quando o servidor da Sefaz está instável ou fora do ar. Verifique no Site da Sefaz Nacional a disponibilidade do servidor. Pode acontecer caso você tenha preenchido errado a URL do Webservice;
    • Emissor não autorizado para emitir em ambiente de (…) – Acontece caso a empresa não esteja autorizada no ambiente que está tentando emitir ou quando você erra a URL do webservice de seu estado.
    • Sem resposta – Os erros sem resposta costumam acontecer quando há um problema antes da comunicação. É mais comum acontecer quando há algum erro no certificado ou quando a URL do Webservice está preenchida errado. Verifique o certificado e o webservice de acordo com o descrito acima neste artigo. Instale o certificado na sua máquina e verifique pela URL do webservice se ela está acessível;
    • Erros de comunicação / Não consegue acessar – Erro comum quando a senha do certificado está errada ou há um problema no certificado, como o descrito acima neste artigo. Verifique também se a XML está com o ambiente correto. Esse erro também pode acontecer quando a empresa está com algum problema junto a Sefaz;
    • Hora de cancelamento anterior a hora de emissão – Esse erro é muito comum em servidores com os horários mal configurados. Por padrão, um servidor deve ter a sua hora configurada pelo GMT – 3 horas (ou 4 horas, dependendo da região do Brasil) mais o horário de verão (se  houver na região). Você pode até forçar isso via código, entretanto, alguns servidores mal configurados, ao invés de especificar a região (América do Sul/Brasil) podem estar com o horário do GMT errado contando já com menos 3 horas. Para resolver o problema (quando não tens acesso ao servidor), force, via código, a configurar o GMT correto e marcar como America do Sul Brasil. Em último caso, use o horário a partir da internet.

    Vale lembrar que em breve todos os estados terão que usar também o NFCe, a Nota Fiscal de Consumidor Final Eletrônica. Essa nota substitui os cupons fiscais e apenas deverá ser impresso a descrição, o link e o QRCode para acesso do contribuinte. Os estados estão adotando o NFCe aos poucos no ano de 2016.

  • Implementando a Integração entre PHP + jQuery + jSon

    Implementando a Integração entre PHP + jQuery + jSon

    Hoje estou postando um vídeo tutorial para quem ainda não conhece jSon, poder entender o funcionamento básico do compartilhamento de dados usando essa tecnologia.Como base, usaremos o PHP e o jQuery (ótima biblioteca Javascript).

    Claro que por se tratar de um vídeo não é tão fácil ficar acompanhando o código. Por isso mesmo, estamos disponibilizando aqui o código para que você possa entender.

    Aproveite e deixe um comentário aqui em baixo, ou no YouTube e assine o nosso canal!

    Script para criar a tabela no postgres:

    CREATE TABLE jogos
    (
    id serial NOT NULL,
    nome text,
    console text,
    preco numeric(10,2)
    )

    dados.php:

    /**
     * Tutorial jSON
     */
    
    //Definir formato de arquivo
     header('Content-Type:' . "text/plain");
    
    $host = "localhost"; // IP do Banco
     $user = "postgres"; // Usuário
     $pswd = "postgres"; // Senha
     $dbname = "tutoriais"; // Banco
     $con = null; // Conexão
    
    $con = @pg_connect("host=$host user=$user password=$pswd dbname=$dbname") or die (pg_last_error($con));
    
    //@pg_close($con); //Encerrrar Conexão
    
    if(!$con) {
     echo '[{"erro": "Não foi possível conectar ao banco"';
     echo '}]';
     }else {
     //SQL de BUSCA LISTAGEM
     $sql = "SELECT * FROM jogos ORDER BY console";
     $result = pg_query($sql); //Executar a SQL
     $n = pg_num_rows($result); //Número de Linhas retornadas
    
    if (!$result) {
     //Caso não haja retorno
     echo '[{"erro": "Há algum erro com a busca. Não retorna resultados"';
     echo '}]';
     }else if($n<1) {
     //Caso não tenha nenhum item
     echo '[{"erro": "Não há nenhum dado cadastrado"';
     echo '}]';
     }else {
     //Mesclar resultados em um array
     for($i = 0; $i<$n; $i++) { $dados[] = pg_fetch_assoc($result, $i); } echo json_encode($dados, JSON_PRETTY_PRINT); } } ?>


    index.html:

    <!DOCTYPE HTML>
    <html lang="pt-br">
    	<head>
    		<meta charset="UTF-8">
    		<link rel="icon" type="favicon.png" />
    		<link rel="stylesheet" type="text/css" href="estilo.css">
    		
    		<!--jQuery-->
    		<script src="http://code.jquery.com/jquery-2.0.3.min.js" type="text/javascript"></script>
    		<!--Script-->
    		<script src="script.js" type="text/javascript"></script>
    		
    		
    	</head>
    	<body onload="carregarItens()">
    		<section>
    			<h1>PortilloDesign Tutorial JSON + PHP</h1>
    			<!--Área que mostrará carregando-->
    			<h2></h2>
    			<!--Tabela-->
    			<table id="minhaTabela">
    				<caption>Cadastro de Jogos</caption>
    				<thead>
    					<th>ID</th>
    					<th>Jogo</th>
    					<th>Console</th>
    					<th>Valor</th>
    				</thead>
    				<tbody>
    				</tbody>
    			</table>
    		</section>
    	</body>
    </html>

    script.js:

    /**
    * Capturar itens do banco de dados
    */
    function carregarItens(){
    	//variáveis
    	var itens = "", url = "dados/dados.php";
    
        //Capturar Dados Usando Método AJAX do jQuery
        $.ajax({
    	    url: url,
    	    cache: false,
    	    dataType: "json",
    	    beforeSend: function() {
    		    $("h2").html("Carregando..."); //Carregando
    	    },
    	    error: function() {
    		    $("h2").html("Há algum problema com a fonte de dados");
    	    },
    	    success: function(retorno) {
    		    if(retorno[0].erro){
    			    $("h2").html(retorno[0].erro);
    		    }
    		    else{
    			    //Laço para criar linhas da tabela
    			    for(var i = 0; i<retorno.length; i++){
    				    itens += "<tr>";
    				    itens += "<td>" + retorno[i].id + "</td>";
    				    itens += "<td>" + retorno[i].nome + "</td>";
    				    itens += "<td>" + retorno[i].console + "</td>";
    				    itens += "<td>" + retorno[i].preco + "</td>";
    				    itens += "</tr>";
    			    }
    			    //Preencher a Tabela
    			    $("#minhaTabela tbody").html(itens);
    			    
    			    //Limpar Status de Carregando
    			    $("h2").html("Carregado");
    		    }
    	    }
        });
    }
  • Qualidade Suficiente

    Qualidade Suficiente

    Qualidade Suficiente trata-se, basicamente, de que o artefato que você desenvolve deve valer o total pelo qual foi pago. Entender esse termo é a chave para bons negócios.

    Meu pai sempre me contava sobre qualidade suficiente, mas nunca entendi ao certo o que era isso até o dia que eu comecei a prestar serviços. Não é um termo muito usado.

    Apesar de uma definição polêmica, não quer dizer que você não deva buscar qualidade naquilo que faz, e sim, entender o padrão mínimo de qualidade para um determinado projeto a fim de torna-lo aceitável. Não é um termo para definir a qualidade máxima de um material e sim a qualidade mínima esperada em relação ao custo gasto.

    O maior problema da área de criação, hoje, é compreender o valor de cada peça. Seguir tabelas como a da ADG ou da Abap, e tantas outras que existem por aí, é uma tarefa extramente difícil, principalmente para profissionais liberais, pequenas agências e estúdios. Pequenas empresas raramente aceitam pagar R$941,00(SINAPRO-PE) por um anúncio de ¼ de página. Ou de R$800,00 a R$4000,00 (ADG) para uma Tag. Às vezes, fazer valores pouco abaixo dessas tabelas é a única forma de conseguir clientes. Claro, não se devem fazer valores extremamente inferiores, mas dividir e parcelar é uma boa opção.

    paquimetro digital

    O pensamento de qualidade suficiente ajuda ao designer a controlar suas finanças e uso correto de tempo. Compreender o que o cliente realmente necessita é o primeiro passo para cobrar corretamente e não perder tempo com um material que não precisa ter mais do que o necessário.

    O termo qualidade não é algo que se possa definir sem subjetividade. Qualidade depende do que você interpreta como necessário e funcional. Pode ser um trabalho que funcione, mas seja feio ou que não funcione bem, mas seja esteticamente agradável, ou um meio termo. Isso dependerá de quem considerar a qualidade.

    Por isso, é importante marcar reuniões e compreender os fatos de cada trabalho individualmente. Cada caso é um caso. Um trabalho que deverá atingir uma quantidade pequena de pessoas não deve ser cobrado como um outro que atingirá centenas ou milhares de pessoas. É importante preparar bem o contrato para sempre deixar tudo claro. Em peças como folders ou ilustrações, por exemplo, deve-se usar termos de uso, geralmente limitando a quantidade de reproduções ou projetos de uma peça.

    É bom lembrar o termo que Qualidade Suficiente é algo para definir a qualidade mínima de um projeto, e não a máxima, em relação ao tempo desejado para a elaboração e finalização. Um trabalho de 200 reais pode ser ou não uma epifania, é aceitável que não seja, e não é necessário o uso de técnicas tão avançadas. Mas um processo semelhante de 2 mil reais, já exige a obrigação de usar técnicas melhores e a necessidade de se refletir muito mais durante a elaboração do projeto.

    Muito além do que seguir tabelas é entender a necessidade de seu cliente. Tabelas servem para encontrar o meio termo, mas a razão é o que vai desenvolver o seu método de trabalho. Especifique o seu tipo de qualidade e tenha em mente os valores mínimos de cada projeto e relacione isso com o tempo e dificuldade que você demoraria a desenvolver. Aprenda a dizer não sempre que necessário e coloque o seu nível de qualidade sempre em destaque quando questionado os valores. Com o tempo, você aprende a equacionar Qualidade Suficiente com o sua própria tabela virtual de preços.

  • O Que Define o Sucesso?

    O Que Define o Sucesso?

    Por definição, sucesso é o momento em que se chega a um objetivo que anteriormente planejou alcançar. Esse objetivo pode ser definido através da visão da empresa.  Porém, do ponto de vista ético, podemos definir o sucesso como o objetivo alcançado de forma a trazer benefícios para a sociedade. Apesar de citar marcas, este artigo não tem por objetivo apoiar, defender ou descriminar nenhuma empresa. Trata-se apenas de opinião e observação de fatos.

    Milhões de pessoas correm atrás do sucesso. Seja um sucesso pessoal ou profissional, seja em um projeto ou em uma carreira. Mas o que define o que é sucesso ou não? Como podemos definir se tivemos sucesso em algo ou se ainda estamos crescendo?

    Por definição, sucesso é o momento em que se chega a um objetivo que anteriormente planejou alcançar. Esse objetivo, corporativamente falando, pode ser definido através da visão da empresa.  Porém, do ponto de vista mais ético, podemos definir o sucesso como o objetivo alcançado de forma a melhorar ou trazer, de alguma forma, um benefício para a sociedade. Quando eu crio essa definição ética, não me refiro diretamente a valores relacionados a sustentabilidade. Mas com a questão de desenvolver produtos ou serviços de qualidade que façam  bem para o consumidor, através de soluções eficientes e que não usem de artifícios apelativos para incentivar a compra.

    Sucesso é igual a dinheiro?

    Empresas muito ricas não necessariamente são um sucesso, pois, muitas vezes, não desenvolvem produtos de qualidade ou que favoreça o consumidor de alguma forma. Como exemplo, irei citar algo que não tem a ver com tecnologia, mas que é incrivelmente conhecido e relatado como caso de sucesso: o McDonalds.

    Com mais de 33 mil lojas, o McDonalds é sem dúvida uma rede de lanchonetes extremamente valorizada. Não há como contestar que o McDonalds atinge sempre os seus objetivos financeiros, aumentando frequentemente a sua receita líquida. Com pratos saborosos que vão desde sanduíches a sorvetes, a empresa do palhaço atrai um público infanto-juvenil e trabalhadores interessados em comida rápida. Apesar do alto custo de seus produtos, tem gente que come em uma das franquias todos os dias.

    Porém, como é mostrado no documentário Super Size Me – A Dieta do Palhaço (SPURLOCK, 2004), os produtos oferecidos pelo o McDonaldsnão trazem para a sociedade ou ao consumidor nenhum tipo de benefício além da agilidade (apesar das longas filas) para a entrega dos alimentos. Não são comidas saudáveis e muitos nem mesmo devem considerar como uma comida saborosa, mas todos concordam que é uma comida viciante. Além disso, produz propagandas que induzem crianças, através do McLanche Feliz, a consumirem produtos que são prejudiciais a saúde, por conta disso, a empresa foi obrigada a oferecer uma fruta em meio ao lanche (no caso, a maçã) e ainda promove essa obrigação como se fosse uma escolha criada para promover a boa alimentação das crianças.

    Cena de SuperSize Me

    Talvez possa ser cogitado a necessidade da existência de empresas que oferecem serviços rápidos (como gráficas rápidas, fast-foods, dentre outros). Mas o simples fato de ser fast-food não significa que o alimento precisa ser prejudicial para a saúde. Diversas outras redes, como a Subway, produzem alternativas mais sadias e com atendimento mais rápido do que o próprio McDonalds. Esse exemplo pode ser visto também na rede Giraffas, que apresenta alimentos rápidos, sadios, saborosos, frescos e bem produzidos.

    Empresas como Giraffas e Subway não possuem uma quantia de franquias ou quantidade de dinheiro tão esmagador quanto o McDonalds,e nem valem tanto no mercado. Mas, eticamente, apresentam produtos que fazem bem a seus consumidores, que favorecem a sociedade de alguma forma. No entanto, não estou defendendo essas empresas. Muitos executivos acabaram por começar a criar campanhas semelhantes ao McDonalds. O Giraffas já produziu algumas campanhas orientadas a atrair crianças, apesar de apresentar um prato completo especial e não somente hamburguers.

    Estamos falando de tecnologia ou comida?

    Sei que os exemplos apresentados acima são sobre a indústria de alimentos, mas se aplicam naturalmente a indústria de tecnologia. Muitas empresas aproveitam-se da ignorância do cliente em relação aos avanços tecnológicos e criam contratos ou produtos que acabam por prejudicar o contratante de alguma forma. Vou citar alguns exemplos:

    Uma empresa que não existe mais, no qual eu tive convívio por algum tempo, comprava notebooks mais baratos e simples na rede Extra de supermercados e revendia para clientes pelo o dobro do preço, afirmando que era um equipamento de última geração. Ou seja, se aproveitava da ignorância do cliente, mas ganhava muito dinheiro com isso. Esse caso é um sucesso?

    Na área de web, eu conhecia uma empresa que fazia duas coisas erradas: primeiramente dizia-se treinada pelos profissionais do Google e exibia um selo de Google Certified. Mas na verdade, simplesmente um dos profissionais dessa empresa foi treinado por uma pessoa que tinha Google Certified. Ou seja, aumentava bastante, mentia para os consumidores a respeito de suas especializações. E não era só! A empresa ainda oferecia o serviço de SEO e colocava no contrato que TODO crescimento do site relativo a visitação ou ao Google, seria aceitado como feito pela a contratada. Ou seja, se a contratante fizesse uma promoção e aumentasse a visitação, a contratada ganharia mais sem fazer absolutamente nada. Isso parece justo??? E ainda pior! Se o contrato fosse rompido, a empresa tirava o site do ar por 7 dias (afirmando que era comum disso acontecer tecnologicamente), tirava tudo de SEO do site e ainda colocava códigos blackhats ou coisas que atrapalhassem a visita, para que diminuisse ou se possível sumisse o site do Google.

    “Mas o Cliente é que foi Besta”!

    O cliente não tem obrigação de conhecer tudo sobre a área da empresa que se está contratando. Afinal, esse é o motivo da contratação. Em essência, toda a empresa precisa ser ética e apresentar soluções eficientes e verdadeiras. Da mesma forma que temos que confiar em um médico, precisamos confiar em quem contratamos. Pagamos por essa confiança. Pagamos pela capacidade e conhecimento. Pagamos pela ética.

    O problema é que a realidade é mais complicada do que se imagina. Na vida real, uma empresa anti-ética pode sim ganhar mais dinheiro e notoriedade do que uma empresa idônea. Não adianta ter pensamentos utópicos e acreditar que somente as que usam de valores morais é que ganharão mais dinheiro. Devemos é preparar a nova escola de empreendedores a trabalhar com o pensamento focado na melhoria da sociedade como um todo.

    Definindo o Sucesso

    Podemos definir que o McDonalds não é uma empresa de sucesso? Eticamente, não. O Subway é uma empresa de sucesso? Ética, e aparentemente, sim.

    Uma empresa de tecnologia de sucesso é aquela que apresenta soluções funcionais e que trabalhe com transparência, fazendo o possível para inovar e facilitar a vida do cliente. Sucesso não é simplesmente ganhar dinheiro e faturar. Dinheiro deve ser a consequência de um trabalho bem feito e não o objetivo desse trabalho.

    Caso vocês tenham uma ideia diferente de sucesso, ou queiram citar algum exemplo, deixem um comentário. Reflitam a respeito, se a sua empresa, ou você está em busca daquele sucesso ético ou se o seu objetivo de vida é simplesmente ganhar dinheiro. Apesar de que a definição de certo e errado possa ser extremamente pessoal, possuímos valores sociais que definem se o que estamos fazendo é correto.

    O que você prefere? Ser uma empresa (ou pessoa) de sucesso? Ou ser uma empresa (ou pessoa) extremamente rica e famosa?

  • Conjecturas Sobre Inovação e Criatividade

    Conjecturas Sobre Inovação e Criatividade

    Inovação e Criatividade. Quantas vezes vocês não escutam essas palavras hoje em dia? Geralmente em ofertas de emprego encontramos aquelas referências: “Precisa ser inovador, criativo e ter espírito de guerreiro”. A menos que você seja um índio nativo-americano, um espartano ou um viking, é difícil deixar evidente essas qualidades. As propostas de emprego são cheias desses diferenciais subjetivos. Isso acontece justamente porque as pessoas não compreendem o que é inovação e o que é criatividade.

    Inovação

    Quando as pessoas falam a palavra inovar, vem logo a cabeça “criar algo novo”, mas não necessariamente isso. Inovar pode ser renovar de forma a ser mais funcional, atrativa, agregando características e valores a algo que já existe. Além do uso indiscriminado da palavra, o principal problema são as pessoas que usam a palavra para se promover. Quem nunca viu uma palestra com o nome “Aprendendo a Inovar”, “Inovação para sua Empresa” ou algum livro que tenha inovação no nome?

    Um dia, um amigo e eu fomos a uma palestra chamada “Inovação Estratégica para sua Empresa” ou alguma coisa parecida, em um ciclo de palestras do Núcleo Empresarial de Inovação do Ceará (NEI/CE). A primeira coisa que notei, assim que cheguei, foi a estrutura, igual a qualquer outra, e até mesmo a identidade dos impressos do evento. Mãos sobrepostas nos pôsteres, cadeiras em um auditório amadeirado, café expresso na entrada, pastinhas, pessoas dormindo, um cara apresentando falando mais devagar e chato do que um professor de ciências americano. Cadê a inovação? Como um evento sobre inovação consegue ser nada inovador?

    Mãos formando a logo da Fiec sobre um evento de inovação

    Ok. Então entrou o cara, com seus 30 e poucos anos, infelizmente não me lembro do nome dele. Confesso que geralmente fico meio assim assim quando o cara é novo, mas resolvi dar uma chance e deixei o meu preconceito de lado. Daí começou a discursar coisas óbvias – aliás, esses palestrantes ultimamente parecem políticos, só falam o que está ruim e não mostram soluções. Só que a palestra do cara parecia com a de quem estava no primeiro período de marketing. Começou com uma série de slides estáticos contando a vida dele. “Quando eu era um filhoooote (… Rei Leão)”. Okay, estou exagerando, mas ele começou a contar coisas da época pré faculdade e a falar como é bom nisso e naquilo, coisa que todo o palestrante CHATO faz. Mas mesmo apesar de palestrar há tantos anos, como ele disse, ele não parava de soltar uns “eeehhh”, “então…”, “aííí”, essas coisinhas de quem decorou e não lembrou do texto.

    Resultado: pegamos no sono e quando nos demos conta disso, saímos, pegamos um cafezinho e fomos embora morrendo de fome, procurando um lugar para jantar.

    Pense que palestra chata!

    Não sei sobre as outras palestras do evento. Na verdade, nem me interessei. Mas não importa se você tem uma empresa séria ou é diretor de uma grande corporação, nenhuma empresa foi mais corporativa e formal quanto a IBM e mesmo assim aprendeu a inovar, renovando os seus conceitos para concorrer contra a Apple na década de 70. O fato de ser sério, não quer dizer que tem que ser chato. Uma coisa chata, maçante, onde várias pessoas dormiam, não vai trazer nada de inovador para a empresa dos espectadores. Para mostrar as pessoas como inovar é preciso ser inovador antes. Essa história de “espeto de pau” não funciona mais há tempos.

    Charlie Chaplin olhando um PC da IBM

    Criatividade

    Procurando algumas ofertas de empregos, muitas dessas como freelancer, observei que muitas pessoas exigem, como diferencial, ser criativo, mas o que é exatamente ser criativo? Simplificando, criatividade é a capacidade de resolver problemáticas a partir do conhecimento que já possui, ou através da busca de novas informações. Ser criativo é saber resolver problemas de forma funcional.

    Mas o que as pessoas interpretam como criatividade? As pessoas acham que ser criativo é ser imaginativo. Claro que precisa de imaginação para ser criativo, mas não o contrário. Existem muitas pessoas sonhadoras, mas poucas pessoas objetivas. Criatividade te leva a uma meta. Muitas pessoas me acham um cara duro, frio, chato, ranzinza. Talvez eu até seja uma versão pobre e pouco famosa do House, mas isso é porque não tenho sonhos. As pessoas me dizem que sonham em ter uma empresa, sonham em ser famosas e que eu preciso sonhar também. Mas não! Não preciso de sonhos, preciso de objetivos.

    Xícara com asa redonda

    Voltando às empresas. Dificilmente uma pessoa vai entender que ela é criativa. E por ser um termo tão subjetivo, vai ser complicado saber o que é criatividade para esse empregador. Criatividade é saber fazer desenhos bonitinhos? Criatividade é saber contar piadas? Criatividade é saber criar um algoritmo capaz de encontrar qualquer número primo em segundos?

    Agora muitos vão dizer: “Você subestima a capacidade dos outros!”. Não, não subestimo. Uma coisa que aprendi é nunca subestimar a burrice e incompetência das pessoas. Na verdade, esse é um pensamento simples para fazer coisas mais simples ainda para o público. Coisas mais fáceis de manusear ou compreender, logo, mais funcionais. Lembrando que incompetência e burrice podem se aplicar a uma área do conhecimento pessoal e não a toda capacidade da pessoa, alguém pode ser burro e incompetente em algo, mas inteligente e esperto em outra coisa.

    Concluindo

    Se você está procurando alguém para trabalhar para (ou com) você, seja mais específico e menos subjetivo em suas buscas. Procure um profissional com experiência disso, nisso e naquilo. Todo bom profissional, sem exceção, deverá ser criativo, mas nem todo mundo precisa ser inovador.

    Se você é um profissional que se sente ou se acha inovador, pense onde você está inovando e se você realmente está inovando. O que de novo ou diferente foi criado? E esse novo é realmente útil e interessante? Não adianta ser único ou “do contra”, é preciso ter um motivo e um objetivo para isso.

    Quantos de vocês já conheceram uma empresa chamada inove, innove, inova, i9 ou similar?

  • Pacto de Confiança (Hackathon com NFC)

    Pacto de Confiança (Hackathon com NFC)

    O aplicativo Pacto de Confiança propõe-se a diminuir os custos quanto a monitoramento de detentos com regime semi-aberto. Com uma pulseira confortável e discreta, o detento deve fazer “checkins” constantes, com qualquer dispositivo móvel com tecnologia NFC. Um agente, com outra versão do software também pode abordar o detento e saber seu histórico e ficha em segundos.

    O app foi criado para o Hackathon Hacker Cidadão 4, onde, pelas regras, não se poderia criar um novo hardware para fazer o controle dos detentos em regime semi-aberto. O sistema possui duas partes, uma mobile, onde recebe os dados do detento e outra para Android, onde, a cada x horas, o detento precisa passar o smartphone em um dispositivo com chip NFC. Através do 3G, o app envia a geolocalização e o código do NFC, assim como informações de hora e foto tirada automaticamente na hora que é feita a conferência.

    O aplicativo está descontinuado e seu código fonte, para fins de estudos, pode ser baixado através do link: https://velhobit.com.br/arquivos/PactoPelaVida.zip.

    O dispositivo vai se encarregar de enviar sua localização, foto e horário, de forma a diminuir os custos e prover uma melhor qualidade de vida para aquele que busca a reintegração à sociedade. Se por acaso ele não fizer os checkins quando o dispositivo pedir, ele será considerado foragido pelo sistema que encarregará de dar ao agente de monitoramento o alerta e as últimas informações quanto a localização.

  • Mobilizando

    Mobilizando

    O Mobilizando é um sistema colaborativo para localização e compartilhamento de estabelecimentos adaptados para portadores de necessidades especiais.

    Ele foi criado durante o Hackathon do Hacker Cidadão 3.0 (CampusParty Recife), onde tirou o segundo lugar. Apesar de esforços e apresentações do projeto para investidores, infelizmente não seguiu adiante.

    Todavia, o código fonte, da versão web, está disponível pelo linkhttps://velhobit.com.br/arquivos/mobilizando.zip. Ele apresenta diversas falhas e modificações que devem ser corrigidas para alguém que for usar a base do projeto para este ou outros objetivos.

    Devido a dificuldade de encontrar locais adaptados para pessoas com necessidades especiais, idealizamos um aplicativo que mostra os locais mais próximos, filtrados por tipo de estabelecimento.

    A ideia é que qualquer usuário do Mobilizando possa cadastrar um estabelecimento. Quando esse estabelecimento é confirmado, ele entra para a base dados principal. O mesmo ocorre para o quanto aquela empresa está adaptada, bastando marcar insígneas (tags) para que a empresa entre na lista. Além disso, ainda é possível comentar e visualizar comentários públicos de outros usuários.

    https://velhobit.com.br/wp-content/uploads/2017/03/fundo-2.jpg

    Os dados usados originalmente são os dados públicos disponibilizados pela Prefeitura da Cidade do Recife, que não são atualizados frequentemente, e por isso uma necessidade grande de ser planejado como algo colaborativo.