terça-feira, 31 de julho de 2007

Documentação e rankk.org

Correria do cão, sumiço temporário, deadline de projetos se aproximando, mas o mundo não pára... então antes de continuar com dicas sobre o Plone 3.0 (que entrou em rc2 na sexta passada), vou falar sobre uma área importante do projeto: documentação.

Também aproveito a oportunidade para divulgar um novo site (novo para mim!) de desafios, num estilo semelhante ao já tradicional PythonChallenge, o Rankk!

Geralmente os desenvolvedores de software livre fazem aquilo que eles gostam, ou seja, programar, escrever código. Alguns abençoados vão mais longe e escrevem os testes antes do código. Mas são poucos os que se preocupam realmente com documentação... (só para constar: eu não sou um deles...)

Isso praticamente não gera problemas quando o projeto é pequeno, afinal basta ler o código... mas na medida em que o projeto vai ficando maior, mais complexo, é que os primeiros sinais ficam evidentes.

Agora imagine o caso de um projeto cujo núcleo possui cerca de 240 mil linhas de código, segundo as métricas do Ohloh (a propósito, o que você está esperando para criar a sua conta lá e relacionar os seus projetos?). Isso desconsiderando o resto da pilha, composta pelo Zope, CMF e dezenas de aplicações adicionais que estão disponíveis para uso através do Collective...

Durante muito tempo o Plone foi criticado exatamente pela sua falta de documentação. Com o tempo, num esforço conjunto de diversos desenvolvedores, capitaneados pelo Alexander Limi, foi desenvolvido o Plone Help Center (PHC) para ser utilizado na resolução dessa questão.

O PHC entou em operação no final de 2004 e rapidamente se tornou um grande sucesso. A quantidade de documentação do Plone cresceu em um ritmo quase que exponencial, abrangendo diversos tipos de audiências, desde aqueles que apenas procuram saber o que significa algo, passando por informações de como usar e até mesmo tutoriais passo-a-passo e completos manuais de referência.

Porém, como tudo o que existe em excesso, a área de documentação começou a apresentar problemas. Os usuários começaram a reclamar da enorme quantidade de documentação que estava sendo gerada! Isso acabava atrapalhando na hora de decidir o que era preciso ler a respeito de determinado assunto.

No mês passado, pela primeira vez na história do Plone, tivemos um sprint focado na questão da documentação (e também e-commerce): DocComm. Ele ocorreu nas dependências do Google, em Montain View, na California. A repercussão foi ótima, muitos posts a respeito das atividades que estavam sendo realizadas, entre elas a revisão da documentação existente e a classificação dela, através da técnica de card sorting , onde uma parede inteira acabou sendo preenchida... :-D

Com o sucesso obtido no sprint, onde o próprio PHC também foi atualizado, hoje podemos dizer que o Plone tem uma área de documentação da qual possa se orgulhar! Poucos projetos estão nessa condição, mas vale a pena citar também o SQLAlchemy pela freqüência de atualização e clareza da sua documentação.

Bom, mudando um pouco de assunto, ninguém é de ferro e como eu disse durante algumas entrevistas depois da Arena de Programação, nada melhor do que alguns desafios para desestressar depois de um dia (ou uma noite, ou de vários dias...) de trabalho! A propósito, atualizando o recorde de uptime: 44 horas (das 11:00 de domingo até às 07:00 de terça-feira)... ;-)

Uma das coisas mais interessantes do Rankk, fora a lenga-lenga sobre o Egito, pirâmides e tal..., é que ele não se resume a desafios envolvendo apenas uma única linguagem, ou foca diretamente em programação, e ainda nesse sentido, ele se quer está diretamente ligado a computação! Ter uma base sólida em matemática e lógica é muito mais importantes neste caso.

Obviamente existem problemas específicos de programação, ou melhor, de computação. Prepare seu repertório, pois pelo caminho você vai encarar Javascript, PHP, Perl, Prolog, SQL, Java, Lisp, Brainfuck, Python, código morse e mais alguma coisa que eu ainda não consegui identificar... :-D

Apesar de tudo, é diversão na certa, eu aguarantcho! ;-)

Atualizações:

0 comentários: