Elemar DEV

Tecnologia e desenvolvimento

Notas de Leitura – The Clean Coder – Sobre o “Vou Tentar” e saber dizer não

Olá. Tudo certo?!

Nesse post, continuo compartilhando considerações minhas sobre trechos do livro “The Clean Coder”, do Uncle Bob. O post anterior despertou um debate relativamente intenso e, por isso, considero a leitura recomendável.

Quanto maior o desafio, mais importante saber dizer “Não”

Uncle Bob defende que o programador profissional deve ser responsável com os compromissos que assume. Considere o seguinte trecho.

The most important time to say no is when the stakes are highest. The higher the stakes, the more valuable no becomes.

This should be self-evident. When the cost of failure is so high that the survival of your company depends upon it, you must be absolutely determined to give your managers the best information you can. And that often means saying no.

Pegou a ideia?! Não se está assumindo que o programador deva fugir dos desafios. No lugar disso, está assumindo que o risco deve ser claro e compartilhado por todos.

Normalmente, pessoas que não fazem parte do time do projeto vão tentar persuadir a todos de que o trabalho pode ser feito. Entretanto, é responsabilidade do time técnico indicar claramente o “no go”.

Trabalhar em equipe

Uncle Bob destaca a importância do desenvolvedor profissional saber trabalhar em equipe. Vejamos o que ele escreve:

We’ve all heard how important it is to be a “team player”. Being a team player means playing your position as well as you possibly can, and helping out your teammates when they get into a jam. A team-player communicates frequently, keeps an eye out for his or hear teammates, and executes his or her own responsibilities as well as possible.

Ou seja, trabalhar em equipe significa, antes de tudo, fazer sua parte. Depois, ajudar os outros fazerem a parte deles. Quem trabalha em equipe defende consistentemente sua posição.

Assumir compromissos que não podem ser cumpridos significa jogar no time de uma pessoa só.

As vezes, alguns “profissionais” tendem a dizer sim apenas para que sejam considerados colaborativos com o time. Mas, entretanto, o resultado é exatamente o oposto.

Sobre o “Vou tentar”

Uncle Bob tem uma posição extrema sobre o “Vou tentar”. Vejamos:

The worst thing developer could do in response to manipulations is say “OK, we’ll try.”. I hate to channel Yoda here, but i this instante he is correct. There is no trying.

Perhaps you don’t like that idea? Perhaps you think trying is a positive thing to do. After all, would Columbus have discovered America if he hadn’t tried?

The word try has many definitions. The definition I take issue with here is “to apply extra effort”.

[..] The promise to try is and admission that you’ve been holding back, that you have a reservoir of extra effort that you can apply.

Evidente, não acha?! Mais sério ainda,

If your “trying” does not lead to the desired outcome, you will have failed.

Percebe! Se algo muito difícil, ou mesmo impossível, for solicitado a você. Então, precisa deixar essa condição muito clara para todos os envolvidos. Não diga “vou tentar”, ele não te ajuda.

Código bem-feito é possível

Uncle Bob comenta criteriosamente um post “mimimi” sobre restrições impostas por gerentes e clientes. Sugiro que comece lendo o post “Is Good Code Impossible?”.

Vejamos o que ele tem a dizer?

In the story when John asks “Is good code impossible?” he is really asking “Is professionalism impossible?”. After all, it wasn’t just the code that suffered in his tale of dysfunction. It was his family, his employers, his customer, and the users. Everybody lost in this aventure. And they lost due to unprofessionalism.

Para Uncle Bob, código bem-feito é o resultado do trabalho de um desenvolvedor profissional. Continuamos,

So who was acting unprofessionallly? John makes it clear that he thinks it was the customer executives. After all, his playbook was a pretty clear indictment of their bad behavior. But was their behavior bad? I don’t think so.

The folks of Gorilla Mart wanted the option to have an iPhone App on Black Friday. They ware willing to pay to have that option. They found someone willing to provide that option. So how can you fault them.

Yes, it’s true, there were some communications failures. But…

O cliente não tem culpa por não saber especificar exatamente o que precisa. O cliente tem uma necessidade a resolver e orçamento para financiar a solução. Não cabe a ele saber especificar o que precisa, afinal, esse não é o negócio dele.

Uncle Bob também livra o “gerente” do John. Afinal, John aceitou o trabalho. Ele disse “vou tentar”.

Seja um herói, mas da forma correta

Uncle Bob defende a ideia de que, as vezes, desenvolvedores assumem riscos desnecessários para se tornarem “heróis”. Mas, vejamos o que ele tem a dizer sobre isso.

Professionals are often heores, but not because they try to be. Professionals are often heroes, but not because they try to be. Professionals become heroes when they get a job done well, on time, and on budget. By trying to become the man of the hour, the savior of the day, developer was not acting like a professional.

Bate forte, né?

Era isso.

5 comentários em “Notas de Leitura – The Clean Coder – Sobre o “Vou Tentar” e saber dizer não

  1. Sobre a ultima parte “Seja um herói, mas da forma correta”, mais especificamente na parte “Professionals become heroes when they get a job done well, on time, and on budget.”

    A primeira coisa que veio na minha mente foi, “em terra de cego, quem tem um olho é rei.”

    Minha humilde opinião é que você não é um herói por fazer o seu trabalho bem feito, você é pago para isso. Mas enfim, em terra de cego…

    • elemarjr
      29/03/2013

      Bem observado. Entretanto, entendo que não há mal algum em reforçar o resultado. Mesmo que ele seja “apenas” o esperado. Veja, não acho que isso se relacione apenas a atividade de desenvolvimento.

      Agora, com certeza, devemos concordar que um “vou tentar” é pior. Não acha?

      • Roberto
        02/04/2013

        Acredito que na verdade estamos lidando aqui com as baixas expectativas dos patrocinadores. Desta forma, com o projeto completo no prazo e dentro do orçamento é um grande feito (ao menos estatisticamente). E o “vou tentar” é um dos maiores contribuintes para tornar esta estatística mais baixa.

  2. Robson Castilho
    29/03/2013

    “Professionals become heroes when they get a job done well, on time, and on budget.”

    É isso aí. Eu complemento dizendo que eles trazem práticas, técnicas, ferramentas que possam melhorar ainda mais o processo.

    Ser herói não é apagar incêndio que você mesmo criou. Você apenas fez sua obrigação de limpar sua m***.

    []s

  3. ericlemes
    30/03/2013

    O único comentário que eu tenho é que eu estou em busca de um líder do tipo “inspirador” a algum tempo. Acho que afirmar uns 6 anos não seria exagerado. Quanto mais conheço o trabalho do Uncle Bob (ainda não li o Clean Coder), sinto que ele está se tornando esse cara.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Informação

Publicado às 29/03/2013 por em Post e marcado , .

Estatísticas

  • 585,827 hits
%d blogueiros gostam disto: