Posts de ‘Guilherme Chapiewski’

[Guilherme Chapiewski] The whole company “Agile”?

Monday, January 4th, 2010

Last month while I was discussing with my friend Siraj we started to ask ourselves why the Agile “philosophy” doesn’t get popular in the whole company. What I mean is that nowadays it’s kind of easy to find the software/product development department of companies using Agile methodologies, but what else is missing or needed to the Human Resources, Marketing, Finance, Administration, Sales and every other departments join this movement?

When you start with Agile development, not only the software development process changes but many other things related to how your company works. For instance, it’s very difficult to think about an Agile team that will succeed with “command-and-control” management. The teams are self-managed, which implies a different style of management. Instead of bosses that keep asking for things done, we have servant leaders which provide all possible resources so that their teams can work and make decisions. The base of the pyramid begins to make decisions and not the top anymore, because they have the best work knowledge and therefore are the most suitable to do it. In some extreme cases in modern companies like Semco, the very employees are the ones who hire their managers.

That is, when we talk about agile methods, even though we are referring to the Agile software development methods, there are a lot of other concepts and philosophies that we are implicitly talking about (because they are very closely related).

I have an example to better explain where I want to go with this. I once worked for a company of reasonable size that, like many others of this size, had a traditional Human Resources department. One day I had a problem and needed urgent assistance from the HR staff. When I talked to them, two bad things happened. First, they treated me badly and like if they were doing a favor to me. Second, they said that my request would be met only in a few days because they had many important things to do first. What was happening was that my daughter was very sick, I had a problem with my health insurance and they were not willing to approve my daughter’s appointment with a doctor. A HR team with the “agile culture” would know in first place that since I am their main “user”, I deserve attention, respect and my problems are their problems. The emergencies of their users should be more important than any paperwork they have to do. And second, even though their backlog was abnormally large, a case with such severity should certainty jump the queue.

So when I say that other departments of companies could be “agile”, I am not suggesting that they work with Agile software development – which would make no sense – but that they use the same concepts of leadership, self-organizing teams working in a participatory environment, based on trust and cooperation, making a better effort to understand who are their “users” and what are their needs, create visions for their products and departments (that would help them make better decisions) and so on.

Getting this HR department above to speak up as an example, wouldn’t it be perfectly acceptable for them to do a personas exercise to discover what is the profile and the characteristics of their users? Wouldn’t it be great if they did chartering sessions, discussed their values, made retrospectives to discover how to improve their process and so on? Imagine how transparent and organized would be if the HR team had a big Kanban board in their room showing the activities, progress and their bottlenecks?

I think that this may not happen because much of the material and examples available on these subjects nowadays are formatted for people related to software development. Yes, there are books such as those of Ricardo Semler who are categorized in bookstores as “Business”, but I don’t see much business people really interested in these subjects. Why is that?

It’s time to finish with this “fork” between companies’ agile communities and the other departments. In Agile adoptions we frequently see after some time two totally different companies working within one. We must bring people from other areas and other hierarchical levels to the conferences and our world and show them these ideas. I will love the day that it will be possible to go to an Agile Conference and talk not only to software people but also HR managers, VPs of Marketing and other guys who are not in the development department; or else when we can find in user group meetings not only the “agilists” but also managers, human resources analysts, accountants and so on.

And now, where do we start?

[Guilherme Chapiewski] Um empresa inteira “ágil”?

Wednesday, December 16th, 2009

Conversando no mês passado com meu amigo Siraj ficamos nos perguntamos porque a “filosofia” ágil não emplaca nas empresas como um todo. O que eu quero dizer é que é razoavelmente fácil hoje em dia encontrar o departamento de desenvolvimento de produtos/software de uma empresa usando métodos ágeis, mas o que falta para o RH, Marketing, Financeiro, Administrativo, Comercial e todos os outros departamentos também entrarem nessa?

Quando você começa com desenvolvimento ágil não é só o processo de desenvolvimento de software que muda mas também vários detalhes de como a sua empresa funciona. Por exemplo, é muito difícil imaginar um time ágil que funcione com “comando-e-controle”. Os times são auto-gerenciados, o que implica em um outro estilo de gestão. Ao invés de chefes que cobram, aparecem os líderes-servidores, que dão todos os recursos possíveis para que seus times possam trabalhar e tomar decisões. A base da pirâmide é que passa a decidir e não mais o topo, porque eles são os mais indicados por deterem o melhor conhecimento para fazer isso. Em alguns casos mais extremos em empresas mais modernas como a Semco, são os próprios funcionários que contratam seus gerentes.

Ou seja, quando falamos de métodos ágeis, por mais que estejamos nos referindo aos métodos ágeis de desenvolvimento de software existem uma porção de outros conceitos e filosofias que acabam entrando no mesmo barco por serem tão intimamente relacionados.

Tenho um exemplo para tentar explicar melhor onde eu quero chegar. Uma vez eu trabalhava numa empresa de tamanho razoável que, como várias outras desse porte, tinha um tradicional departamento de RH. Num dia eu tive um problema bem urgente e precisei da ajuda do pessoal do RH. Quando fui conversar com eles, duas coisas desagradáveis aconteceram. Primeiro, eles me trataram mal e como se estivessem fazendo um favor pra mim. Segundo, eles disseram que meu pedido só seria atendido em alguns dias, porque eles tinham muitas coisas importantes para fazer. O que acontece é que minha filha estava muito doente, eu tive um problema com meu plano de saúde e eles não estavam liberando meu atendimento por nada. Um time de RH com a “cultura ágil” saberia em primeiro lugar que, dado que eu sou o principal “usuário” deles, eu mereço atenção, respeito e os meus problemas são os problemas deles. As urgências dos funcionários deveriam ser mais importantes do que qualquer papelada que eles tenham para fazer. E em segundo, mesmo que o backlog deles fosse absurdamente grande, um assunto com tamanha severidade com certeza “furaria” a fila.

Então, quando eu digo que outros departamentos das empresas poderiam ser “ágeis”, não estou sugerindo que eles trabalhem com desenvolvimento ágil de software – o que não faria nenhum sentido – mas sim que eles usem os mesmos conceitos de liderança, times auto-organizados trabalhando num ambiente participativo, baseado na confiança e cooperação, fazendo um movimento e esforço maiores para entenderem quem de fato são seus “usuários” e quais são suas necessidades, criar visões para seus produtos e departamentos (que os ajudariam a tomar melhores decisões) e por aí vai.

Pegando esse departamento de RH que falei acima como exemplo, não seria perfeitamente aceitável que eles fizessem um exercício de personas para descobrirem qual é o perfil dos seus usuários? Não seria ótimo que eles fizessem sessões de chartering, discutissem seus valores, fizessem retrospectivas para descobrirem como melhorar seu processo e assim por diante? Imagine quão transparente e organizado seria chegar na sala deles e ver um quadro de Kanban mostrando sua linha de atividades, o progresso delas e os gargalos da equipe?

Acho que talvez isso não aconteça porque grande parte do material e exemplos disponíveis sobre esses assuntos estão formatados para pessoas relacionadas à desenvolvimento de software. Sim, existem livros como os do Ricardo Semler que estão categorizados nas livrarias como “Administração” ou “Negócios”, mas não sei porque o pessoal de Administração e Negócios não parece se interessar por esses assuntos. Porque será?

Já está na hora desse “fork” entre a comunidade ágil das empresas e as outras áreas acabar. Chega uma hora que parece que existem duas empresas funcionando totalmente diferentes dentro de uma. Precisamos trazer pessoas das outras áreas e outros níveis hierárquicos para as conferências e para o nosso mundo. Vou adorar o dia que eu for na Agile Conference e conversar com Gerentes de RH, VPs de Marketing e outras pessoas que não sejam do departamento de desenvolvimento; ou então quando for nas reuniões de grupos de usuários e não encontrar somente os “agilistas” mas também os administradores, os analistas de recursos humanos, os contadores e por ai vai.

E aí, por onde vamos começar?

[Guilherme Chapiewski] Até a próxima, Globo.com!

Saturday, December 5th, 2009

Não imaginava que isso fosse acontecer tão cedo, mas 2009 é o meu último ano na Globo.com.

Meu sonho aqui era ajudar a construir uma coisa maior do que eu e ter uma história para contar. Tenho muito orgulho de ter contribuido para mudar uma empresa tão tradicional como a Globo e de ter trabalhado diretamente num dos maiores exemplos de mudança organizacional e adoção de metodologias ágeis do Brasil. Trabalhei nos produtos de maior audiência da Internet brasileira, entreguei dezenas de projetos bem sucedidos, quebrei diversas barreiras e ganhei o respeito de dezenas de pessoas. Foi incrível! Me sinto feliz por ter cumprido uma grande parte dos meus objetivos e sei que meus amigos que vão me substituir vão continuar a fazer mais conquistas e vão fazer um trabalho muito melhor que o meu, levando a Globo.com para o caminho do sucesso. E como eu já aprendi, o mundo dá voltas. Quem sabe um dia eu sinto saudades do Rio de Janeiro… :)

É muito difícil saber as palavras certas pra usar numa hora dessas. A Globo.com é uma empresa incrível para trabalhar e, até onde eu consigo enxergar, a melhor do Brasil. Disparada. Ela foi inspiração para dezenas de posts desse blog e eu não tenho palavras pra dizer o quanto sou grato por ter tido a oportunidade de trabalhar com pessoas tão talentosas nesses anos todos aqui. Eu adoro essa empresa, dei meu sangue por ela, aprendi mais do que em qualquer outro lugar que trabalhei e conheci alguns dos melhores profissionais desse mercado. Queria citar os nomes de todos vocês e agradecê-los por terem me ensinado tanto, mas não quero correr o risco de esquecer nenhuma sequer das dezenas de pessoas que me apoiaram ao longo desse caminho. Em todas as minhas temporadas e equipes na Globo.com fiz amigos que vou levar para a vida toda e que vou sentir muita falta. É muito triste e muito difícil deixar tantas conquistas e realizações para trás, mas o tempo não pára e eu preciso seguir em frente para conquistar todos os meus sonhos.

Em Janeiro de 2010 estou me mudando para São Paulo e partindo para vôos mais altos e novos desafios no Yahoo!, assumindo a posição de Software Development Manager. Aliás, aproveitando a oportunidade, temos várias vagas em aberto, mas isso é assunto para um outro post. :)

Muitos desafios me aguardam e eu espero ter bastante história pra contar. Estou muito empolgado para trabalhar em produtos novos e criar novas maneiras de facilitar e divertir a vida das pessoas. Vou trabalhar também para tornar o Yahoo! um lugar ainda mais incrível para trabalhar, com ainda mais software e produtos de qualidade e mais uma referência em desenvolvimento ágil no Brasil e – sendo um pouco mais ambicioso (no sentido positivo da palavra) – no mundo!

Mais uma vez, obrigado Globo.com. Yahoo!, aí vou eu!

[Guilherme Chapiewski] Dev in Rio 2009, a great software development conference in Rio de Janeiro!

Friday, December 4th, 2009

Even though it was conceived, planned and executed in a little bit more than 20 days, Dev in Rio 2009 was awesome, a huge success! We had around 400 people at the SulAmerica Conventions Center in my home town Rio de Janeiro talking about software development, programming at the Coding Dojo and having a lot of fun in a whole day of presentations that ended in the biggest #Horaextra ever. “Hora extra” (which means “Overtime”) is the name of our weekly meeting where the nerds hang out together to drink and have a nice chat about geek stuff.

Dev Rio in 2009 started at the scheduled time when me and my friend Henrique Bastos (the creators of the conference) opened the event with a quick presentation and thanking our sponsors, supporters, communities and friends who helped us a lot more than you can imagine.

Dev in Rio 2009 - Abertura
* Henrique Bastos and me at the Dev in Rio opening.

To begin the day, we started the two tracks of Dev in Rio 2009. At the main auditorium we had the scheduled lectures while in the foyer we had the Coding Dojo.

Coding Dojo is a programming arena that was organized by the Dojo Rio folks in partnership with Dojo@SP. The idea is to work on simple and novelty problems, using programming techniques like Test-Driven Development and SOLID principles. This was definitely the best surprise we had in the day – the Dojo went much better than we could ever imagine (except that the Java Dojo wasn’t much popular, I have to admit).

Dev in Rio 2009 - Coding Dojo
* Coding Dojo at Dev in Rio: 3 meters of code on the wall!

Dev in Rio 2009 - Coding Dojo
* People participating at Dev in Rio’s Coding Dojo.

The first talk of the day was given by Ryan Ozymek, that entered the stage with his famous penguin to talk about his experience with open source software and the Joomla! community. He detailed how a big software development community works and gave his entrepreneur vision about how to use open source software to leverage businesses.

After that, Guilherme Silveira and Nico Steppat talked about a very controversial theme: Is Java dead? They addressed the fact that there are many things beyond the language in the Java universe and that despite the language is “expiring” the JVM can still be very useful.

After lunch, Fabio Akita gave no respite for anyone who was sleepy and did an excellent presentation on the Ruby on Rails ecosystem, with excellent videos, screen casts and quite information beyond the code. He doesn’t know but he took away the breath of the simultaneous translation girls!

Continuing, the (almost carioca) Jacob Kaplan-Moss made his presentation on Django, that he calls “the web framework for perfectionists with deadlines”, developed in Python. He spoke about the concepts and values that guided the development of the project and showed a bit of code to give the audience an idea of how to use the basics of Django.

The last presentation of the day was given by Jeff Patton, that talked about product development with Agile methods. Using as a narrative the story of a project carried out in conjunction with Obie Fernandez, several common problems in software development (and their solutions) have been addressed.

In the end, our great friend Vinicius Manhães Teles led an interesting conversation between speakers, communities and the audience. We had the impression that if we didn’t control the time, the conversation would have taken hours and hours because there were a lot of interesting subjects and questions. The audience took a great deal and we had interesting topics like entrepreneurship and controversial as the stupid regulation law of the systems analyst profession proposed by the Brazilian government (in Portuguese only).

Dev in Rio 2009 - Discussion
* Discussion led by Vinicius Teles. And before anybody asks, no, that one on the picture is not Adam Savage from MythBusters, it’s Jeff Patton.

While all these things were happening, me, Henrique, Gustavo Guanabara and Flavia Freire (Arteccom’s journalist) spent the day recording a huge podcast of the event, interviewing staff and filming the scenes. We have talked with the speakers, sponsors and attendees about all the subjects addressed on the talks! Watch the “making of” of some Podcasts with Ryan Ozimek, with Guilherme and Paulo Silveira and with Fabio Akita and Marcos Tapajós.

Dev in Rio 2009 - Podcast recording
* Guanabara recording the Podcast with Fabio Akita and Marcos Tapajós (and a neat detail: Guilherme Silveira and Paulo Silveira doing Pair Programming just behind them).

Since the event was realized on a monday, we ended the conference inviting everybody (with the “Estamos todos bêbados” song from Matanza in the background and choreography by Sylvestre Mergulhão and Henrique Andrade) for an epic edition of #Horaextra (that means “Overtime”, our weekly social meeting) at Lapa 40º. The entrance was free to everybody that had the Dev in Rio 2009 badge and that was how we realized the biggest and better #Horaextra ever:

* Watch more Dev in Rio 2009 videos.

I’m sure that this simple blog post cannot tell even 0,001% of what Dev in Rio 2009 was and how happy I am for being able to make it. I’d like to thank again the fundamental support from the folks of Globo.com that was the main responsible for making it happen, our sponsors Caelum, Locaweb and D-Click and everybody else that have supported us some way: Associação PythonBrasil, Fábrica Livre, Myfreecomm, OpenSourceMatters, Arteccom, DojoRio, Dojo@SP, #Horaextra, PythOnRio, RioJUG, RubyInside Brasil, Guanabara.info and everybody that attended to Dev in Rio 2009. Without your support nothing would’ve been possible!

Dev in Rio 2009 - Everybody in the end
* Participants of Dev in Rio’s round table.

If you didn’t go to Dev in Rio, I have two things to tell you: (1) you did loose one of the best conferences in Rio ever but (2) we’re going to make the presentation videos available very soon to alleviate your pain. :)

See you in 2010!

[Guilherme Chapiewski] 2 anos de Scrum e Agile na Globo.com e algumas coisas que eu aprendi

Friday, December 4th, 2009

Já se passaram pouco mais de 2 anos desde que começamos a trabalhar oficialmente com Scrum e Agile na Globo.com e um pouco mais de 2 anos e meio desde que a coisa toda começou de fato.

Depois de trabalhar diariamente com processos ágeis e uma porção de times diferentes na Globo.com, minha sensação é a daquele dito popular que diz que quanto mais você sabe de alguma coisa, mais você descobre que tem que aprender. De tempos em tempos surgem idéias novas excelentes e as vezes são coisas tão simples que eu me pergunto porque nunca tinha pensado nelas. Ou então algumas idéias que não deram certo no passado voltam à tona, são colocadas em prática e passam a funcionar muito bem. Sempre que eu acho que já aprendi como alguma coisa funciona alguém aparece com uma idéia melhor e me prova que eu estava errado em achar isso.

Me lembro quando perguntei lá no início para o Boris Gloger sobre o tempo que levaria para as coisas acontecerem. Na época ele falou que para uma empresa do tamanho da Globo.com certamente levaria de 2 a 4 anos para as coisas mudarem de fato. Eu achei um exagero e que ele estava louco, mas era eu que não tinha noção do tamanho da coisa toda. Ele estava certo.

Infelizmente eu não tenho uma história romântica para contar e estaria mentindo se dissesse que as coisas são maravilhosas depois que você adota Agile, Scrum ou o que quer que seja. Muito pelo contrário, os problemas começam a aparecer e tudo fica caótico. As vezes a quantidade de problemas chega a ser enlouquecedora e minha insônia aumentou consideravelmente depois disso. Mas eu não tenho nenhuma dúvida de que os processos ágeis são os que mais se adaptam às características de projetos de desenvolvimento de software, mais do que qualquer outra coisa que eu já tenha usado. Tivemos muito mais sucesso do que em qualquer outra iniciativa na história da empresa e as coisas acontecem muito mais e muito melhor do que aconteciam antes, mas mesmo assim ainda temos um caminho muito longo pela frente.

Hoje eu consigo entender com mais clareza o real sentido do empirismo que tanto se fala. Mesmo com pilhas de livros sobre desenvolvimento ágil na minha prateleira, eu olho para trás e vejo que o processo de “tentativa e erro” foi muito mais importante para o meu aprendizado do que qualquer teoria. Várias coisas escritas nos livros deram certo para alguns times e não deram para outros, e no fim das contas o que ficou foi uma mistura de todas essa experiências. Fomos fazendo as coisas, vendo o que dava certo ou errado, mudando, adaptando e seguindo em frente. Hoje não dá pra dizer que a Globo.com usa Scrum, XP, Lean ou Kanban. Você pode encontrar todos os seus sabores preferidos de Agile por aqui, às vezes misturados e até mesmo bem customizados e diferentes do tradicional.

Nesse tempo todo vivenciei muitos problemas, muitos sucessos, muitas derrotas, muitas falhas e muita mudança. Eu queria poder dizer que encontrei o Santo Graal do desenvolvimento ágil, mas dificilmente isso existe. E se existir, provavelmente o da minha empresa será diferente da sua e por ai vai. Porém, eu posso falar de algumas coisas que eu aprendi e que talvez possam ser úteis para outras pessoas e empresas:

Você sempre estará em transição.

Basicamente eu não acredito mais em transição ágil como eu já li por ai, que parece uma coisa que tem inicio, meio e fim. Hoje eu percebo que sempre se está em transição. Sempre surgirão projetos novos com características diferentes e sempre será necessário ajustar e se adaptar. Isso tudo fora que as pessoas e os times também mudam, e ai começa tudo denovo. É um trabalho que nunca acaba.

É muito fácil começar a fazer Scrum, o difícil é vencer a resistência das pessoas.

Grande parte do meu tempo nesses anos foi investido em quebrar barreiras e a resistência das pessoas. E não estou falando de diretores ou gerentes, às vezes os piores problemas estão dentro dos times. Os mais diversos tipos de problemas acontecem: tem gente que tem medo de trabalhar em par e expôr suas fraquezas para os outros, tem gente insatisfeita na empresa que envenena iniciativas, enfim, acontece de tudo. É muito importante trabalhar com pessoas bem intencionadas, comprometidas e que acreditam no que estão fazendo e que acreditam que as coisas sempre podem (e devem) ser melhoradas.

As pessoas precisam estar felizes.

É importantíssimo que a empresa reconheça seus talentos, que eles ganhem o que merecem e que eles trabalhem num ambiente agradável. Ninguém trabalha direito e dá 100% do seu potencial se não estiver feliz e satisfeito com a empresa. Pessoas infelizes e insatisfeitas podem acabar com um time inteiro, por isso a empresa tem que dar o primeiro passo e dar todas as condições para que isso não aconteça e, quando acontecer, resolver o problema o mais rápido possível.

Se o foco das pessoas for em “fazer telas”, “testar” ou “escrever software”, você está perdido. O foco das pessoas deve ser o produto, e não a sua função.

Muito desenvolvedor não gosta de fazer teste exploratório “porque isso é função do cara de QA”. Muito designer não gosta de fazer CSS e HTML porque isso é coisa de “desenvolvedor de front-end”. Bullshit! Imagine se um zagueiro está com a bola na linha do gol e diz que não vai fazer o gol porque não é atacante? Não tem essa, o foco é ganhar o jogo, entregar o produto, deixar o cliente feliz, não importa fazendo o que. Com o tempo você descobre a receita do time (quantidade de pessoas de cada especialidade) para que as pessoas passem a maior parte do tempo fazendo sua especialidade, mas isso não significa que elas não devem fazer ou entender de outras coisas.

Escalar não é facil. Aliás, se for possível, não escale nunca.

Times ágeis funcionam melhor quando são pequenos, porque o universo de pessoas é menor e a comunicação é melhor, as pessoas confiam mais no resto do time e por aí vai. Quando o número de pessoas e de times aumenta, a comunicação fica problemática e isso gera uma porção de problemas, desde coisas triviais como conflitos de merge até coisas mais complexas de resolver como falta de confiança, dificuldade em mudar de direção, dificuldade de passar a visão do produto, pessoas querendo aparecer mais do que outras e por aí vai. Faça um teste: reuna 30 amigos seus e tentem combinar um lugar para almoçar em no máximo 2 minutos. Repita o teste com 3 amigos e compare os resultados. Foi possível combinar um único lugar de forma unânime? Quanto tempo levou? Quais foram os conflitos de interesse? Qual foi o nível de barulho, stress e insatisfação das pessoas? Ter mais pessoas ajudou a fazer com que a decisão fosse mais rápida ou mais demorada? Talvez esse não seja o melhor exemplo do mundo mas vai ser bem fácil de perceber como times grandes se organizam com muito mais dificuldade.

Boas práticas de engenharia e desenvolvimento ágil como automatização, testes, refatoração, programação em par, integração contínua e TDD são fundamentais, imprescindíveis, inevitáveis, totalmente obrigatórias.

Todos os grandes saltos de qualidade e produtividade que demos na história da evolução da Globo.com foram porque essas práticas foram intensificadas e usadas com mais disciplina, e todas as vezes que elas não recebem a devida importância a velocidade diminui, a produtividade baixa e o time entrega menos (e com mais defeitos).

Um dos “problemas” com o Scrum é que ele não fala nada sobre usar essas práticas. Isso é proposital porque o intuito era que ele fosse bastante genérico e simples, mas como muitas pessoas gostam de seguir o livro cegamente sem pensar, elas acabam achando que não é necessário fazer o que não está escrito, e daí a probabilidade de fracasso é gigantesca. Você pode usar Scrum para produzir um marca-passo, por exemplo, mas você seria louco de não testá-lo exaustivamente só porque não está escrito? Você tem que fazer, porque é uma necessidade imposta pelo tipo de projeto. Com software não é muito diferente: se você não faz TDD, seu código fica pouco testável, e consequentemente você refatora menos ou tem dificuldade para fazê-lo. Consequentemente o tempo para implementar novas funcionalidades aumenta cada vez mais e como o cliente está sempre cobrando mais e mais coisas, você passa a testar menos para dar tempo de fazer mais funcionalidades. E por aí vai (para o buraco).

As regras são excelentes quando você não sabe o que está fazendo. Depois que aprender, quebre-as.

Geralmente quando as pessoas começam com Agile o que se recomenda é que você siga as regras à risca por algumas iterações até que você aprenda e que o processo esteja “no sangue”, e só depois que possíveis customizações devem ser feitas. Muita gente confunde isso com “sempre siga as regras à risca”. Por exemplo, hoje alguém me convenceu numa conversa que o Sprint Planning 2 do jeito que um determinado time estava fazendo estava bem inútil, uma grande perda de tempo. A sugestão foi fazer uma coisa mais “just-in-time”, ou seja, na hora que a história começar a ser desenvolvida. Muita gente pode falar que “ah, mas não é assim que o Scrum funciona” ou o clássico “aqui na empresa nós não fazemos desse jeito”. Se você tem um bom motivo para mudar as regras do jogo, discuta o assunto com o time e implemente as melhorias. Não existe essa coisa de “as regras do Scrum”, existem times produtivos com alta capacidade de adaptação e em constante evolução ou times que passam 50% do tempo discutindo o processo e não deixam o cliente feliz.

Trabalhar num ambiente ágil é muito muito muito mais divertido.

Acabei de passar quase 40 dias de férias e em conferências. Muita gente estaria odiando voltar para o trabalho depois disso, mas eu gostei. Quando eu cheguei hoje na empresa depois de mais de 1 mês a minha mesa já não era mais minha e eu não achava meu computador. O escritório mudou totalmente e o time que eu estava está todo misturado. Quando eu entrei na sala as pessoas estavam em pé discutindo, rabiscando no quadro e o barulho estava alto pra caramba. Depois de contar as novidades, de almoçar e de alguns updates, passei o resto da tarde programando em par numa tarefa que nem eu e nem o meu par faziamos idéia de como resolver, mas juntos descobrimos como fazer e resolvemos o problema. Foi um dia caótico porém muito produtivo e muito divertido, como a maioria dos que eu tenho. Tudo muda muito e está em constante evolução, e cada dia é um novo desafio. Se você gosta de ficar escondido atrás da “baia” e tem dificuldades em dividir o seu teclado com um amigo, recomendo fortemente que você não use Agile.

Agile não é o Santo Graal.

Nenhum processo de desenvolvimento (ágil ou não) é perfeito. Muita gente gosta, muita gente não gosta, alguns não se adaptam, outros se motivam a cada dia com os novos desafios e é assim que as coisas funcionam. <ironia> “Agile é tão perfeito” </ironia> que quando as coisas dão errado é muito mais fácil culpar o seu processo e reclamar que ele não funciona. Bullshit! Como o Jeff Patton fala, as pessoas fazem isso porque o processo não vai se defender de você e porque é muito mais dificil assumir e enxergar os problemas de verdade. Uma das chaves de ser bem sucedido nesses processos é entender que eles são apenas ferramentas muito simples e que se não estão funcionando é porque você precisa encontrar e resolver algum problema da sua empresa, do seu time, das pessoas ou do que quer que seja. Não bote a culpa no processo.

As pessoas são mais importantes que o processo. Foco nas pessoas.

São elas que fazem tudo acontecer. Quanto mais agentes de mudança sua empresa puder ter, melhor. A empresa tem que reconhecer essas pessoas e motivá-las para que elas motivem ainda mais seus pares e assim por diante. É preciso dar liberdade para elas criarem, tentarem coisas novas e errarem sem medo de serem repreendidas. Faça de tudo para que todos estejam felizes e motivados. Resolva os conflitos. Coloque tudo em pratos limpos. Trate todos com respeito e como amigos. Faça as pessoas crescerem e deixe (e ajude) que elas tenham visibilidade dentro da empresa. De todas as coisas que eu vi até hoje, nada é mais eficaz do que ter as pessoas certas do seu lado.

Nada disso é definitivo e eu posso mudar de opinião a qualquer momento sobre qualquer uma dessas coisas. Aliás, hoje numa conversa aprendi que é ótimo mudar de opinião, porque significa que você aprendeu alguma coisa nova/diferente que te fez pensar de uma forma nova/diferente e, portanto, você evoluiu. Fica então a última:

Crie sua opinião, aprenda mais e mude sua opinião. Esteja em constante evolução.

[Guilherme Chapiewski] QCon 2009, aí vou eu!

Monday, November 16th, 2009

QConEsses últimos dias foram uma loucura e eu não consegui parar um segundo pra blogar sobre a Agile Dev Practices (que foi muito legal, por sinal)! Estou agora na minha segunda e mais esperada conferência desta viagem, a QCon 2009 em San Francisco!

Esta é a minha segunda participação nessa conferência sensacional com alguns dos melhores palestrantes e profissionais de desenvolvimento de software do mundo!

Espero conseguir colocar os posts em dia durante a semana. :)

[Guilherme Chapiewski] Agile Development Practices Conference 2009, aí vou eu!

Monday, November 9th, 2009

Agile Development Practices ConferenceDepois das minhas curtas (porém divertidas) férias, estou aqui em Orlando para participar da Agile Development Practices Conference 2009, organizada pela Software Quality Engineering!

Amanhã será o primeiro de dois dias de tutoriais seguidos de dois dias de conferência com a participação de grandes nomes do mundo ágil como Jeff Patton, Alistair Cockburn, Mike Cohn, Jim Highsmith, Andy Hunt, David Hussman, Joshua Kerievsky, Linda Rising, Alan Shalloway e por aí vai. Para encerrar, na sexta-feira acontecerá o Agile Leadership Summit liderado pela Pollyanna Pixton.

Os próximos dias prometem! :)

[Guilherme Chapiewski] The fun theory

Saturday, October 10th, 2009

Something that I always believed: fun can obviously change behaviour for the better.

That applies to our work activities and environments too. Just answer these simple questions and you will see why I think so:

  • Wouldn’t you feel better working at a company where you could have lots of fun while working?
  • Don’t you prefer to work with cool and funny people?
  • Don’t you feel more productive when you do something you enjoy?

If you are not doing those things already, start the change!

Congratulations Volkswagen for the initiative and thanks Glaucia Peres and Marcos Pereira for the link!

[Guilherme Chapiewski] [Dev in Rio 2009] Podcast!

Tuesday, October 6th, 2009

Essa notícia está 1 dia atrasada mas ainda tá valendo: o Gustavo Guanabara finalmente terminou o Podcast com a cobertura do Dev in Rio 2009!

Ficou muito muito divertido! As entrevistas com os palestrantes Ryan Ozimek, Guilherme Silveira, Fabio Akita e Jacob Kaplan-Moss ficaram ótimas e ainda conseguimos alguns convidados especiais para participarem na hora como o Paulo Silveira, Marcos Tapajós e Mauricio Samy Silva (o Maujor). Uma pena que o Nico Steppat e o Jeff Patton não puderam participar mas fica para a próxima.

Ainda, quem quiser ver o “making of” do Podcast pode acessar os vídeos no canal do Dev in Rio no Vimeo.

[Guilherme Chapiewski] [Rails Summit 2009] Nós vamos e você também pode ir :)

Friday, October 2nd, 2009

Eu, Guilherme Cirne, Emerson Macedo e Anselmo Alves já estamos preparando as malas para ir no Rails Summit 2009 (isso sem falar do resto da galera do Rio de Janeiro que também vai em massa)!

Tá afim de ir também? Então faça um vídeo criativo explicando porque você também quer ir na Rails Summit 2009 e poste o link aqui nos comentários. O vídeo mais criativo (que será escolhido por mim e o Fabio Akita até o fim do dia 07 de outubro) vai ganhar um convite para a Rails Summit 2009!