Dez coisas que mais irritam os desenvolvedores


Essa é a tradução (com algumas adaptações) do artigo “Top 10 Things That Annoy Programmers” de Kevin William Pang disponível em www.kevinwilliampang.com.

Todos os desenvolvedores tem suas irritações. Seja o aumento do escopo, notação húngara ou colegas de trabalho chatos. Temos que aceitar que existem certas irritações que acompanham nosso dia-a-dia no trabalho. A seguir uma lista das 10 coisas que mais nos irritam:

10. Comentários que explicam o “como” e não o “porquê”

Nos cursos de programação para iniciantes ensinam os alunos a comentar frequentemente seus códigos. A ideia é que quanto mais comentários tiver, é melhor. Infelizmente muitos desenvolvedores parecem ter como um desafio pessoal comentar cada linha de código. E é por isso que muitas vezes veremos algo como isso:

$r = $n / 2; // Atribuindo $n dividido por 2 em $r
// Loop while $r - ($n/$r) enquanto for maior que $t
while ( abs( $r - ($n/$r) ) > $t ) {
   $r = 0.5 * ( $r + ($n/$r) ); // Atribuindo a metade de $r + ($n/$r) em $r
}

Você tem alguma ideia do que o código acima faz? Nem eu. O problema é que enquanto há comentários explicando o que está fazendo ao invéz de explicar o porquê.

Agora considere o mesmo código com uma metodologia diferente de comentário:

// Raiz quadrada de $n com aproximação de Newton-Raphson
$r = $n / 2;
while ( abs( $r - ($n/$r) ) > $t ) {
   $r = 0.5 * ( $r + ($n/$r) );
}

Muito melhor! Nós ainda não conseguimos entender exatamente o que está acontecendo mas pelo menos nós temos um ponto de partida.
Comentários são para ajudar os outros desenvolvedores a entender seu código, não a sintaxe. Nós temos que assumir que o outro desenvolvedor entende o básico de como um loop funciona; não adianta colocar comentários como “// Iterando em uma lista de clientes”. O que o outro desenvolvedor quer saber é porque seu código funciona e porque você escolheu ir por esse caminho.

9. Interrupções

Poucos desenvolvedores conseguem começar um código do zero e terminar logo em seguida. Em geral, tendemos a ser mais semelhantes a locomotivas do que Ferraris; pode nos levar algum tempo para começar, mas uma vez que nós engatilhamos, podemos ter uma quantidade impressionante de trabalho.

Infelizmente, é muito difícil entrar em sintonia com seu código se seu “trem” de pensamentos está constantemente sendo desviado por clientes, gerentes e colegas.

Há simplesmente muita informação, precisamos ter em mente enquanto estamos trabalhando em uma tarefa para ser capaz de finalizar o trabalho, lidar com outra questão, em seguida, pegar a tarefa sem perder um passo. Interrupções acabam com nossa linha de pensamento e coloca-o de volta muitas vezes um repensamento, frustrante, e o pior de todo o processo, sujeito a erros.

8. Crescimento de escopo

Crescimento de escopo torna relativamente um simples pedido em um “monstro”, tornando-os em aplicações complexas.

  • Versão 1: Mostrar um mapa da localização
  • Versão 2: Mostrar um mapa 3D da localização
  • Versão 3: Mostrar um mapa 3D da localização  e permitir que o usuário navegue por ele

Argh! O que normalmente levaria 30 minutos para ser desenvolvido agora passou para um sistema complexo que levaria milhares de horas. Pior que isso, maior parte do desenvolvimento do escopo adicional será de reescrita de código e muitas vezes a inutilização de códigos escritos dias antes.

7. Gerentes sem conhecimentos técnicos

Gerenciar não é uma tarefa fácil. As pessoas são difíceis de lidar. Somos frágeis, volúveis e brigamos por tudo para ser o primeiro. Manter um time de desenvolvedores é uma tarefa árdua. No entanto isso não significa que os gestores devem ser capazes de ter alguma compreensão básica do que fazemos. Quando a gerência não consegue entender os conceitos básicos de nosso trabalho, vamos acabar com escopo mal entendido, prazos irrealistas e a frustação geral de ambos os lados. Esta é uma queixa muito comum entre os desenvolvedores e fonte de muita angústia.

6. Documentar as nossas aplicações

Deixa eu começar dizendo que sim, eu sei que há um monte de geradores de documentação por aí, mas na minha experiências eles só se aplicam para para gerar documentação de APIs para que outros desenvolvedores a usem. Se você estiver trabalhando com uma aplicação normal que pessoas comuns usarão, você vai ter que escrever documentação que um leigo possa entender (por exemplo, como funciona a sua aplicação, guia de resoluções de problemas, etc).

Não é difícil ver que esse é o temor dos desenvolvedores. É só dar uma olhada em todos projetos open-source que existem. Qual é a única coisa que eles estão constantemente pedindo ajuda? Documentação.

5. Aplicações sem documentação

Eu nunca disse que não éramos hipócritas. :-) Desenvolvedores precisam constantemente integrar bibliotecas e aplicações de terceiros em seu trabalho. Para fazer isso, precisamos de documentação. Infelizmente, como mencionado no item 6, os desenvolvedores odeia escrevê-las.

Não há nada mais frustante do que tentar utilizar uma biblioteca de terceiros, tendo absolutamente nenhuma ideia do que serve metade das funções. Qual é a diferença entre funcaoA() e funcaoSimilarB()? Preciso executar uma verificação nula antes de acessar a propriedade X? Terei que fazer na tentativa e erro! Urgh!

4. Hardware

Qualquer desenvolvedor que já tenha sido chamado para depurar uma estranha ocorrência no servidor de banco de dados ou porque as unidades RAID não estão funcionando corretamente, sabe que esses problemas são chatos. Não parece ser incomum que, desde que trabalhamos com computadores, devemos saber como arrumá-los. Mas na verdade isso vale pra alguns desenvolvedores somente. Muitos de nós não sabemos ou não nos interessa em saber o que está acontecendo depois que sua aplicação está no servidor em produção.

3. Imprecisão

“O site está quebrado”. “Funcionalidade X não está funcionando corretamente”. Solicitações vagas são difícieis de lidar. É sempre surpreendente pedir para um não-desenvolvedor reproduzir o erro. Eles parecem não compreender que “está quebrado, arrume!” não é informação suficiente para que possamos trabalhar nela.

Software é (na maioria das vezes) determinista. Nós gostamos que seja dessa forma. Muitos nos ajuda em dizer em qual etapa do processo está quebrada do que simplesmente pedir para consertarmos.

2. Outros desenvolvedores

Desenvolvedores nem sempre se dá bem com outros desenvolvedores. Isso é chocante mas é verdade. Isso poderia facilmente ter sua própria lista de top 10, mas eu vou listar somente alguns:

  • Estar irritado ao ponto de ser agressivo;
  • Não entender que há tempo para debater a arquitetura do sistema e outro para desenvolver o código.
  • Incapacidade de se comunicar de forma eficaz ou utilizando uma terminologia confusa.
  • Incapacidade de assumir as responsabilidade.
  • Desmotivação com o projeto.

E o último, mas não menos importante, o número um das coisas que mais nos irritam.

1. Olhar seu código seis meses depois

Já olhou seus códigos antigos? Como você foi estúpido! Como você poderia ter escrito aquilo? Joga tudo fora!

Bom, a notícia é que você não está sozinho.

A verdade é que no mundo do desenvolvimento está em constante mutação. O que nós consideramos como uma boa prática hoje poder ser obsoleto amanhã. E simplesmente não é possível escrever um código perfeito, porque as normas sobre as quais nosso código é julgada está evoluindo a cada dia. É difícil lidar com o fato de que seu trabalho, tão bonito quanto ele pode ser agora, será provavelmente ridicularizado posteriormente.

É frustante, porque não importa o quanto nossos estudos para melhoria constante para que nós utilizemos as melhores ferramentas, modelos e melhores práticas, haverá sempre uma melhor. Pra mim, essa é a coisa que mais me incomoda.

Bom, está aí. As dez coisas que mais irritam desenvolvedores. Se você achar que falta algo, envie aqui nos comentários!

  1. #1 by Will Valentim on 28 de May de 2010 - 9:55

    Chromium 5.0.375.55 Linux

    Cara, mto legal o seu artigo e na minha opnião o item 1 é sim o que mais incomoda.

  2. #2 by Paulo Brito on 28 de May de 2010 - 14:26

    Firefox 3.6.3 Ubuntu 10.04

    Se você complementar o título do item 7 com “e que acha que tem” ele vira item 1 sem dúvida. Esse é o pior tipo. Te faz fazer as piores gambiarras, deixando sua auto estima no chão quando o usuário percebe a bela merda que “você” fez.

  3. #3 by Esdras on 28 de May de 2010 - 14:31

    Chromium 5.0.342.9 Linux

    Voto no número 7 como o pior item. :)

  4. #4 by Hamilton Vera on 28 de May de 2010 - 14:35

    Firefox 3.6.3 Ubuntu 10.04

    Se $n=0 seu código vai dar problema

  5. #5 by pflynn on 28 de May de 2010 - 14:58

    MSIE 8.0 Windows 7

    Acho que a pior coisa que existe é a número 3. Nada pior do que diagnósticos do tipo: “Não funciona” ou “Tá dando erro”. Principalmente vindos de outros desenvolvedores. “Não compila, tá dando erro”. “Não tá funcionando”. Deveriam ensinar muita gente que uma sentença completa do tipo “Eu pretendo fazer ____, e eu esperava ____, mas o resultado que obtive foi ____.” ou “o erro que aparece é ____” ajuda a ambas as partes.

  6. #6 by Caio Carrara on 28 de May de 2010 - 15:04

    Firefox 3.6.3ZenwalkGNULinux Linux

    Sou novato, foi bom saber que essa “crise” de olhar o código depois de um tempo não é exclusividade. Haha. Parabéns pelo post, para mim que ainda não atuei profissionalmente na área foi bastante instrutivo… Abraço!!

  7. #7 by Matusalem on 28 de May de 2010 - 15:13

    Firefox 3.6.3 Ubuntu 10.04

    Trabalho com programação desde o tempo dos ábacos. Já estou começando a rever códigos antigos e achar que tinha soluções mais elegantes que as de hoje.
    É… eu tô caducando. Mas não se preocupe, vc será o próximo!

  8. #8 by Felipe Elias Philipp on 28 de May de 2010 - 15:17

    Firefox 3.6.3.NETCLR3.5.30729 Windows Vista

    Quanto ao olhar o código antigo, eu não acho que seja uma coisa que me deixe irritado, muito pelo contrário.

    Se daqui a 6 meses eu olhar um código e ver que ele está ruim, quer dizer que eu aprendi algo de novo, e consequentemente houve uma evolução.

    Já se o código continua bom depois de 6 meses, provavelmente eu não aprendi nada de novo que possa melhorar aquele código.

  9. #9 by Glaydson on 28 de May de 2010 - 15:29

    Chromium 6.0.419.0 Linux

    O não saber lidar com a número 8 me fez desistir da Informática.

  10. #10 by Walter L. on 28 de May de 2010 - 15:30

    MSIE 7.0 Windows XP

    Definitivamente o item 7…. Trabalhar com gente incapaz de compreender uma tarefa (ia usar “incompentente” ou “fraco”, mas achei que ia ficar deselegante) é muito ruim…

    Exatametne por que esse tipo de pessoa provoca, ou piora, todos os outros 9 itens desta lista – negocia mal, empurra trabalho desnecessário para a equipe , desconhece metodologias de desenvolvimento (vide itens de documentação) e para finalizar, não tem a mínima “moral” com sua própria gerência e com resto da empresa…. Por isso coloco este item como o número 1 da lista.

    P.S.: essas argumentações são baseadas em fatos reais, qualquer semelhança com algum ambiente de desenvolvimento próximo de você é “mera coincidência”.

  11. #11 by M. Augusto on 28 de May de 2010 - 15:52

    Firefox 3.5.9.NETCLR3.5.30729 Windows XP

    Muito bom o post. Acho o mais irritante uma variação do 1: ao invés de eu mesmo olhar meu código tempo depois, OUTRA pessoa olhar e ficar criticando… pois não está funcionando? Naquela época é a solução que funcionou, pode não ser a melhor coisa ou ser “feia”, mas se hoje tem algo melhor ou mais simples, não encha o saco: ATUALIZE. :-D
    Se eu mesmo olho código antigo que fiz, fico mais é surpreso: “nossa, como fiz uma coisa tão simples desse jeito”, “funciona mas está horrível”, “quanta volta pra chegar nesse resultado”, “que anta que fui”, rsrs…

  12. #12 by Marcio Andrey Oliveira on 28 de May de 2010 - 17:01

    Firefox 3.6.3.NETCLR3.5.30729 Windows XP

    @Paulo Brito Concordo contigo. E o mais chato, é que esses “programadores word” vêm sempre com aquela frase irritante (e sempre errada): a modificação é simples. É só colocar um if

  13. #13 by Geraldo on 28 de May de 2010 - 17:40

    Firefox 3.6.3.NETCLR3.5.30729 Windows Vista

    No item 7(Gerentes sem conhecimentos técnicos) concordo quando se tem um gerente, mas não devido ao fato de não se ter a técnica e sim pelo motivo de não saber organizar com sua equipe o prazo estimado, até porque existem uma série de metodologias que dá suporte a esse fato, outra saída muito básica é a comunicação informal, se não temos como finalizar um regra monstruosa que fora proposta e achamos que não podemos finalizar em 5 dias, devemos comunicar aos nosso gerentes e esses, por sua vez comunicar ao Diretor ou Cliente da situação e assim negociar novos prazos.
    Tudo vem da tecnica utilizada para saber estimar prazos com a equipe e manter uma comunicação transparente e objetiva, nada de viver dentro de uma bolha, vamos nos socializar! ;)

  14. #14 by Thomas Lopes on 28 de May de 2010 - 17:57

    Chrome 4.1.249.1064 Windows Vista

    Honório, parabéns! Esse artigo é muito legal. E devo concordar com praticamente todos os itens, heheh. Abraço! Em minha opinião, os piores são 7, 8 e 3.

  15. #15 by Rael on 28 de May de 2010 - 18:28

    Firefox 3.6.3.NETCLR3.5.30729 Windows Vista

    A regra número 1, eu sempre a resumo com “Todo programador tem telhado de vidro”, pelos motivos expostos (ou seja, você já fez sim muito código porco na vida, portanto nunca critique código de alguém sem ser extremamente polido).

  16. #16 by Ernesto Hayashi on 28 de May de 2010 - 19:14

    Firefox 3.6.3 Linux

    Muito bom o artigo!

    E como vários acima, o item 7 é o campeão da irritação. E o 8 é quase sempre conseqüência direta do 7; já que o gerente não tem noção, da-lhe mudar o escopo sem mudar prazo e custo. Para mim, o 3 é um distante terceiro lugar. Eu até documento os porquês e o quês, mas documentação vir para mim é uma raridade.

  17. #17 by Thales Oliveira on 28 de May de 2010 - 20:56

    Chromium 5.0.375.55 Linux

    @Glaydson
    É uma merda mesmo, o cara que vende meus sistemas ainda me leva ao suicídio com isso.

  18. #18 by Brunno on 29 de May de 2010 - 13:42

    Firefox 3.6.3 Windows 7

    Muito bom!

    Acho que todo desenvolvedor se identifica com a maioria, senão todos os itens. =)

  19. #19 by Daniel on 29 de May de 2010 - 23:20

    MSIE 8.0 Windows XP

    Faltou um item de importancia sem igual. Gerentes “COM” conhecimento tecnico. Aqueles que conhecem do assunto, tem muita bagagem, experiencia de sobra; mas pelo efeito alucinogeno-hipnotico-idiotizante-ignorantezador do MSN ou da fazenda no Orkut ou seja la do que for; deixam de se dedicar ao que deve ser feito, respondem a todas as solicitacoes de mudanca de escopo com “isso e facil”, “e so colocar um if”; criticam todas as ideias com alegacoes do tipo “cuidado com esse ponteiro, pra que usar malloc se da pra definir a variavel como matriz”…

    Ah… o campeao de todos os comentarios da chefia neste nivel : “Ja nao testou o suficiente? Coloca em producao” apos miseras 2 horas de testes…

    Caramba… to mais estressado do que imaginei :D

  20. #20 by Rodrigo Flores on 30 de May de 2010 - 23:16

    Firefox 3.6.3 MacIntosh

    Excelente artigo!

  21. #21 by Vinicius on 31 de May de 2010 - 1:12

    Firefox 3.5.9 MacIntosh

    muito bom o artigo… me atentarei a essas dicas para não cometer tais erros..

  22. #22 by Brasil on 31 de May de 2010 - 9:12

    Firefox 3.6.3 Windows 7

    Creio que a pior de todas é a nr. 9 (Interrupções).
    O usuário me liga só para perguntar “Tá pronto?” e conta uma longa estória.
    Fico com vontade de dizer: “Eu estava trabalhando nisso. Se você não interromper, eu termino mais rápido.”

    Parabéns pelo artigo.

  23. #23 by Bruno Barbosa on 31 de May de 2010 - 9:17

    Firefox 3.6.3 Ubuntu 10.04

    Parabéns pelo artigo Marcelo…
    Muito bom!

    Gostaria de fazer duas perguntas a você, meio que OFF Tópic…
    são sobre os plugins utilizados em seu blog…

    1 – qual o nome do plugin para colocar trechos de código no post? como o utilizado neste…
    2 – qual é esse plugin que indica nos comentários o navegador e o SO do usuário?

    abraços.

    até mais.

    • #24 by Marcelo Honório on 31 de May de 2010 - 10:05

      Firefox 3.6.3 MacIntosh

      Oi Bruno,

      Obrigado. Sobre os plugins:
      1 – SyntaxHighlighter Evolved
      2 – Advanced User Agent Displayer

      Uma dica: para descobrir esses plugins era só ter dado um “inspect element” neles. Você notaria que as imagens ou css ou class de div se referenciam ao plugin. Isso é válido pra quase todos plugins.

      Abs.
      Marcelo Honório

  24. #25 by José Filipe on 31 de May de 2010 - 9:43

    Firefox 3.5.9GTB7.0 Fedora  11

    Eu acho que o pior são os gestores sem conhecimento técnico …. !
    Mas conheço e trabalho com um gestor com conhecimento técnico, que não faz a mínima ideia do que eu faço, dos times que preciso, …. !
    Pensa que é só torçer os dedos, e num gesto mágico, já tá pronto … !
    Isso é q mais me irrita … assim como algumas indirectas … !

    Outra coisa q desmotiva é a falta de feedback … e quando há feedback é um pouco vago …. Podiam ao menos colar o bug para serem mais precisos … !
    Porque se dizem a aplicação não funciona, isso é mto vago … !

    Eu não ficaria triste ao ver o meu código 6 meses depois, pois é sinal q houve uma evolução positiva …. !
    Eu tenho sempre o cuidado de comentar o código mas não em demasia, e costumo explicar os porquês … ! looool

    E fico triste quando um projecto open source fica parado no tempo, por falta de programmadores motivados …. !

  25. #26 by luizzeross on 31 de May de 2010 - 10:13

    Firefox 3.6.3.NETCLR3.5.30729 Windows XP

    Disse tudo e mais um pouco. Realmente, está é a infernal realidade.

  26. #27 by Flavão on 31 de May de 2010 - 11:46

    Firefox 3.6.3 Windows 7

    PelamordeDeus… dá não… tem dias que quero morrer. Estou stressado… tenho que parar! 17 anos da vida passando por isso, e o pior, pq gosto!
    O ruim é acompanhar a coisa se degradar e ficar no ponto em que está.
    Perfeito o tópico!

  27. #28 by Joao Polo on 31 de May de 2010 - 12:57

    Firefox 3.6.NETCLR3.5.30729 Windows XP

    @Daniel
    Muito bom!!! resumiu vários itens: “basta colocar um if… que o mapinha simples vira um navegador 3D completo”.

    Ao Marcelo… parabéns pelo artigo.

  28. #29 by Bruno Barbosa on 31 de May de 2010 - 15:57

    Firefox 3.6.3 Ubuntu 10.04

    @Marcelo Honório
    Valeu Marcelo,

    com certeza a dica será de grande valia.

    obrigado.

  29. #30 by José Guilherme Honorato Arantes on 1 de June de 2010 - 9:24

    Firefox 3.6.3 Windows XP

    Parabens pelo artigo. Os ítens 1, 3 e 7 realmente são de matar! Escrevi até um post sobre algo a ver com esse ítem 1 e 5 no meu blog.
    No ítem 3 deve-se salientar sobre a importância do “print screen” hehe
    abraços

  30. #31 by Sandro Salles on 1 de June de 2010 - 10:10

    Firefox 3.5.9 Ubuntu 9.10

    Bem legal o artigo, parabens Marcelo. Sou programador e apesar disso, acho uuma bobagem que a maioria dos programadores se irritem com coisas como o item 8 (engessar requisitos é o mesmo que frustrar o cliente, que é igual a perder uma conta hj em dia… temos que entender que o processo de desenvolver uma aplicação é um aprendizado, acima de tudo, para o próprio cliente, que só descobre o que realmente precisa no caminho…). O item 2 também demonstra falta de maturidade, já em relação ao item 6 (documentação), na verdade aquilo que deveriamos gerar é um código claro, com responsabilidade bem definidas e nomes significativos em metodos, classes e variaveis. Eventualmente documentar metodos e classes, claro, porque nem sempre conseguimos ser tão claros em algumas soluções que encontramos para nosso código. Já a documentação “user friendly” é algo que definitivamente não deve ser gerado pelo programador, e sim, por um usuário… são pontos de vista diferentes.

    Só uma dica: Sei que o texto foi traduzido, mas está com muitos erros de português… seria uma boa dar um “tapinha” antes de publicar ;-)

    Abs
    Sandro Salles

    • #32 by Marcelo Honório on 1 de June de 2010 - 10:29

      Firefox 3.6.3 MacIntosh

      Caro Sandro,

      Tenho que discordar de você sobre o item 8. Isso só acontece pois os clientes estão acostumados, temos que treiná-los a trabalhar com escopo fechado. No exemplo dado no artigo, por que não chegou ao desenvolvedores somente a versão final do escopo? Porque o cliente tem costume de cuspir ideias e o gerente não filtra isso. Já trabalhou com alguma metodologia como SCRUM? Ou somente Go Horse? http://gohorseprocess.wordpress.com/

      Documentação para usuário gerada pelo próprio usuário? Não entendi.

      E sobre a tradução, obrigado pela dica. Caso esteja incomodado acesso o artigo original em inglês ;-)

      Abs
      Marcelo Honório

  31. #33 by Fabiano Shark on 5 de June de 2010 - 0:49

    Chrome 5.0.375.55 Windows XP

    Interessante. Gostei do post! :)

  32. #34 by Jeferson on 8 de June de 2010 - 10:53

    Firefox 3.0.19 Ubuntu 8.04

    Para mim é o 4, 5 e o 2 com certeza

  33. #35 by wancharle on 8 de June de 2010 - 17:12

    Firefox 3.5.9.NETCLR3.5.30729 Windows XP

    Otimo artigo!
    Quanto ao item 1 só é problema para quem programa em linguagens como php e perl,

    dificilmente alguém que programe em python ou ruby( linguagens auto explicativas por natureza) terá esta problema.
    Já com os outros problemas…

    • #36 by Marcelo Honório on 8 de June de 2010 - 17:18

      Firefox 3.6.3 MacIntosh

      Caro wancharle,

      Sobre o item 1, não tem ligação com a tecnologia utilizada e sim com o código-fonte, independente da linguagem.

      Sem fundamento nenhum seu comentário.

      Abs,

      Marcelo Honório.

  34. #37 by Ridai Govinda on 30 de June de 2010 - 8:41

    Chrome 5.0.375.86 MacIntosh

    Desculpe, mas os números 1 e 4 eu discordo plenamente. Estou no mercado desde 1999, e desde lá o que mais curto em “desenvolvimento” é que o processo de codificação, a arquitetura de software, os frameworks e as tecnologias envolvidas (do hardware, sistema operacional, servidor de aplicação ao SGBD, e outros) estão sempre em crescente evolução. Acho que se a pessoa se denomina de DESENVOLVEDOR, o fator mais importante é SE DESENVOLVER… Como se pode dizer que é frustrante ver o seu código de 2006 estar obsoleto hoje, por exemplo? É querer continuar codificando do mesmo jeitinho por 10 anos a fio, coisa que não me dá o menor T.

    Achei extremamente contraditório esse top 10… A parte da documentação foi o melhor ponto de vista exposto, e concordo. (Itens 7, 9 e 10)

  35. #38 by Agência Kryzalis on 23 de August de 2010 - 16:49

    Chrome 5.0.375.126 Windows 7

    Realmente é uma lista que traz alguns dos problemas que os desenvolvedores passam.

    Todos itens tem sua importância e tem que ser tratado particularmente para sempre estar minimizando esses fatores negativos, com isso os desenvolvedores vão produzir mais e ambos sai ganhando.

    Que pena que os gerentes de projetos e empresas não tem a capacidade si-quer de ler um post parecido para melhorar o ambiente de trabalho.

    Atenciosamente

    João Netto
    Diretor de Negócios da Kryzalis – Agência Digital

  36. #39 by Thiago on 23 de August de 2010 - 18:23

    Chrome 6.0.472.41 Windows 7

    Item 7 ! sem mais..

(não será publicado)