Uma coisa que eu vi nos vários eventos em várias cidades do Brasil, foi que mais e mais pequenas empresas ou mesmo departamentos governamentais estão avançando em Ruby on Rails. Até nos lugares mais inusitados. Muitos me perguntam para recomendar empresas que desenvolvem em Rails. Aqui fica a questão, você trabalha ou tem uma empresa que desenvolve Rails, dá cursos de Rails, ou tem equipes trabalhando full-time em Rails?
Deixe seu comentários neste post, com nome da empresa, contato, descrição do que fazem, website, etc para que todos possam saber. De qualquer parte do Brasil.
O Mundo Real deve ser um lugar verdadeiramente deprimente de se viver. Aparentemente um lugar onde novas idéias, maneiras não-familiares, e conceitos estrangeiros sempre perdem. Me dizem que a única coisa que funciona no Mundo Real é que seus habitantes já sabem e já fazem. Não importa quão ruim ou ineficiente isso possa ser.
Define-se pessoas que vivem lá como vivendo uma Vida Real. Uma existência preenchida com pessimismo, desespero e todo gradiente de preto imaginável. E de forma estranha, essas pessoas vivendo Vidas Reais não parecem interessadas em sair. Eles não estão procurando por uma mudança no cenário do duro Mundo Real.
Em vez disso, eles na realidade estão recrutando! Em argumentos em todos os lugares, eles estão tentando convencer aqueles com comportamento mais ensolarado que eles devem se converter para o Mundo Real ou sofrer. Que resistir ao Mundo Real é fútil. Essa chamada persiste mesmo em face a experiências contrárias. Contos de pessoas que realmente fizeram as coisas de forma diferente e ainda vivem para ver o nascer do sol de manhã.
Por favor, não seja idiota, não existe nada nem remotamente atraente sobre o Mundo Real. É uma miragem miserável que serve somente como um lugar de comunhão para aqueles que perderam toda a esperança.
Existe um pensamento que me cruza a cabeça de vez em quando. Como blogueiro eu tenho relacionamentos com muitas pessoas da blogosfera em geral, tanto do Brasil quanto fora, muitas pessoas que sempre encontro em conferências, tudo muito gratificante pois eu sempre aprendo mais. Além disso já trabalhei em muitos lugares então sempre existem contatos antigos e antigas experiências.
Por outro lado tenho um dilema, especialmente quando envolve assuntos sobre críticas porque muitas pessoas lêem e assumem a carapuça de formas interessantes que, obviamente, eu não posso controlar. Contexto é tudo.
Exemplo clássico, os artigos As 5 Disfunções em Equipe de Código, Conselho para Gerentes de Desenvolvimento de Software, ou Net Negative Producing Programmer. Razões para escrever eu nunca tenho uma única específica, a inspiração aparece, eu escrevo. Nos últimos meses tenho estudado muito material a respeito, diversos livros, dezenas de artigos, porque eu sempre gosto de entender o que faço mais a fundo e porque eu entendo que nunca vou saber tudo. (O que significa que tem mais artigos meus nessa linha ainda para vir :-) Em particular dois desses artigos foram inspirados numa conversa que tive durante conferências recentes com um bom amigo meu.
Esta é a tradução em português do artigo original de Martin Fowler no seu Bliki. Você pode ler a versão original aqui
A ThoughtWorks começou a usar Ruby para projetos em produção em 2006, de lá até o fim de 2008 tínhamos 41 projetos em ruby. Preparando para uma palestra na QCon eu pesquisei esses projetos para examinar que lições poderíamos tirar dessa experiência. Eu descrevo nossos pensamentos até agora sobre questões comuns da produtividade, velocidade e mantenabilidade de Ruby. Até agora nossas conclusões são que Ruby é uma plataforma viável e que deve ser considerada seriamente para muitas formas de aplicações – em particular aplicações Web usando Ruby on Rails. Eu também avanço por sobre algumas lições técnicas, incluindo alguns pensamentos sobre testar Active Record.
Recentemente a Apple atualizou toda sua linha de notebooks Macbook Pro para não terem mais baterias removíveis. As baterias agora são internas e duram de 7 a 8 horas, o dobro do resto da indústria e, teoricamente, devem durar até 5 vezes mais.
Olhando em termos de valor ao cliente eu imagino que a Apple pode ter pensado: “por que as pessoas precisam de baterias removíveis?” As respostas variam, mas eu particularmente imagino que existem apenas duas razões: como as baterias normais duram cerca de 3 ou 4 horas, para usar um dia inteiro de trabalho você precisa de pelo menos 2 baterias, especialmente se você está viajando ou em conferências que duram o dia inteiro. O segundo motivo é porque a baixa qualidade das baterias atuais faz com que elas se “viciem” muito rápido e uma bateria que durava 3 horas começa a durar 2 ou menos horas.
Obs: alguns dias trás eu escrevi um desabafo sobre o comportamento ruim de um gerente de projetos. Nesta tradução, vamos ver soluções e os cenários corretos. Vamos à tradução:
Em 2004, a revista ‘Software Development Magazine’ entrevistou Gerald Weinberg. Aqui vão algumas de suas respostas (a entrevista completa está no site dele):
Qual foi o melhor conselho relacionado a gerenciamento que você já deu?
Se você culpa seus funcionários, você é um péssimo gerente. Você os contratou, os aceitou, os supervisionou, e dirigiu seu treinamento. Você é responsável. Se você não gosta do que está acontecendo, veja seu próprio comportamento. Mas, se há crédito a ser dado, é deles.
E sobre gerentes que foram contratados em um grupo onde alguns ou todos os funcionários já foram contratados por outra pessoa?
Você não assume um trabalho de gerência de forma passiva. Antes de aceitar a posição, você entrevista todos em seu grupo, e você consegue o apoio deles, ou se livra deles – ou não aceita a posição. Eu não sei porque gerentes não entendem isso. Eles assumem novas responsabilidades como colegiais em seu primeiro encontro às cegas.
E se um funcionário começa a demonstrar mal comportamento depois que ele ou ela o contratou – comportamento que não era aparente na fase de entrevista?
Bem, isso acontece, e é para isso que gerentes são pagos. Pode ser um retrocesso, mas é seu trabalho cuidar disso e terminar o serviço. Infelizmente, poucos gerentes técnicos tem qualquer preparação para isso, é uma coisa que venho tentando remediar por anos – então, por um lado, eu sou culpado, porque fui bem sucedido apenas em alguns casos. Ei, se tudo desse certo o tempo todo, você não precisaria de gerentes.
Desta vez faz apenas pouco mais de um mês desde minha última compilação de notícias. Este mês foi interessante, principalmente com a RailsConf Las Vegas que aconteceu no começo do mês. Quem quiser acompanhar tudo o que eu venho lendo, assine o feed do meu Google Reader, meu Delicious e, claro, para as últimas novidades, sigam-me no Twitter. Vamos às notícias:
Eu costumo repetir a todas as equipes que eu gerencio, que 99% dos problemas de qualquer projeto são especialmente devidos à “comunicação”. Estresses que duram dias e poderiam ser resolvidos numa conversa de corredor de 30 seg. Eu uso “comunicação” mas é um pouco mais do que isso, é falta de respeito, falta de confiança, falta de empatia (não “simpatia”, “Empatia”). Vamos à tradução do artigo de Mark Needham
Eu recentemente esbarrei em um post interessante do meu colega Pat Kua onde ele fala sobre alguns padrões que ele notou em código poderiam ser ligados à lei de Conway, que sugere que as estruturas de sistemas desenvolvidos em organizações vão refletir a estrutura de comunicação dessa organização. (AkitaOnRails: leiam também o The Mythical Man-Month, onde o assunto de Conway também é explorado e entendam Cross Functional Teams para entender uma das soluções.)
Também recentemente li um livro chamado As Cinco Disfunções de Equipes que descreve alguns comportamentos em equipes que não funcionam de maneira efetiva.
Jogando como o advogado do diabo eu fiquei intrigado se existia algum tipo de ligação entre essas disfunções e se elas se manifestam em nosso código como anti-padrões.
As 5 disfunções são:
Inexistência de Confiança – membros da equipe não querem ser vulneráveis dentro do grupo
Medo de Conflito – equipe não consegue engajar debates honestos de idéias
Falta de Comprometimento – membros da equipe raramente se comprometem em decisões
Evitar Responsabilidade – membros da equipe não chamam a atenção de seus pares a respeito de ações/comportamentos que prejudicam a equipe
Falta de Atenção a Resultados – membros da equipe que colocam suas necessidades individuais antes daquelas da equipe
Tem planos demais sendo feitos—vou pensar na sua opinião quando tiver tempo
Vamos falar disso outra hora.
Vamos esperar mais um pouco e ver como as coisas ficam.
Por que você quer mudar? As coisas não estão indo bem agora?
Existem regras, então não é bom fazer as coisas desse jeito.
Eu não acho que isso seja tecnicamente possível.
Essa idéia está muito fora, o gerente nunca vai concordar.
Essas coisas não se fazem nesta empresa!
Isso pode funcionar em outros lugares, mas não aqui!
O mundo real é mais complicado que isso.
Você não entende realmente a situação, não é?
Sua sugestão é boa, mas a empresa não pode bancá-la.
Isso vai criar problemas mais para frente.
Mesmo que eu te dê conselhos, ainda assim não vai dar.
Que sugestão é essa? Não dá para torná-la um pouco melhor?
AkitaOnRails: relembrei isso depois de ter conversado com o Juan Bernabó recentemente: “insanidade é querer resultados diferentes fazendo as mesmas coisas.”
Ward Cunningham: Um amador diz “eu só faço as coisas do meu jeito.” Um profissional deve ser capaz de dizer “vamos tentar do seu jeito por um tempo e ver o que acontece.”
Eu tenho tentado, na medida do possível- windows-part-2, ajudar a crescente comunidade rubista que, por diversas razões, vivem em um mundo Windows.
Infelizmente, existem muito poucos desenvolvedores – incluindo dentro da própria comunidade Windows – ajudando nisso. Atualmente existe um Ruby estável e usável em produção no Windows graças ao esforço, quase individual, do Luis Lavena, o argentino que mantém o excelente projeto One-Click Ruby Installer
Porém ele precisa de ajuda. Por isso ele começou uma campanha para angariar fundos ou qualquer tipo de colaboração para melhorar a visibilidade do projeto, criando um novo website, um novo wiki e ele começou primeiro no blog dele, depois na lista ruby-talk# e, finalmente, numa página para doações que você pode acessar por aqui
Vamos ajudar, twite sobre a campanha, espalhem por blogs, doem. Nenhuma quantia é pequena demais.
A idéia é criar uma maior interação nos fóruns com os autores dos livros em promoção. Quem o autor achar que está fazendo mais interações relevantes irá ganhar o livro.
A promoção do livro do Urubatan corre a partir do dia 19 agora até o dia 21. Não deixem de participar. Para isso cadastrem-se neste link com a chave (enrollment key) BPCE101.
RailsConf is not your “normal” tech conference. You will have people ranting, doing real rocket-science and lot’s of people having real and genuine fun. We are very lucky to have people such as Geoffrey Grosenbach, Jason Seifer, Peter Cooper, Ninh Bui and so much more to remind us that there is an upper layer to technology: geeks love to have fun.
And don’t miss the awesome Rubystein, Phusion’s reimplementation of Wolsfenstein 3D in Ruby. They wanted to prove that Ruby is fast enough even to write games on it, and they succeeded in spades!
A RailsConf não é sua conferência “normal” de tecnologia. Você verá pessoas reclamando, fazendo coisas realmente avançadas e muitas pessoas genuinamente se divertindo. Somos muito afortunados em ter pessoas como Geoffrey Grosenbach, Jason Seifer, Peter Cooper, Ninh Bui e tantos outros para nos lembrar que existe uma camada ainda acima da tecnologia: geeks adoram se divertir.
Bryan Liles’ Test All The Fucking Time video really struck a cord and people have been repeating his motto ever since. He was so kind to send a message to the Brazilian programmers as well, check it out:
O vídeo do Bryan Liles, Test All The Fucking Time realmente tocou num ponto importante e as pessoas vem repetindo seu lema desde então. Ele foi muito legal em enviar uma mensagem aos programadores Brasileiros, dêem uma olhada ;-)
I’ve had a great time interviewing several interesting Rubysts and Railers on their new projects. I think you will like to hear what they have to say.
My first guest was Joshua Timberman. He is a fervorous evangelist for the Chef project. Chef could be seen as a more modern Puppet, which by itself, already is a modern systems configuration manager. Chef is composed of several pieces, cookbooks and details that Joshua explains in his interview.
One project that I am particularly very interested is Spree. Sean Schofield started this Rails based e-commerce system to support developers that had to reinvent the wheel all the time, and e-commerce systems are notoriously not easy to do. Spree is a fairly complete project, with many nice features, including integration with ActiveMerchant, shipping support, tax categories and so on. I helped a bit doing the Brazilian Portuguese internationalization of the project as well. Highly recommended.
By now I think we all know New Relic, Fiveruns and Rails monitoring systems. But there are more competition coming up, from the guys of Highgroove Studios we have Scout a non-nonsense approach to Rails monitoring and data analysis. They are willing to go an step further: instead of just presenting raw data as reports, they are analyzing this data and giving you relevant recommendations so you can further optimize your application. And more than that: they are highly competitive in price. And the client agent that gathers data and send to their servers is open source and extensible through plugins, so you can add even more to what they already offer. Definitely worth checking out:
At RailsConf 2008, last year, I interviewed James Lindenbaum about Heroku. They were still in beta at that time. Now they finally released a commercial version with lots of new features. I was particularly surprised to find Ryan Tomayko at their booth, working for Heroku. I think Heroku really nailed easy deployment for Ruby applications over Amazon EC2. If you don’t want to worry about infrastructure, Heroku may be the answer:
Again, last year, everybody was blown away by the announcement of Gemstone – traditional Smalltalk software-house – showing a very preview version of Ruby actually running over a very mature Smalltalk VM. This is the Maglev project. Since then the development has been quite secretive. But they are finally disclosing more and more information on how the project is going. This year, they were able to show a small Sinatra application already running – albeit, with some tweaks. I think they are evolving very fast. Ruby is notoriously not an easy language to implement and Maglev will be incredible when released. In this interview we have Monty Williams, Peter McLain and Michael Latta discussing about the current development and future roadmap.
Finally, I think everybody knows Ilya Grigorik by now, from igvita.com. He received last year’s Ruby Hero Awards, and it was well deserved. He is one of the few developers that can tackle very advanced subjects in a way that anyone can understand. He started a new company recently and they have a very very interesting product called PostRank. The overall idea is fairly simple: they went a step further over Google’s own PageRank system. Instead of just considering link tracebacks, they now weigh in social network behavior. For example, a single Digg page traces back to a website with just one link. But this same page at Digg can have something like hundreds of comments, or “engagements” as Ilya calls it. This gives a totally different weigh to this traceback instead of just a simple link. So companies are starting to pay attention to social networks such as Digg, Reddit, Twitter and others and now Ilya comes up with the tool to deliver them the necessary metrics. I highly recommend you to test-drive this site, I think you will be impressed.
And this wraps up my series of interviews at RailsConf 2009. I wish I had more time to interview more people. There were very insightful and smart developers there, and I would have to git clone myself many times to be able to talk to all of them. I hope you enjoy this set of interviews.
Maybe not everybody knows it but the well known Ruby Inside website now has a new branch in Brazil. It was recently released and we have a bunch of highly motivated Railers that are doing a great work posting everything that is news in the Ruby and Rails world both in Brazil and in other countries. Check it out Peter Cooper’s take on this:
Talvez nem todos saibam, but o bem conhecido site Ruby Inside agora tem uma nova filial no Brasil. Eles iniciaram recentemente e tem uma equipe de Railers muito motivados que estão fazendo um grande trabalho publicando notícias do mundo Ruby e Rails tanto do Brasil quanto de outros países. Dêem uma olhada na opinião do Peter Cooper sobre isso.