Carlos Brando

Nome do Jogo

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

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.

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.

Comments