AGILE2012: Clean Code – Robert Martin

Essa palestra foi sobre o livro Clean Code: A Handbook of Agile Software Craftsmanship do Robertin Martin, mais conhecido como Uncle Bob, com o próprio. Já leram o livro? Esse aqui:

Clean Code: A Handbook of Agile Software Craftsmanship.

Não???? Corre! Essa é uma das leituras obrigatórias pra quem quer mexer com desenvolvimento. Devia ser leitura obrigatória do vestibular, assim a gente já entrava sabendo!rs

Eu só fui ler no segundo ano da faculdade e me arrependi, podia ter lido antes, pouparia meus monitores de programação de bastante sofrimento, se bem que eles merecem! rs

Bom…eu já tinha lido o livro, mas queria conhecer pessoalmente Uncle Bob. Não perdi tempo e logo me candidatei para ser voluntária na sala dele. Sim, quase morri pra me apresentar pra ele! Olha a figura aí:

Está desfocada, porque nem sentado ele para quieto.

Palestra começando…

Olha a audiência aí…

Sobre a palestra o que eu tenho a dizer é que foi superficial, talvez porque eu já tenha lido o livro, mas achei que ele podia ter falado muitas outras coisas, mas não posso deixar de dizer que foi uma grande palestra ao mesmo tempo! Essa é um daqueles caras que você não consegue tirar o olho sabe!? Tudo que ele fala faz sentido. Fica na cara que ele sabe muito do que está falando.

Vamos para os detalhes da palestra…

Ele começou com a famosa figura que eu já coloquei aqui no blog e está na primeira página do livro dele, a WTFs/minute. Essa aqui ó:

Code review: WTFs/minute

Depois trabalhou em cima de um codigo beeeem ruim, duas classes e 2.000 linhas! Horrível! Esse código chegou nas mãos dele pois a empresa não conseguia mais fazer qualquer mudança! O sistema não podia mais rodar…e sobre esse cenário ele fala: “The mess grow so big and so deep and so tall, they can not clean it up.There is no way at all”, ou seja, a bagunça fica tão grande, tão profunda que é impossível lidar com ela. Ele chega a ser radical de vez enquando..ele defende que uma classe não PODE ter mais de 100 linhas, não DEVE ter mais de 20 linhas e TEM idealmente de 4 a 6 linhas! = O

Ele tem um conceito que chama ROLLER-COASTER productive. A idéia é que no início temos um projeto pequeno e ás vezes até um projeto novo, então é fácil produzir, alterar o código, mas com o passar do tempo, se o código estiver ruim, fica impossível manter a produtividade…ela cai vertiginosamente, como uma montanha-russa! Hãm Hãm, entenderam o trocadilho???

Beleza! Mas e aí..o que é um clean code afinal??

Aí vão as definições dos bã-bã-bã da tecnologia, pode apostar que eles sabem do que estão falando:

“Clean code does one thing well” Bjarne Stroustrup

” Clean code is simple and direct. Clean code reads like well-written prose” Grady Booch

“Clean Code always looks like it was written by someone who cares” Michael Feathers

” You know you are working on clean code when each routine you read turns out to be pretty much what you expected”  Ward Cunningham

Ele conclui dizendo que a missão de um bom programador é se COMUNICAR com outros programadores e não simplesmente fazer um código que funcione…para isso você precisa ser polido e escrever um código limpo, com funções que fazem apenas uma coisa. Ele deixa claro que o problema não está em códigos grandes, só precisamos arrumá-lo, por exemplo fazer váááárias pequenas funções no lugar de uma única função enorme!

Quem quiser mais informação entra no site oficial dele: http://www.cleancode.com

É isso…

beijos!

PS.: Já estão seguindo nosso Tumblr? E o Twitter? E já curtiram a fanpage no Facebook? E no Google+? AAAA então tá bom! : )

AGILE 2012: Descobrir é divertido!

Jeff Patton

Jeff Patton deu uma palestra na Agile 2012 sobre “O papel do Product Owner”, mais conhecido como o PO e duas frases dele me chamaram muito a atenção e eu anotei pra contar pra vocês:

” Descobrir é o que o time do PO faz”  e  “O trabalho do PO é causar impacto e fornecer resultado.”

Sendo didático, Jeff trouxe à tona uma experiência real…

Uma pequena empresa queria um sistema para acompanhar e relatar o desempenho do seu pessoal de campo. O vice-presidente de Operações tinha algumas ideias claras sobre o que ele gostaria de ver nesse sistema. Eles concordaram com um contrato de curto prazo, 3 meses, para projetar e implementar uma solução piloto. O produto final foi muito diferente do que o vice tinha imaginado…

Primeiro, tivemos que desenvolver um sistema fácil para coletar dados de tempo. Fizemos uma pequena lista com os dados que precisávamos. Implementamos a tela de coleta com esses dados sem medo de errar, era uma tarefa simples. Quando fomos fazer uma demonstração dessa tela para um dos gerentes de serviços de campo, ele imediatamente perguntou por que ele teria que entrar com informações da programação/agenda se a empresa já publicava uma planilha com essas informações. Descoberta! Podemos usar isso para publicar a agenda também. Isso era um bônus real afinal com um só um mês de projeto já tinham reduzido muito a complexidade do sistema.

Isso foi só um exemplo de como fazer descobertas é importânte e divertido. Poupa trabalho! rs.

Jeff também disse em seu discurso que muitas ideias falham, mas mesmo assim são muito válidas, pois sempre aprendemos com elas. Não pecisava ser assim, mas na maioria das vezes aprendemos mais com o fracasso e o erro do que com o sucesso, não é mesmo?!

Ele disse ainda que construir, implementar só por obrigação, apenas para cumprir a especificação é muito chato, que descobrir sim que é divertido e gratificante. Eu concordo plenamente. O que me faz gostar de programar  é a possibilidade de ajudar as pessoas nos negócios, na organização da vida pessoal, na vida estudantil, sei lá…ajudá-las a viver melhor.

Na minha visão esses deviam ser os objetivos da tecnologia: descobrir, criar e ajudar.

É isso…

beijos!

PS.: Já passaram no nosso tumblr? E no nosso Facebook? E no twitter? Se a resposta foi não, posso saber o que vocês estão esperando? : )

AGILE 2012: Agile Values, Innovation and the Shortage of Women Software Developers

O Mulheres na Computação não podia perder uma palestra como essa, certo!? Ela foi dada por Ken H. Judy, um desenvolvedor de software que pesquisa sobre o assunto e é muito bacana. Ele recentemente escreveu um paper com o mesmo tema da palestra. O paper na íntegra está aqui.

Olha o Ken aí!

Se preparando para começar a palestra

Vocês devem estar se perguntando: “Mas a aí, como foi a palestra?” Vamos a ela…

Ele começou falando que a porcentagem de desenvolvedorAS de software nos EUA caiu de 42% em 1987 para menos de 25% hoje.
O mercado de softwares/internet tem públicos feminino e masculino equivalentes. Direta ou indiretamente, as mulheres, representam 61% dos compradores de eletrônicos, 58% das compras pela internet são feitas por mulheres e representam 42% dos jogadores ativos de videogame. Somos protagonistas do mercado virtual, de software , de eletrônicos, videogames…

Mas porquê então as mulheres evitam carreiras nessas áreas?

Segundo pesquisa realizada, mulheres evitam carreiras em desenvolvimento de software devido ao ambientes hostis, ritmo insustentável, pouco reconhecimento (chegando ao menosprezo), desvantagens salariais e falta de avanço, colegas ou mentores.

O grande diferencial da pelastra foi tentar mostrar de quais maneiras o Desenvolvimento Ágil de Software se baseia em valores que desafiam tal disfunção, a fim de construir equipes auto-organizáveis, colaborativas e de alta produtividade. No mundo ágil, os desenvolvedores se envolvem uns com os outros desenvolvedores, produtos, clientes e patrocinadores em uma preocupação comum de previsibilidade, de qualidade e satisfação das necessidades dos usuários finais, deixando na maioria das vezes as diferenças de lado.

A resposta que ele lançou para a comunidade ágil foi: “Podem, valores ágeis, atrair e reter mais desenvolvedorAS de software?”

Na palestra ele deixou claro que estava pesquisando sobre isso e não tinha provas científicas sobre quais, como ou quando práticas ágeis podiam ajudar, mas tinha fortes indícios de que elas podem de fato ser benéficas. Fizemos uma discussão em grupo e também chegamos a conclusão de que elas podiam ter uma influencia bastante boa na vida da mulherada desenvolvedora, afinal o Desenvolvimento Ágil é um movimento construído sobre valores de colaboração, qualidade, entrega e construção, o foco nessas práticas vai de encontro com os interesses das mulheres.

Três Mulheres da Computação! Assunto pra horas! rs

Desta forma práticas ágeis pode incutir uma visão mais social e engajada do desenvolvedor de software, o que irá incentivar jovens a prosseguirem ciência da computação e ajudará a recrutar e reter para a indústria um maior número de mulheres talentosas.

Bom é isso…

beijos!