Full-stack developer Emerson Rocha .::. CMS Joomla!, PHP, JavaScript/NodeJS, Infraestrutura

Antes de continuar lendo esse artigo, gostaria que lesse esse post O que ocorre com as JUGS? e essa thread na lista de emails do joomleirobr de mesmo titulo. Este artigo vai demonstrar, de forma rápida impressões que eu pessoalmente tenho a respeito.

Não há um preconceito em aceitar ideias

Concordo com o Ries, não fosse por um outro ponto pertinente: o CMS Joomla e o JPlatform tem uma exigência alta na forma como o código tem que ser enviado. Estou acompanhando de forma mais próxima aqueles que, ou tem poder de aceitar commits no código, ou tem esse poder mas preferem deixar um terceiro fazer o assemble de todos os códigos, e a forma como eles falam toda vez que alguém aparece com uma boa ideia nova.

Passa a etapa de que "a ideia é boa", ou a de que "a ideia é razoável, e ainda pode melhorar", o primeiro ponto que aparece é: alguém precisa fazer o código de implementação desta ideia. A questão é quem vai fazer isso?

Alguém precisa fazer ou um protótipo, ou finalizar a ideia

Outro ponto pertinente é que mesmo uma ideia boa precisa ser posta em pratica. E não importa o quão fantástica ela seja para você, e mesmo para todos os outros programadores, isso não quer dizer que você vai conseguir que alguém ponha esse código em prática por outras pessoas por uma razão simples: eles estão ocupados. Você pode aparecer com uma idéia maravilhosa de permitir que a pessoa troque o editor diretamente na tela de criação de artigos do Joomla e todo mundo achar esse atalho legal, mas as prioridades de outros programadores podem ser totalmente diferentes. E por mais que a sua sugestão represente apenas umas 8 horas de código, revisão, escrever explicações e documentação e afins, essas oito horas, para outras pessoas que são ocupadas, podem estar sendo usadas para resolver problemas que eles acham bem mais pertinentes e que eles preferem dedicar o tempo deles.

E ai vem o ponto que eles te sugerem enviar o código pronto desta ideia, que então ela poderá ser testada e implementada pois, desde já, todo mundo concorda que ela é uma boa idea. E, como você não conseguiu outros para programarem essa ideia, você mesmo vai ter que fazer.

A exigência de qualidade de código é alta, desmotivante, mas justificada

Você se esforçou, passou três dias, ou algo equivalente a umas 12 horas, aprendeu a usar o git, leu alguma coisa sobre como é o core do Joomla, e enviou o código. Talvez tenha enviado para o lugar errado, pois não sabia que em vez de ser via git(hub), os códigos para o CMS Joomla (na data deste artigo) tem que ser enviado via SVN no joomlacode, então dedica mais 6 horas e aprende a usar o SVN. Conforme a ideia ela vai ser testada e aceita ou não logo de primeira pela equipe do Joomla Bug Squad, visto que por questões mais do que lógicas precisa ser testada por pessoas que garantam que a sugestão de uma nova característica não vá causar problemas a todo o sistema.

Vamos pensar em situações caóticas do motivo de certa exigência:

  • Já imaginou se sua sugestão faz com que, tem sistema de cache ativado, aka todo e qualquer servidor de grande porte porém não o seu computador local, a sua sugestão faz com que os artigos parem de serem salvos?
  • Vamos dizer que tenha o bug acima, e não tenha sido descoberto logo de inicio, mas em algum momento ele VAI aparecer. Sua alteração hoje altera algo como apenas umas 30 linhas de código. Porém, daqui 6 meses, prestes a se lançar o Joomla 3.0, o seu bug aparece. E lá, meu amigo, ninguém vai lembrar que foi por causa de alguma parte dessas 30 linha de código. Quantas horas todo mundo vai ter que dedicar pra resolver um bug que impede que o artigo seja salvo?
  • [Essa parte é técnica demais, eu sei] E se você renomeia um arquivo da forma errada, e o versionador de versão considera o novo arquivo como realmente novo, e não relaciona ele com o arquivo antigo. De forma mais explícita: um arquivo que tem anos de história de dezenas de mudanças e programadores, e o cara que aceita seu código não arruma essa cagada feia sem que você nem perceba?

Propaganda: aproveito pra incitar a participação de pessoas voluntárias no Joomla Bug Squad, algo que ajudaria não só a manter o Joomla mais estável comoquem quer sugerir melhorias. Quem quiser mais informa me passe até seu telefone que eu te ligo.

Como tende a terminar uma história típica como essa

Em geral, caso a ideia seja boa, mas ninguém coloque em prática, ela não sai do papel. Simples assim. E isso pode frustrar quem a sugere, e não raro seu idealizador acaba até meio chateado, e achando que os demais programadores, que não estão sendo pagos para fazerem código para o Joomla, deveriam dar prioridade a sua idea em vez de alguma ideia deles. E é nesse momento, que abre-se margem para o seguinte: a minha ideia de sugestão é ótima, deve dar pouco trabalho para implementar, e no entanto ninguém quer implementar ela, porém as ideias sugeridas por XYZ são aceitas!

Minha explicação para isso é um tanto quanto óbvia: se você realmente quer que algo seja feito, faça você mesmo. Querem exemplos?

Sugestão ótima, bem aceita logo de início e programadores já experientes aceitam implementa-las

Cito como exemplo as sugestões que o @_danielcorrea deu de mudanças na interface em como os menus do Joomla deveriam passar a ser organizados. Tais ideias foram implantadas no Joomla 1.6. Em vez de reclamar via twitter, Orkut, Facebook, ou em fóruns de suporte (que visam auxílio/ajuda aus utilizadores do J! e não para sugestões do core), ele foi a uma lista de email especifica e focada a discutir o que deveria ir ou não no CMS. Descreveu bem a ideia., e chegou a desenhá-las de forma visual mais.

A quantidade de horas que ele dedicou imaginando a ideia, pensando em toda a questão de interface, e tantos outros pontos dos quais eu não faço ideia, além de até "desenhando" para deixar mais facil a quem não entendia muito do assunto, fora o tempo que as demais pessoas ficaram trocando emails não necessariamente foi pequena.

Sugestão ótima, bem aceita, porém que exigiam mais horas de trabalho em código do que demonstração visual e quem sugeriu teve que por a mão na massa

O @juliopontes, desde pelo menos o Joomla 1.5 tem algumas boas ideias, e várias delas acabaram sendo aceitas porque ele não só deu as ideias como escreveu o código pra elas. Receio que não sejam algo tão visual, mas pelo que me lembro tem desde refractoring de código para o padrão MVC para o Joomla 1.6 até adição de subpackages ou métodos novos no jplatform atual.

Por outro lado, as ideias tipo a do Julio, não necessariamente exigiram uma discussão em lista de email, mas por outro lado o tempo foi igual ou maior fazendo o código.

E o resto dos mortais?

O fato é que, não importa qual seja a ideia que você for ter, eu pessoalmente acredito que ou ela se encaixa nos dois grupos acima, ou ela vai falhar miseravelmente. E um outro problema é que, mesmo aqueles que estão tendendo a se encaixar no segundo grupo, vão enfrentar um outro ponto: a qualidade do código sugerido tem que ser boa

Então, como resolver o problema de tirar a ideia do papel até o ponto de sua implementação?

Não que o que eu sugiro aqui seja uma verdade absoluta, mas é minha impressão de uma solução para ajudar quem está disposto a sugerir mudanças. é Procurar ler um pouco e entender como funciona a lógica de propor essas mudanças, e estar disposto a cuidar bem de seu filho em todo o processo para que ele não se perca são os principais fatores a se observar e fazer neste caso . Entender como as coisas funcionam, é o primeiro passo para acertar tão próximo quanto possível da primeira tentativa.

A questão das listas propostas que não exigem programar são mais simples de entender, e seguir os passos do @_danielcorrea são uma ótima ideia. Por outro lado, é preciso um pouco mais de atenção aos casos em que vai ser será necessário escrever código. E Listo pontos específicos:

  • É preciso que, ou você saiba programar e entende como enviar código pronto, ou conseguir alguém que lhe ajude nisso, mesmo que essa, ou essas pessoas sejam de um grupo mais próximo, como eu mesmo, ou outras pessoas que quiserem me ajudar.
  • Quem for programar, tem que ter um conhecimento consolidado no tipo de código que vai fazer, e tudo mais que ele influencie no CMS ou na plataforma, ou estar com pessoas próximas que ajudem a entender o que não souber.
  • O código sugerido, tem que estar documentado, e a sintaxe deve também estar dentro dos padrões.
  • Se a sugestão é no Jplatform, há uma tendência a ter que editar ou acrescentar também as classes de testes para o novo código sugerido.
  • Se a sugestão é no CMS Joomla, há uma tendência a precisar que pessoas diferentes, que façam parte do Joomla Bug Squad também chequem se o código funciona sem problemas.

Perceba que a dificuldade para entender como enviar um código que vai ser aprovado depende de experiência prévia do programador. Isso quer dizer que, depois que a pessoa aprende como a submissão de ideias em forma de código funciona, o tempo que ela dedicar a tais ideais vai gerar mais commits em um repositório, pelo fato de ela já ser disciplinada, e seu código precisar ser pouco revisado para ser aprovado.

Uma das iniciativas tímidas que estou vendo com interessados é o que sugeri nesse meu outro artigo, o Grupo de estudos sobre o JPlatform. E, claro, teve também o Pizza Bugs and Fun 2011. Como na prática são poucos que realmente se dedicariam a fazer algo em vez, vale a pena manter essas pessoas mais próximas, e por troca de conhecimento fazer valer a pena o tempo dedicado ao Joomla diretamente nas realizações pessoais de cada um.

Pedido pessoal que eu faço a todos

Tomem como referência em especial a Elin Waring , o Mark Dexter e, de forma mais tímida em discussões em listas de emails, mas não em produção de código, o Andrew Eddie. Não raro alguém aparece com uma ideia nova, e, a não ser quando ela tende a ser algo que na prática já existe, ou então quando é algo muito fora do contexto para ser melhor encaixada como extensão, a única recomendação que fazem é que alguém faça esse código. Creio que a melhor forma para quem quer ficar por dentro é, em vez de acreditar meio que cegamente no que eu disse aqui, procurar ver direto nas fontes e no dia a dia se as minhas impressões estão mesmo certas. Tenho certeza que se fizerem isso, vão ver que tem sim como ajudar o CMS e/ou plataforma que você ajuda.

E procurem entender também que a relação entre desenvolvedores e usuários Joomla é enorme. E some a isso que tarefas que são importantes para o projeto, mas que podem tender a ter até menos interessados reais, acabam ficando meio de lado. E mesmo aos que não se consideram no agora com habilidade para programar, tanto os grupos de traduções como o Joomla Bug Squad lhe dariam  o aporte necessário para alcançar um novo patamar que não somente o de uso do CMS enquanto ‘espectador’. 

comments powered by Disqus

fititnt.org is not affiliated with or endorsed by the Joomla Project or Open Source Matters. The Joomla logo is used under a limited license granted by Open Source Matters the trademark holder in the United States and other countries
HTML5 Valid