quinta-feira, 4 de setembro de 2008

Organize, mas...

O post de ontem foi uma pequena idéia do que entendo sobre organização e terminou com uma frase que serve, não somente para organização de papéis e emails, para várias atividades, tanto profissionais quanto pessoais:

O tempo gasto em organização normalmente se reverte em produtividade, mas se você exagerar na organização, fazendo além do necessário, aí você se tornará improdutivo, talvez até mais do que os desorganizados.


Certa vez, estava conversando com uma menina que se queixava dos seus chefes. Ela não conseguia entender porque eles não gostavam do seu trabalho, já que ela sempre fazia mais do que solicitado. Ela se dizia perfeccionista e mesmo que o chefe pedisse um rascunho, ela não conseguia entregar algo sem um acabamento bem elaborado. Eu questionei quanto tempo ela levava para fazer este trabalho perfeito e ela me disse que normalmente bem mais do que os chefes gostariam. Diante desta resposta, eu tive de falar:
- Então você não está sendo perfeccionista!!!
- Como assim? – ela perguntou.
- Se esperam que você entregue um rascunho, perfeito é entregar o rascunho, ou algo um pouco melhor, desde que não ultrapasse o tempo planejado para um simples rascunho. Se definirem que um serviço deve ser feito em até uma hora, o perfeito é fazer em no máximo uma hora, e o melhor que puder ser feito neste prazo. Se você levar cinco horas, e uma qualidade melhor naquele trabalho nada valer, é só desperdício de tempo, ou de outro modo, não está sendo perfeito.
- ...
- Se você quer ser perfeccionista, faça as coisas dentro do custo e prazo estabelecido, e dentro disso, o melhor possível.
- Nunca tinha pensado nisso. – ela comentou.

Exemplos de exagero em organização ou qualidade:
- Organizar as cadeiras de uma sala de aula de forma milimétrica, com cada cadeira exatamente em linha com a da frente e com a do lado. Ninguém notará a diferença e no mesmo instante que os alunos entrarem na sala, as cadeiras ficarão desalinhadas novamente.
- Fazer um protótipo de sistema, com todas as funcionalidades e com a aparência do produto final. Isso não é protótipo, e o produto acabado. O objetivo de um protótipo é dar uma idéia de como será o sistema, e somente uma idéia, e para isso, o tempo de desenvolvimento deve ser o menor possível. Um protótipo de uma página de internet pode ser uma imagem, e não necessariamente um site funcional.


Com o exposto, eu não estou dizendo que prazo é mais importante que qualidade, e nisso discordo de alguns administradores (em outro post eu vou detalhar mais). Eu acredito que a qualidade é muito mais importante que o prazo, desde que a qualidade faça diferença para que a receba. Vamos a um exemplo:

Você solicitou um prato e ao perguntar quanto tempo levaria, o garçom respondeu 15 minutos. Ocorreu um problema na cozinha e seu prato começou a ser preparado com muito atraso. Você prefere receber seu prato frio e cru, mas no prazo; ou perfeito e com atraso? Tenho milhares de exemplos como uma oficina, que poderia entregar seu carro com defeito, mas no prazo combinado, ou um pintor que não dá a última mão de tinta.

Quando eu pergunto aos administradores o que é mais importante: o prazo ou a qualidade, estes respondem: os dois. Não, eu digo, não pode ser “os dois”, só um. E eles respondem: “então é o prazo”. Fico muito preocupado com o que os programadores vão pensar se ouvirem isso, coisas como:

- Não vai dar tempo para testar, mas tudo bem, desde que saia no prazo.
- Não vou tentar otimizar esta rotina, pois senão posso perder o prazo.

Sempre disse para os meus colaboradores que a qualidade é mais importante que o prazo, desde que a qualidade tenha um grande benefício.

Antes de você comentar (não que eu não queira que você comente, pelo contrário, comente qualquer coisa, sempre será bem vindo), existem momentos em que o prazo é muito mais importante que a qualidade, mas estas situações são menos comuns. O prazo é importante quando existe uma restrição real para ele, com o lançamento de um produto, ou a abertura de uma loja, ou uma dependência entre projetos, etc. Mas quando um prazo é algo que alguém inventou, chutou, ou pensou que poderia ser assim, este prazo para mim não tem tanto valor quanto a qualidade.

Eu penso assim: “Um projeto entregue no prazo, mas cheio de problemas, o cliente vai lembrar e reclamar durante muito tempo”, e “Um projeto entregue com atraso, mas com alta qualidade, o cliente logo esquecerá o atraso”.

Agora voltando ao assunto de organização, vale o mesmo raciocínio: organize até o ponto que você possa encontrar:
- o que utiliza diariamente de modo quase instantâneo,
- as coisas que você utiliza com freqüência de modo rápido,
- e as coisas que você raramente você utiliza, em um tempo razoável.

Se você tentar organizar de modo a encontrar tudo de modo instantâneo, mesmo o que nunca é necessário, você estará desperdiçando seu tempo, pois este ganho de velocidade nas buscas é menor do que o que você gastará organizando.

Exemplo: Abrir uma pasta para cada assunto mínimo, pois para isso será necessário buscar uma pasta nova, gerar uma identificação para a pasta, colocar a identificação na pasta, arquivar em ordem alfabética, buscando a posição em uma gaveta com mais de 1000 mini-pastas. O ideal seria manter na gaveta um número de pastas pequeno, cada uma com um “tipo de assunto”. Além de o arquivamento ser muito mais rápido, normalmente a busca também é mais rápida, porque é mais fácil saber o nome do assunto para localizar a pasta, do que o nome de uma mini-pasta dentro de uma infinidade de outras pastas.

Penso a mesma coisa para Documentação de Sistemas, mas isso fica para outro post.

O que você acha mais importante, prazo ou qualidade? Comente!

terça-feira, 2 de setembro de 2008

A maioria tem que ir para o lixo

Meu pai me ensinou uma das maiores lições em relação à organização, isso quando eu ainda era um “guri”, jovem demais para entender a sabedoria daquelas palavras. O que ele me disse pareceu tão simples e óbvio que não poderia imaginar que poucas pessoas soubessem fazer as coisas daquele modo. Mesmo hoje, quando eu vejo as pessoas trabalhando, eu não consigo entender porque poucos fazem o que meu pai me ensinou, já que esse é um conhecimento muito antigo (não foi meu pai que inventou). Vejo pessoas inteligentes, como administradores, gerentes, chefes de grandes equipes, desperdiçando seu tempo com algo tão simples e que se repete várias vezes ao dia.

A frase do meu pai é simples de entender, mas muitos tem dificuldade é na sua implementação. Mesmo conhecendo-a, poucos conseguem tornar isso um hábito. Veja a frase:
- Quando você recebe um papel (pode ter sido entregue por alguém, ou uma carta recebida), de logo um encaminhamento para ela, que pode ser: lixo, arquivar, para fazer depois ou fazer agora. Leia apenas uma vez e decida na hora qual o destino, caso contrário, cada vez que você pegar este papel terá de relê-lo, e isso se repetirá várias e várias vezes, sendo que a grande maioria dos papéis é lixo.

Muitos anos depois, lendo livros sobre administração do tempo, encontrei este ensinamento e fiquei feliz por meu pai já ter me ensinado muitos anos antes, e eu já estar praticando isso em quase todas as minhas tarefas, porque esta dica do meu pai serve para papéis, mas também para muitas outras coisas.

Quando eu olho o programa de email de outras pessoas, normalmente vejo a caixa de entrada com centenas, até milhares de emails, muitos dos quais ainda não lidos.

A organização nos poupa tempo, ou de outro modo, a falta de organização nos consome muito tempo. Procure uma pessoa que tem a mesa organizada, o desktop com somente os atalhos necessários, os emails em dia, provavelmente você terá encontrado uma pessoa muito produtiva. O oposto é verdadeiro.

Vez que outra nós encontramos pessoas que dizem: “Eu me acho na minha bagunça”, doce ilusão. Para confirmar, peça para ela um papel que você sabe que está no meio de uma pilha, e veja se ela não terá de verificar um por um até encontrar o que deseja. Se puder, cronometre. Eu penso que: “Bagunça na mesa, bagunça na cabeça”.

Meu email profissional tem a caixa de entrada que é apenas de passagem. Leio a mensagem e no mesmo instante decido seu destino:
- Respondo e, ou excluo ou arquivo.
- Vai para Lixo
- Vai para Pasta de acordo com o assunto
- Vai para uma pasta chamada “Para Fazer”
Com esta atitude, sempre tenho tempo para ler todos os emails (leio até o ponto de ter certeza do seu destino, algumas vezes só o assunto basta) e nada poderá passar sem eu saber, como acontece com vários colegas que dizem: “Eu não vi isso” ou “Eu não sabia”, mas quando eles verificam, encontram emails muito importantes que ainda não haviam lido (e provavelmente nunca seriam).

Eu excluo, sem pena, a maioria dos emails, e nunca precisei de nenhum. Se fosse necessário, seria só pedir um novo envio. Mas atenção, não exclua aqueles emails que podem te comprometer, estes têm que ser arquivados em local seguro.

Eu vejo pilhas e pilhas de papel na mesa das pessoas e tenho certeza que 80% é lixo, lixo puro. Isso significa 80 % do tempo perdido procurando um papel nesta pilha, ou um email em uma caixa abarrotada de bobagens. Se você olhar estas pilhas, encontrará anúncios de supermercado já vencidos, revistas ainda embaladas que nunca serão lidas, folders de fornecedores de produtos ou serviços que a empresa nunca comprará (e se precisar, é só pedir novamente), papéis de rascunho com anotações que o autor não tem mais nem idéia do que significam, etc. Lixo puro, 80% eu disse. Dos outros 20%, provavelmente 18 ou 19% podem ser arquivados, sobrando 1 ou 2% que deveriam ter a nossa atenção.

As gavetas, estas dão até medo de olhar. É tanta porcaria que nem eles lembram o que tem. Perto de 80% é lixo. Até bolachas vencidas tem.

Tive a oportunidade de ajudar na organização de uma empresa, tanto na estrutura física quanto na operacional. Quando cheguei à estante de revistas e livros, encontrei um caos, com pilhas de revistas, várias embaladas ainda. Sugeri que conservássemos apenas as 4 últimas, e cada uma que chegasse descartaríamos a mais antiga. Foi quase uma guerra:
- Não podemos colocar no lixo, pois podemos precisar de algo que está nestas revistas – eles disseram.
- Quando alguém leu uma destas revistas? – perguntei.
- Nunca, é que não tem nada que interessa aí.
- E se vocês precisarem de alguma informação, vocês procurarão nas revistas ou na internet?
- Na internet.
- Então, podemos colocar todas no lixo, não estou certo?
- É pensando assim, parece que sim.
- Então, manteremos apenas a última revista.

Agora era a vez dos livros:
- Temos muitos livros repetidos e desatualizados, com linguagens que não são mais utilizadas. Vou doar a maioria. – falei.
- Não, estão enfeitando. Quando chega um cliente, vê este monte de livros e fica impressionado. – rebateram.
- Que cliente vem aqui?
- Quase ninguém vem aqui, mas nós gostamos deles.
- Quanto tempo ninguém pega um livro?
- Faz tempo, inclusive alguns nunca foram abertos.
Finalmente convenci-os de doar os livros e abrimos espaço nas prateleiras para organizar os CDs, os arquivos, etc.

O tempo gasto em organização normalmente se reverte em produtividade, mas se você exagerar na organização, fazendo além do necessário, aí você se tornará improdutivo, talvez até mais do que os desorganizados. Vou detalhar isso em outro post.

Você se preocupa com organização? Comente!

segunda-feira, 1 de setembro de 2008

Você é um dos melhores?

Como citei em um post anterior, 80 % das pessoas se considera dentro dos 10 % melhores (veja Oba, sou chefe! E agora?).
Quando perguntamos a um “programador” se ele tem boa lógica e se sabe programar bem, a resposta é sempre positiva. Mas quantos passariam em um teste?

Criei o desenho abaixo como brincadeira, mas “baseado” em fatos reais. Conheci alguns programadores que quando confrontados com testes bastante simples não tinham nem idéia por onde começar. Alguns, mesmo dando os passos iniciais, que para qualquer um que realmente tivesse condições de ser programador medíocre seria o bastante para desenvolver a solução, nem assim eles conseguiam. E se julgavam programadores e provavelmente até hoje estejam por aí, criando algum monstro.

Os programadores testados não percebem que a estrela de madeira não pertence ao brinquedo de plástico.

Um dos testes bem simples que aplico algumas vezes é assim:
Criar uma função que receba três strings que podem estar preenchidas ou não, independentes uma da outra, ou seja, ou todas podem estar vazias, ou apenas uma preenchida (não necessariamente a primeira) , ou duas, ou as três. Você deve retornar uma string com a soma das três strings, sendo que o texto em cada string deve ser separado do outro por uma vírgula. Mas atenção, quando a string estiver vazia, ela deverá ser desconsiderada.
Exemplos:
“”, “”, “” => “”
“”, “segunda”, “” => “segunda”
“primeira”, “”, “terceira” => “primeira, terceira”
“primeira”, “segunda”, “terceira” => “primeira, segunda , terceira”

Se você entendeu este teste e sabe exatamente como fazer, parabéns, mas alguns passaram mais de 2 horas tentando resolver e ... nada. Um chegou a passar dois dias tentando, e eu pedi para ele fazer outra coisa para mim. Este era ótimo em tarefas repetitivas, onde não era preciso pensar, e para isso ele se pagava. Pessoa extremamente prestativa, mas que, de modo algum, poderia se considerar programador.

Pare agora e tente resolver você. Depois veja algumas soluções abaixo, feitas em VB por ser uma linguagem de fácil entendimento por programadores de qualquer linguagem.

Solução 1:
Function Soma(ByVal Primeira As String, _
        ByVal Segunda As String, _
        ByVal Terceira As String) As String
  Dim Retorno As String
  Retorno = Primeira
  If Segunda <> "" Then
    If Retorno <> "" Then Retorno = Retorno + ", "
    Retorno = Retorno + Segunda
  End If
  If Terceira <> "" Then
    If Retorno <> "" Then Retorno = Retorno + ", "
    Retorno = Retorno + Terceira
  End If
  Soma = Retorno
End Function


Solução 2:
Function Soma(ByVal Primeira As String, _
        ByVal Segunda As String, _
        ByVal Terceira As String) As String
  Soma = SomaAux(SomaAux(Primeira, Segunda), Terceira)
End Function
Function SomaAux(ByVal Atual As String, ByVal Nova) As String
  If Nova <> "" Then
    If Atual <> "" Then Atual = Atual + ", "
    Atual = Atual + Nova
  End If
  SomaAux = Atual
End Function

Solução 3:
Function Soma(ByVal Primeira As String, _
        ByVal Segunda As String, _
        ByVal Terceira As String) As String
  Dim Retorno As String
  If Primeira <> "" And Segunda <> "" Then
    Retorno = Primeira + ", " + Segunda
  Else
    Retorno = Primeira + Segunda
  End If
  If Retorno <> "" And Terceira <> "" Then
    Retorno = Retorno + ", " + Terceira
  Else
    Retorno = Retorno + Terceira
  End If
  Soma = Retorno
End Function


Você tem outra solução? Comente!

Outro dia, vi um teste de empresa para programador .Net e fiquei confuso com o que eles pretendiam com aquele tipo de pergunta. Eram questionamentos muito técnicos, como a sintaxe do comando tal, o nome do arquivo da configuração tal, o tipo de tal e assim por diante, em resumo, nada sobre lógica de programação. Parecia teste para ver se a pessoa tinha boa memória e se havia estudado, mas não se seria um bom programador ou analista. Este tipo de pergunta, qualquer um poderia buscar no Google, mas lógica, isto a pessoa tem que ter, pois não tem no Google. Este mesmo teste tinha também algumas perguntas de SQL e estas sim, eram sobre conhecimento e lógica, como solicitação para montar comandos razoavelmente complexos.

Outra empresa, tem (ou tinha) um teste para programador que apresentavam um problema onde este deveria ser resolvido com um programa na linguagem Clipper. No teste, dizia que a sintaxe na importava, apenas a lógica. Teste perfeito, pois saber a sintaxe de um comando é coisa de 5 minutos (ou menos) para achar, mas lógica, nem uma vida inteira é suficiente para algumas pessoas. O que eu verifiquei neste teste é algo que até hoje tenho dúvida: Por que será que os melhores eram os que digitavam mais rápido? Será que os que digitavam lentamente não estavam conseguindo pensar direito? Tantas dúvidas, mas esta constatação: Os melhores digitavam rápida e ininterruptamente.

Essa avaliação de quantidade de toques e capacidade de lógica me parece bastante ligada, pois os melhores que conheci digitavam com grande velocidade e quase que o tempo todo. Os “Caras”, aqueles que se acham, digitam algumas letras, param, pensam (ou algo parecido), digitam mais algumas. Somente são rápidos nas teclas durante os joguinhos, neste eles são os bons. Os “Caras” digitando parecem gagos tentando discursar.

A grande maioria das empresas não testa nada, confia que se a pessoa diz que é programador, é o que basta. Pergunto-te, meu leitor, na sua empresa, quantos ficariam se hoje fosse aplicado um teste de lógica ou de conhecimento do sistema em que trabalham?

Você concorda que os melhores podem ser identificados pelo modo que digitam? Comente!