Job4Dev Open Source

February 27, 2009

Esse é auto-explicativo. Vamos colocar em breve o código do Job4Dev disponível sob uma licença open-source. A razão é simples: nós gostamos do projeto, mas não temos manpower suficiente para fazer ele crescer na velocidade que gostaríamos.

Seria inocência achar que basta tornar o projeto open-source e automaticamente hordas de desenvolvedores promoverão a evolução do sistema. Eu mesmo, que sempre tive acesso ao servidor e ao repositório de código, só passei a trabalhar quando fui chamado para uma entrevista de emprego* em que os projetos são feitos em Python/Django, e decidi usar o Job4Dev como instrumento de aprendizado.

Mas há alguns benefícios em abrir o código:

  • O que é algo enfadonho para mim pode ser o talento de outro. Eu acrescentei um monte de features interessantes ao código original e fiz uma re-estruturação significativa do código, mas não atualizei a versão de produção por detalhes que eu não quero ter que lidar. Exemplo: uma das coisas que eu quero adicionar ao Job4Dev é a possibilidade de procurar vagas/empresas por localização, permitindo buscas como “ordenar vagas por distância da minha casa” ou “tempo de percurso feito de carro”. Por mais que o back-end esteja (quase) implementado, a quantidade de detalhes no front-end é grande. E eu não tenho tempo (nem talento, nem mesmo saco) para lidar com eles. Essa seria uma excelente oportunidade para algum webdesigner aprendendo a fazer mashups e integração com o Google Maps de forma não-trivial.

  • Nos força a fazer aquilo que é necessário para amadurecer o produto. O Job4Dev é fruto de pessoas que não tinham experiência anterior com Django. Isso não significa que você vá encontrar pérolas no código, mas é um sinal de que nossa preocupação não era a de fazer uma aplicação usando melhores práticas. Ponto para ilustração: precisamos começar a escrever testes.

  • Pode ser um meio de descobrir gente disposta e talentosa com a qual nunca trabalhamos. Esse é o ponto mais estratégico de toda a jogada. Agora que estou vivendo em Boston e “amarrado” a um emprego full-time, participar de uma startup como founder/desenvolvedor é virtualmente impossível. Mas é fácil, entretanto, arrumar e fazer conexões, uma ponte lógica entre pessoas da costa leste americana e programadores talentosos (e com melhor custo-benefício) do Brasil.  Também imagino que eu possa vir a investir em um grupo de recém-formados que sejam talentosos e dispostos a quebrar a banca. Se aparecer uma pessoa talentosa e competente para desenvolver o Job4Dev, já considero o projeto um sucesso.

A situação atual e o futuro do Job4Dev

O Job4Dev, como é hoje, funciona. Da mesma forma que o Craigslist, é um serviço que depende muito mais de ter uma base de usuários do que da tecnologia envolvida. Precisaríamos de poucas mudanças no código se a quantidade de vagas/usuários aumentasse 100 vezes do dia para a noite.

É nítido, entretanto, que o nosso tráfego não vai apresentar esse crescimento enquanto o site for apenas um serviço de classificados. E nada das coisas que o editor-chefe andou adicionando (integração com o Google Connect, por exemplo) provê alguma feature que adiciona valor suficiente ao serviço que aumente seu poder de “venda”. Ficamos num dilema esquisito. Adicionar integração ao Google Connect é masturbação de computeiro, “feels good for a while but doesn’t get anything done”. Por outro lado, se deixamos o sistema como está, apenas esperando que os usuários “peguem” a idéia, ele provavelmente morrerá por inanição.

Há várias possibilidades que podem ser exploradas. Podemos expandir horizontalmente – usar a mesma base de código e criar sites de empregos em outros setores específicos. Podemos fazer uma ferramenta mais verticalizada – fazer do job4dev uma ferramenta de recrutamento interno de empresas, com cadastro de currículos, voltada para o RH de empresas pequenas e médias.

Outra possibilidade é mais audaciosa e mais interessante: transformar o Job4Dev em um sistema que use alguma forma de inteligência para indicar às empresas quais são os candidatos mais adequados para um determinado tipo de projeto, bem como indicar aos profissionais quais são as vagas/empresas que serão mais compatíveis com os interesses da pessoa.

(Aliás, fica o desafio: se há alguém quiser provar que eu estou errado ao afirmar que não há verdadeira inovação no modelo de desenvolvimento open-source, então que traga alguma nova idéia para a mesa e trabalhe no projeto.)

Se você está curioso, o código atual usa Python, Django e PostgreSQL (mas pode ser mySQL ou qualquer servidor suportado pelo ORM do Django) no back-end. No front-end estou usando jQuery para desenvolvimento Javascript e 960gs para layout e grid CSS.

Espero que até o início da semana que vem nós tenhamos definido qual esquema vamos adotar para deixar o código disponível.


(*) Não, eu não menti na entrevista. Falei que tinha experiência com Python, com aplicações web e que trabalhei com sistemas feitos em Django apenas de forma superficial. Sim, é esse o lugar onde estou trabalhando agora.

posted in Desenvolvimento, Meta by Raphael Lullis

Follow comments via the RSS Feed | Leave a comment | Trackback URL

  • http://1up4dev.org Roger Leite

    Muito legal este novo “passo” que decidiram dar!

    Entre as ideias sobre o futuro do Job4Dev, “fazer do job4dev uma ferramenta de recrutamento interno de empresas, com cadastro de currículos, voltada para o RH de empresas pequenas e médias.” … achei brilhante.

    Atualmente, pra mim está cada vez mais claro que o segredo do sucesso está em dispor produtos/serviços para empresas de pequeno e médio porte.

    Video legal: http://www.37signals.com/svn/posts/981-the-secret-to-making-money-online

    Sucesso!

  • http://raphael.lullis.net Raphael Lullis

    Roger, a idéia de sistema de suporte a RH de empresas é algo que eu tenho martelado na cabeça do Miguel desde a época que o job4dev foi lançado. Até agora, não consegui convencer o sujeito de que fazer integração com o twitter é legal, mas não dá cliente nem paga conta. :)

    Perguntas diretas (quem sabe outros podem responder)

    • Tem interesse em dar uma mão? Testes, design de features, client-side… tem trocentas-e-doze maneiras de colaborar.
    • Se fosse para escolher entre github e bitbucket, qual escolheria? Eu gostaria de manter o repositório em um esquema distribuído. Os que preferem/estão acostumados com SVN, esses eu posso fazer um mirror do código no Google Code.

    Abraços.

  • http://1up4dev.org Roger Leite

    Raphael, segue as sugestões:

    Tenho interesse em colaborar sim, sou programador, não conheço python, mas estou disposto a aprender.

    Dentre as duas opções, eu sugiro o github. Esta é uma escolha por exclusão, pois nunca trabalhei/usei mercurial e sinceramente acho que o git deve ser mais popular.

    Nós (1up4dev) estamos montando uma infra pra estes projetos. Se interessar, me manda um e-mail que a gente conversa com mais detalhes.

    Meu profile no github: http://github.com/rogerleite

    Sucesso!

  • http://bpfurtado.livejournal.com/ Bruno
    Se fosse para escolher entre github e bitbucket, qual escolheria? Eu gostaria de manter o repositório em um esquema distribuído. Os que preferem/estão acostumados com SVN, esses eu posso fazer um mirror do código no Google Code.

    My 1 cent: Você pode ter um cliente SVN falando com um repositório git sem que ele sequer saiba, não seria necessário um mirror do repositório.

  • http://raphael.lullis.net Raphael Lullis

    Bruno, valeu pela dica. Eu pensei que só tivesse o git-svn (ou hgsvn, no caso do mercurial) que fizesse interface com repositório SVN, mas pelo jeito há cliente SVN.

    Estou acabando de colocar o código no github.

blog comments powered by Disqus

Switch to our mobile site

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org