Um modelo de maturidade para projetos Rails é prático?

17 de fevereiro de 2009  |  Opinião  | 

Acredito que este seja o assunto da semana nas rodas de desenvolvedores Rails, e como tal eu não poderia deixar de dar minha opinião sobre o assunto.

Obie Fernandez – um personagem conhecido na comunidade Rails mundial graças ao seu famoso livro “The Rails Way”, sua empresa Hashrocket e também pela sua personalidade forte – vem criando uma certa polemica sobre a criação de um modelo para definir a maturidade de uma empresa na criação de projetos Rails. A ideia original é criar um sistema parecido com o que seria um CMM, mas direcionado as melhores práticas de desenvolvimento em projeto Ruby on Rails.

O RMM descreveria os estágios de maturidade através dos quais as empresas de software teriam de passar afim de evoluir seus processos. Na concepção original estes estágios seriam divididos em níveis que iriam de 0 a 3:

RMM0

  • Nenhum processo formal de desenvolvimento
  • Sem cobertura de testes
  • Nenhum padrão de práticas de negócio
  • Análise de falhas estática

RMM1 e RMM2 deveriam ser alguma coisa intermediária, sendo que o RMM1 seria considerado negativo, enquanto o RMM2 seria considerado positivo.

RMM3:

  • Práticas ágeis de desenvolvimento de software
  • 100% de cobertura com testes
  • 100% de programação em pares
  • Padrão formal de práticas de negócio
  • Sistema de aprendizado contínuo e melhoria do processo
  • Testemunhos positivos de clientes
  • Aplicativos Rails implantados com sucesso
  • Outros itens a serem definidos…

Obviamente este itens são apenas ideias, muita coisa ainda estaria faltando se isto estivesse finalizado.

O grande problema levantado por Obie é que muitas empresas que desejam contratar profissionais ou terceirizar o desenvolvimento de softwares em Rails, tem dificuldade em identificar se uma determinada consultoria ou profissional são realmente bons. A criação de um selo como o RMM simplificaria este processo. Teoricamente bastaria o contratante verificar em qual nível do RMM a prospectiva empresa se encontra, e isto definiria a qualidade dos serviços prestados e traria segurança ao contratante.

É exatamente neste ponto que discordo totalmente de Obie. Possuir um “selo” de qualidade não indica realmente que a empresa é de qualidade. Existe muito mais envolvido nisso do que simplesmente adotar boas práticas.

A empresa pode adotar como regra todas as sugestões dadas no RMM e ainda assim contratar profissionais ruins e/ou desmotivados. Pode adotar o sistema de programação em pares de uma forma que não seja produtiva. Enfim, todos os itens são relativos. Acredito que a qualidade de um empresa depende muito mais dos profissionais contratados e do quão motivados eles estão, não desconsiderando nenhuma destas boas práticas.

Sim, RMM tem tudo a ver com certificações. Talvez não pareça, mas no fundo o conceito é o mesmo. Uma certificação é como o exame de motorista. Minha esposa conseguiu tirar sua carta de motorista na primeira tentativa à alguns meses atrás, mas até hoje ela não consegue dirigir em uma avenida mais movimentada que temos perto de casa. Isto se dá porque as escolas não ensinam as pessoas a dirigir, mas sim a passar no exame de motorista.

O mesmo se dá com certificações, as pessoas estudam para passar na avaliação, mas isto não significa que estão preparadas para os desafios da vida real. Contratar um profissional somente pela certificação, seria como contratar uma pessoa que acabou de conseguir sua habilitação para ser o motorista de sua família.

345246158_d34e3a4b41

Escolher um profissional somente porque ele tem uma certificação é como escolher um motorista somente porque ele tem habilitação para dirigir

Contratar uma empresa somente porque ela segue uma série de regras definidas por uma outra pessoa ou organização, e por isto conseguiu um “selo de qualidade” representa o mesmo tipo de risco.

Ao contratar uma empresa para desenvolver um software, seja em Rails ou em qualquer outra tecnologia, entre em contato com outros clientes que já foram atendidos pela empresa. Procure saber quais projetos criados pela empresa foram concluídos com sucesso. Tente descobrir mais sobre os profissionais que compõem o seu time de desenvolvimento. Esta é a melhor garantia de que você estará contratando a empresa certa para o sucesso do seu projeto.


15 Comentários


  1. Concordo com vc que certificações não quer dizer muita coisa a respeito de qualidade de software, mas a utilização de métrica para a empresa ter um parâmetro que quão ela é “madura” pode até ser interessante.

  2. Concordo, wendel!

    Se a ideia de Obie amadurecer ao ponto de virar apenas um material de referencia, será uma grande contribuição às empresas de desenvolvimento de software. Mas não pode passar disso.

    Se virar um “selo de qualidade”, na qual as empresas contratantes se baseiem, será um tiro no pé. Como uma certificação para empresas. Algo supervaloriza, que no fundo não valerá nada.

  3. nessas horas que ecoa na minha cabeça… “rails está virando o novo ASP. quem será o novo Rails?”

    eu só usava essa frase quando via más práticas em projetos Rails. mas parece que a coisa está tomando uma amplitude maior. rs

  4. Rafael,

    Rails não está virando o novo ASP.

  5. claro que o Rails está virando o novo ASP… assim como o Django, Pylons ou qualquer outro framework. acho que é um destino meio que natural de qualquer framework, pq as massas acabam chegando e não tem como evitar q código ruim se espalhe… é só olhar a lista rails-br :) nao quer dizer claro q o rails seja igual o asp.

  6. Concordo em partes! Certificação em alguns casos realmente não atesta nada. Ja vi desenvolvedores certificados que não sabem nada de OOP por exemplo e mesmo assim se exibem seus certificados como trofeus.
    Mas dificilmente uma empresa que contrata serviços de software vai ter tempo de ver referencias, pesquisar portfólio, etc.

    Neste caso a certificação ajuda bastante a separar, creio que seja essa a idéia que o Obie tentou passar!

    Acredito que o processo de certificação deveria mudar, e não ser somente uma prova escrita, e sim deveria ser quase uma “auditória” ao candidato a certificação.

    Apenas uma simples prova, seja eletrônica ou escrita não pode atestar determinadas competências que podem somente ser demonstradas com práticas e métodos.

  7. Raphael,

    Certificação ajuda a separar o que?

    Certificados NUNCA terão um valor real na área de TI. Nossa área é dinâmica demais, teríamos de tirar um certificado por dia se quiséssemos estar atualizados.

    E é exatamente por isto que eu preciso discordar de você. Um certificado não deveria ser um filtro para ajudar a empresa a escolher um bom profissional ou consultoria, exatamente pelo fato de que um certificado não vale nada.

    O próprio Obie entende isso. Veja o comentário dele no Ruby Inside Brasil: http://www.rubyinside.com.br/o-controverso-rails-maturity-model-162#comment-11

  8. Entendo Carlos,

    Como eu disse tbm não concordo com certificações, mas permita-me mudar um pouco de área, mesmo sabendo e concordando com vc que nossa é extremamente dinamica para isso.

    No caso de uma ISO9000 por exemplo, onde é realizado uma auditoria para ver se a empresa realmente segue os procedimentos necessários à qualidade.

    O que quero dizer é que a certificação(se necessária) deveria ser implementada de forma diferente, e que realmente avaliasse as competencias do candidato.

  9. Raphael,

    Neste caso eu concordo totalmente com você.

    O que quero dizer é que em nossa área certificados são supervalorizados, mas não agregam valor algum. Mas isto não significa que TODOS os certificados são ruins.

    Agora eu entendi o que você quis dizer. E concordo!

  10. Acho que maturidade neste caso será visível apenas em contextos onde o manifesto ágil seja compreendido tanto pelo cliente quanto pela empresa desenvolvedora.
    Eu acredito que são poucas as empresas desenvolvedoras de software que compreendam ou mesmo conhecam sobre o manifesto ágil, no geral as empresas(empresários) querem qanhar grana a qualquer preço e não ligam para práticas de programação, estão afim de saber somente das métricas para achar culpados pela não entrega no prazo, ou métricas para medir os bugs para descontar do funcionário.
    De outro lado o cliente de empresas de software que não ligam em como seu projeto de software esta sendo desenvolvido, só querem saber disso após o termino do prazo para ver se esta pronto ou não e cobrar a multa do contrato.

    É como o Vinicius disse em uma de suas palestras, sem convencer quem manda(Empresários ou clientes) “podem ir embora”.

    Para nós desenvolvedores fica o sonho por ambientes realmente ágeis, onde pessoas sejam valorizadas pelo conhecimento e solução de problemas, não ambientes onde processos e ferramentas são mais importantes. OO seja facilmente substituida na primeira dificuldade, onde patterns nem sejam conhecidos que dirá serem aplicados, onde refatoração e melhoria continua seja uma falácia, onde a discussão por qualidade de código não seja vista como perca de tempo.

    Ambientes onde o design seja dirido por responsábilidade e se use CRC Cards para aprimorar o conhecimento de responsabilidade, onde os testes vão iniciar o desenvolvimento baseado nos cards e nas estórias.
    e que não seja mais necessário comentários em códigos ou em variaveis “x”.

    Enfim que realmente os desenvolvedores vão ter XP na veia, ajudados por suas empresas tb XP.

    Obrigado a todos, desculpem o desabafo.

  11. Carlos, preciso entrar em contato contigo. Se puder responder esse comentário…

  12. Parafraseando Avy Briant. Eu vim do futuro e sei como tudo isso termina: Rails = New ASP. Daqui a algum tempo me digam o que ocorreu.

    []s. Breno.

  13. Discordo veementemente desses silos que os programadores entram e acham que o investidor tem tempo de ficar fazendo provinhas, ou confiar no poster do tipo Bill, ou verificar se ele é amigo do Akita!

    Dá um tempo! Se qqer uma dessas soluções quiserem crescer, devem aceitar o mundo corporativo dos marcos regulatórios! Caso contrário, vira o velho e conhecido PHP!!!

    Ruby é filhinho do Java, queiram vcs ou não! E isso É MUITO BOM PRO SEUS BOLSOS FUTURAMENTE!

  14. Concordo com vc,apesar de estar lendo está matéria um ano depois, a supervalorização das certificações não agregam “valor nenhum ao mercado”

Trackbacks

  1. Sobre Certificações - Raphamaster
  2. Rails Maturity Model - Próximos passos
  3. 1up4Developers » Blog Archive » Agilidade é a buzzword do momento

Deixe um comentário