Há um fenômeno estranho que surgiu entre os editores de software. Parece haver uma tendência de as pessoas inverterem a compreensão do que torna um produto de qualidade melhor, ou pelo menos isso é verdade quando se trata de quem faz o marketing.
É mais ou menos assim: “O produto deles tem um milhão de linhas de código, mas o nosso tem dois milhões, portanto, nosso produto deve ser melhor”.
Ninguém sabe de onde veio esse tipo de pensamento “mais é mais”, quando antigamente todos trabalhavam tanto para criar uma filosofia “menos é mais”.
Provavelmente tudo começou com o jornalismo voltado para o consumidor, porque muitos escritores tentam impressionar o público citando grandes números. Para a maioria das coisas, isso funciona – esta pequena unidade flash contém 200 terabytes de dados, aquela CPU pode processar 48 bilhões de instruções por segundo – e os escritores nem sempre são tecnologicamente experientes o suficiente para entender que o mesmo não se aplica ao código-fonte.
Mas eficiência na codificação não é apenas sobre a criação de algoritmos apertados. Também é sobre ser capaz de reduzir o desperdício. Isso significa desperdício em termos de quanto tempo você gasta corrigindo problemas, desperdício em termos de consumir muitos recursos do computador e até desperdício em termos de quantas caixas de pizza sua equipe acumulou no escritório até o final da semana. O ideal é que você queira reduzir todas essas coisas.
Como melhorar a eficiência da codificação em 8 etapas simples
Então, o que vamos dar uma olhada neste artigo será o que você poderia fazer para melhorar a eficiência e aumentar a produtividade.
1. Construa um ambiente de trabalho propício
Cada codificador está trabalhando em circunstâncias únicas, e nossos leitores são um grupo muito diversificado, então será mais fácil para alguns de vocês implementar essas sugestões do que para outros.
Se você é um freelancer, parabéns, porque você já é dono do seu próprio ambiente de trabalho. É claro que isso vai mudar quando você for visitar um cliente e tiver que trabalhar no local, mas ainda assim é uma boa posição se você puder ter sucesso nisso.
Se você é o gerente de uma equipe de desenvolvimento, essas sugestões também podem ajudar a levar sua equipe à eficiência máxima. Ou, se você for um funcionário de uma equipe de desenvolvimento, convém sugerir algumas dessas ideias para o seu gerente ou, pelo menos, enviar um link para essa página e esperar pelo melhor.
Considere permitir que os membros da equipe se comuniquem
A programação é parcialmente um exercício de lógica, mas é ainda mais um desafio criativo. Os melhores programadores podem empregar ambos os lados do cérebro em igual medida em qualquer tarefa.
A ciência há muito reconhece que as pessoas criativas fazem o seu melhor trabalho à noite, e isso é algo que todos nós já experimentamos. Então, por que a maioria dos gerentes insiste em uma rotina tradicional das 9h às 5h?
Na verdade, já sabemos a resposta para isso. Trata-se, em parte, de controle e, em parte, de tornar as coisas mais convenientes do ponto de vista comercial (ou, pelo menos, de gerenciamento). Mas essa insistência na rotina e na localização está prejudicando a eficiência e a produtividade da equipe.
O que você precisa entender é que seus programadores provavelmente ficaram acordados a noite toda experimentando o jogo mais recente, ou talvez tenham ido a uma festa ou simplesmente tiveram que socializar com a família.
Isso significa que quando eles chegam para trabalhar na segunda-feira de manhã, você não apenas não os atinge em seu nível máximo de produtividade, mas eles já estão sem energia e cansados.
Dar aos trabalhadores uma escolha sobre quando eles trabalham - e idealmente também onde - é uma excelente maneira de melhorar a produtividade e o moral. Contanto que eles façam o trabalho e obtenham excelentes resultados qualitativos, você não deve se preocupar com quando, onde ou como eles o alcançam.
A exceção é quando você precisa de colaboração próxima, mas na verdade a maioria dos programadores se sai melhor quando deixa as coisas à sua maneira, e a necessidade de colaboração próxima é rara.
A opção de entrar no escritório ainda deveria existir, mas não há nenhuma razão realista para que isso seja exigido, a menos que você esteja trabalhando em projetos militares ultrassecretos.
Como freelancer, você também pode ver que o ponto chave aqui é que, se você fizer a maior parte do trabalho de codificação real à noite, provavelmente fará mais. Há menos distrações tarde da noite, é mais tranquilo e você se sentirá mais criativo.
Evite música
Todos nós já vimos esses estereótipos de filmes malucos em que um überhacker super grungy coloca seus fones de ouvido e atola junto ao death metal, enquanto produz sem esforço telas cheias de código sem sequer parar para respirar. E todos nós que realmente codificamos no mundo real, sabemos quão ridícula é essa imagem.
Mas se você ouvir música enquanto trabalha, tome cuidado. É muito fácil pensar na música em vez de no trabalho, e alguns tipos de música podem ter um efeito soporífero.
Quando você vai treinar na academia, o tipo certo de música pode inspirá-lo a fazer algumas repetições extras. Mas ninguém jamais conseguiu criar uma música que o inspirasse a encontrar a linha com o ponto-e-vírgula ausente ou a fazer a escolha correta entre usar um loop for ou um loop while. O mais próximo que chegamos disso é Electric Dreams.
Tente manter-se em ordem
A desordem pode ser estranhamente reconfortante, mas também pode atrasá-lo. Você pode facilmente perder 20 minutos procurando algo que foi perdido na bagunça, e depois esquecer por que você queria isso em primeiro lugar.
Então, apesar de toda a inconveniência que isso causa, por que somos – pelo menos alguns de nós – tão viciados na desordem? A especialista organizacional e autora Julie Morgenstern afirma que é porque esse material nos conecta com nosso passado e desempenha um papel na definição de nossa identidade.
Marcus Geduld, um professor e diretor de palco baseado na cidade de Nova York, sugere que isso ocorre porque a desordem é preferível a um ambiente "estéril" e compara o caos da desordem a uma afirmação de liberdade e criatividade.
No entanto, não há dúvida de que reduzir a desordem o ajudará a evitar distrações e desorganização. Como tal, é uma meta digna de ser alcançada.
De qualquer forma, mantenha alguns objetos sagrados por perto que façam você se sentir melhor e menos estressado, mas não exagere. Destralhar é uma das coisas mais difíceis de fazer para a maioria das pessoas, e não são apenas nossos desktops físicos que precisam de destralhar, mas frequentemente nossos desktops de computador também.
Se você realmente tem dificuldade com isso, você pode tentar usar um DTE minimalista como o Fluxbox, que realmente não permite confusão.
Mas no meio de tudo isso, não exagere. Há muita boa ciência sugerindo que um pouco de caos no ambiente pode ser realmente propício para a criatividade. Uma das pesquisas mais citadas sobre isso é uma entrada no jornal Psychological Science, de Vohs, Redden & Rahinel, da Universidade de Minnesota, intitulada Ordem Física Produz Escolhas Saudáveis, Generosidade e Convencionalidade, Considerando que o Transtorno Produz Criatividade. Provavelmente, a razão pela qual este é o jornal ao qual os jornalistas se apegam é que ele conclui claramente que: “... os participantes em uma sala desordenada foram mais criativos do que os participantes em uma sala organizada.”
Muito menos populares são pontos de vista divergentes, como Transtorno ambiental leva a falha autorregulatória (Chaye & Zhu, 2014), publicado no Journal of Consumer Research. Este estudo descobriu que as pessoas que trabalham em ambientes desordenados foram prejudicadas em sua capacidade de executar tarefas.
Então, onde isso te deixa? Você deve trabalhar no caos ou na esterilidade? A resposta parece ser encontrar um equilíbrio onde seja apenas caótico o suficiente para mantê-lo inspirado, mas não tanto que você se distraia ou tenha dificuldade em encontrar coisas.
Deixe algum espaço atrás de você para pacificar seus pensamentos
É uma boa ideia ter muito espaço para vagar quando você está deliberando. Muitos dos melhores almirantes e generais da história eram renomados pelo extenso tempo que passavam no convés enquanto planejavam estratégias de batalha.
Não apenas os homens que lutam seguem essa prática. Muitos monges budistas também defendem a "meditação andando" e acreditam que ajuda a promover a clareza da mente. Sempre que você tiver um problema de programação particularmente complicado para resolver, pode achar que ajuda esticar um pouco as pernas com uma caminhada meditativa ao redor do convés. Obviamente, aqui novamente, a falta de desordem o ajudará a fazer isso sem acabar no hospital.
Como chefe, tome uma abordagem cautelosa em relação aos esforços criativos
Não há nada de errado com críticas construtivas, mas você precisa escolher o momento certo e abordá-lo da maneira certa, ou pode sair pela culatra, tornando sua equipe menos produtiva no futuro. Ao invés de inspirá-los e fornecer insights, você pode realmente fazê-los com medo de assumir riscos, o que é uma boa maneira de matar a criatividade. Marieke Roskes, em Restrições que ajudam ou atrapalham o desempenho criativo: uma abordagem motivacional, fornece uma estrutura para como lidar com a motivação dos trabalhadores criativos e, especificamente, também como evitar desmotivá-los não intencionalmente (Gerenciamento de Inovação e Criatividade, Vol 24, Iss 2, 2015).
2. Estabelecer um bom SOP
Há muitas tendências cativantes no gerenciamento de negócios e procedimentos de programação que soam muito mais sensatos na teoria do que na prática. Se uma determinada abordagem funciona para você ou não, depende do seu objetivo e do que você pessoalmente considera um resultado bem-sucedido.
Um exemplo de metodologia que uma empresa para a qual trabalhei tentou - e abandonou com a mesma rapidez - é a programação em pares (não deve ser confundida com a programação PEAR).
Embora algumas pessoas realmente admirem esta metodologia de trabalho e elogiem o seu lugar no paradigma de desenvolvimento ágil, descobrimos que ela era terrivelmente ineficiente.
Para começar, eram necessários dois programadores para cada estação de trabalho, então você estava pagando o dobro por menos trabalho de desenvolvimento real. Também descobrimos que era muito mais lento trabalhar dessa forma devido ao fluxo frequente de paradas/inicias e à tendência para diálogos desnecessários.
As vantagens da programação em pares eram o resultado de documentação mais natural e documentação mais rigorosa. Também permitia que os bugs fossem detectados com mais facilidade e que fossem feitas sugestões sobre o aperto de um algoritmo. Ao mesmo tempo, no entanto, as mesmas vantagens também criavam problemas porque às vezes os ajustes e ajustes não eram realmente necessários.
Outro risco com essa abordagem é que você pode obter o efeito identificado por Roskes, onde os programadores podem hesitar em tentar as coisas porque não querem ser corrigidas. Você pode encontrar confrontos de personalidade, onde um desenvolvedor é muito pedante e tradicional, mas o outro é mais criativo e espontâneo.
Os programadores costumam afirmar que preferem a programação em pares. É possível que isso aconteça porque eles desfrutam da interação social que isso proporciona, mas isso nada contribui para a eficiência da produção, exceto, talvez, como um impulsionador da moral.
Então, o que você precisa estabelecer é o que realmente funciona para seus desenvolvedores e o que não funciona. Para as coisas que não funcionam, é melhor descartá-las, mesmo que sejam uma prática de tendências. O que quer que ajude a equipe a progredir rapidamente é uma coisa boa. Mas se eles estão sobrecarregados com uma metodologia que não combina com seu estilo, isso acabará levando a problemas.
3. Incentive a documentação detalhada
Embora possa parecer que a verbosidade aumentaria a ineficiência, a pequena quantidade de tempo necessária para fornecer mais detalhes e precisão nos comentários pode economizar muitos problemas à medida que o projeto evolui ou sofre revisões.
4. Desencorajar documentação desnecessária
Código bem escrito é muitas vezes auto-documentado. Se é perfeitamente óbvio o que uma função faz do nome que você dá (o que deveria ser quase sempre o caso), então adicionar mais descrição é supérfluo. O mesmo vale para os valores de nomeação e retorno de variáveis. Deve ficar claro a partir do nome o que eles fazem, e nos casos em que não é possível fazer isso, você deve incluir uma descrição deles nos comentários.
5. Espaço em branco é seu amigo
Usar o espaço em branco adequadamente em seu código é valioso para ajudar a tornar o código mais fácil de ler, revisar e entender. Ele anda de mãos dadas com boa documentação e escrita de código de auto-documentação. Deve ser possível para qualquer programador experiente - ou talvez até mesmo um não programador - pegar uma cópia do seu código-fonte e entender instantaneamente qual é o propósito de cada função e como ela funciona. Idealmente, alguém deveria ser capaz de aprender a programar a partir de nada mais do que estudar seu código bem escrito.
6. Prefiro simplicidade sobre complexidade
Quanto mais complexo você criar seu código, mais difícil será para desvendá-lo. Ironicamente, isso se aplica a atalhos de programação, como o uso de condicionais abreviados, em vez de escrevê-los na íntegra. Isso economiza tempo na escrita, mas um programador menos experiente que entra para revisar seu código mais tarde pode não entender suas intenções.
7. Teste exaustivamente
O código deve ser testado de forma incremental e frequente. Antes de implantar qualquer coisa, você deve realizar o máximo de testes internos possível, mesmo que sua primeira versão seja designada como Alfa.
8. Use o controle de versão
Você teria que ser louco para não usar o controle de versão em um grande projeto. Sem isso, você não está protegido de seus próprios pequenos erros, e também é realmente fácil para outro membro da equipe acidentalmente (ou intencionalmente) sabotar seu código, sobrescrevendo-o com algo que não lhe agrada.
Conclusão
Levando em consideração essas oito sugestões principais, você será capaz de desenvolver sua própria estratégia para extrair o máximo de eficiência para você e para todos os membros da equipe com quem trabalha.
Você não precisa necessariamente aplicar todos eles e certamente alguns podem nem ser práticos para você, mas qualquer combinação deles provavelmente resultará na realização do seu trabalho com menos complicações. Um fluxo de trabalho mais produtivo se pagará com o tempo, mesmo que seja apenas em termos de redução do estresse e de dar a você mais tempo para si mesmo. Esse é um objetivo pelo qual vale a pena trabalhar.
Comentários Respostas 0