Posts Tagged ‘Metodologia Ágil’

De Sênior à Gerente

Na continuação do post De Júnior à Sênior, o Sérgio Taborda vai além da comparação entre analista júnior e sênior e aborda a “evolução” dos analistas sêniores à cargos de gerentes, o texto também leva a reflexão, por isso também está na íntegra logo abaixo.

Read the rest of this entry »

De Júnior à Sênior

Encontrei no blog do Sérgio Taborda um excelente texto sobre as diferenças entre analistas júniores e sêniores, como concordo com sua abordagem resolví compartilhar com você. Abaixo segue o texto na íntegra.

Read the rest of this entry »

Palestra Agilidade e Qualidade de Projetos com Fabio Akita

11º Encontro de Profissionais de Internet - Locaweb

No dia 14 de maio aconteceu em Curitiba o 11º Encontro de Profissionais da Internet promovido pela Locaweb.

Fomos ao evento eu, Igor Musardo, e o Tagôre Cauê, e lá encontramos o SaintBR.

Igor Musardo e o SaintBR no 11º Encontro de Profissionais de Internet em Curitiba
Eu e o SaintBR no CofeeBreak.

O evento foi bem interessante com palestras bacanas, embora ache que para os próximos anos possam ter sessões de desenvolvimento e de design ocorrendo em paralelos e com conteúdo mais técnico e profundo como será no 14º Encontro de Design e Tecnologia Digital que ocorrerá dia 6 de junho também em Curitiba.

A palestra mais aguardada foi a do Fabio Akita com o tema desenvolvimento ágil. O Fabio abordou de forma simples e clara a essência do desenvolvimento ágil de software, infelizmente o tempo foi curto para a palestra do Akita e por isso perdemos alguns conceitos e conclusões de raciocínios.

Consegui gravar boa parte da palestra, portanto se você não pode comparecer ao evento assista agora. A palestra está separada em quatro partes.

Read the rest of this entry »

Visão geral do Scrum em 10 minutos

O Abu do Blog do Abu, blogou sobre esse vídeo. Como achei bem interessante o conteúdo, pois o vídeo, criado pelo Hamid Shojaee, aborda de maneira geral e bastante rápida a Metodologia Ágil Scrum, vou sugerir que você assista também.

Compre livros a preços interessantes

Estante Virtual

Se você não tem comprado livros recentemente devido aos preços nem sempre atrativos, talvez seja porque não conheça o site Estante Virtual.

Estante Virtual é um site onde os sebos de todo o Brasil cadastram seus estoques, deixando assim de vender somente para a cidade onde o sebo está localizado, passando a vender para todo o país.

Para aqueles sebos próximos a seu convívio, você não precisa nem gastar com envio, nem pagar via boleto ou com o cartão, pois o site disponibiliza a opção de pegar o livro no local e pagar em mãos.

PeoplewareHoje mesmo, comprei o livro Peopleware de Tom DeMarco e Timothy Lister pela bagatela de R$ 8,00 pago em mãos em um sebo aqui de Curitiba.

O processo de compra é igual de qualquer comércio eletrônico, você localiza o produto de seu interesse, faz o pedido, recebe a confirmação do pedido via e-mail e a confirmação do envio do produto, o próprio sebo te envia também via e-mail.

Agora não tem mais desculpas para não comprar aquele livro desejado.

Vídeo – Palestra de eXtreme Programming com Vinicius Teles na TDC 2008

O Vinicius disponibilizou nesta segunda-feira o vídeo da palestra de XP que ele proferiu na TDC 2008.

Foi a primeira vez que assisti a uma palestra dele, e posso dizer que é bem interessante e reflexiva sua maneira de palestrar, com as cenas teatrais de insulto gratuíto.

A abortagem feita sobre a metodologia XP é muito assertiva, e leva o público a no mínimo re-pensar o processo de desenvolver software contra as absurdas comparações com fábrica e construção civíl.

O vídeo postado por ele está hospedado no Viddle.

Porém se você enfrentar lentidão, como eu enfrentei, para efetuar do download do Viddle, pode fazer o download daqui mesmo do meu Blog.

Palestra – Extreme Programming – Parte 01 (100mb)
Palestra – Extreme Programming – Parte 02 (96mb)

Boa palestra!

The Developer’s Conference 2008

Continuando os anúncios de eventos.

Nesse final de semana ocorrerá o evento The Developer’s Conference 2008 em São Paulo, o mesmo é voltado ao mundo Java, mas ocorrerão várias sessões de Metodologias Ágeis (Scrum, XP e Testes), dentre os palestrantes está o papa de eXtreme Programming do Brasil, Vinícius Manhães Teles da ImproveIT.

Pelo conteúdo apresentado o preço da inscrição está bastante acessível.

Não sei se conseguirei ir lá, mas caso você consiga, vá, pois os palestrantes são de primeira linha.

Gestão de conhecimento do Time

Fonte: http://blpsilva.wordpress.com/2008/06/06/gestao-de-conhecimento-do-time/

Eu tenho pensado um pouco sobre isso nos últimos tempos, então decidi falar aqui no blog porque possivelmente muitas pessoas têm questionamentos semelhantes.

Inicialmente vou contextualizar um pouco para depois ficar mais fácil de expôr algumas idéias. Meu time na Globo.com é formado atualmente por 3 desenvolvedores, 1 especialista em client-side e 2 arquitetos de informação (até semana passada eram 3). Temos um backlog de produto enorme, pois a equipe era formada apenas por 2 desenvolvedores antes da minha chegada em Janeiro. O resto do pessoal se juntou ao time em Março.

Uma coisa importante no Scrum (na verdade, em qualquer metodologia hoje em dia) é que os desenvolvedores sejam versáteis, e consigam atuar de várias formas diferentes, mudando de ferramentas, frameworks e linguagens sem problemas. Para que os desenvolvedores consigam fazer isso, é claro que é fundamental que eles estudem bastante e estejam sempre se atualizando, pois as opções de tecnologias disponíveis estão avançando muito rapidamente.

Outra coisa importante é que mais de um desenvolvedor do time seja capaz de realizar qualquer tarefa específica. Isto é importante pelo compartilhamento do conhecimento e para que seja possível lidar tranqüilamente com problemas pessoais, férias, etc. Neste sentido, precisamos pensar muito mais no conhecimento do time do que no conhecimento de indivíduos separadamente.

O que eu quero dizer com isso? Quero dizer que para um time andar bem, as escolhas de tecnologias idealmente devem ser moldadas em torno do time. Com a infinidade de opções que temos de frameworks web, APIs javascript/ajax, linguagens e componentes, não podemos nos dar ao luxo de ficar continuamente acompanhando as novidades e avaliando novas opções. Precisamos fazer algumas escolhas, e avançar com elas. É claro que isso pode e deve ser periodicamente revisto, mas é fundamental escolher algumas opções e se concentrar nelas.

Os 3 desenvolvedores do meu time têm experiência muito mais em Java do que em outras linguagens. Nossas aplicações são todas em Java, embora já estejamos fazendo experimentos com outras linguagens. Entretanto, concordo bastante com um artigo que saiu no InfoQ recentemente, que traz a idéia de que Java pode ser a última grande linguagem. Compartilho da idéia do autor de que provavelmente estaremos nos próximos anos escolhendo linguagens de uma forma semelhante à que escolhíamos frameworks Java nos últimos anos.

Java é uma linguagem de propósito geral. Gosto muito da linguagem e da plataforma. Mas com novas linguagens/frameworks direcionados para problemas específicos, é natural que em alguns nichos Java não seja a melhor opção. Penso que isso está acontecendo com mais força em aplicações web. Novas opções como o Grails, Django e Ruby on Rails oferecem um desenvolvimento muito mais produtivo do que Java em algumas aplicações. Java possui ótimos frameworks web, e já é uma linguagem muito madura. Mas quem já utilizou alguma dessas 3 opções que mencionei já pôde constatar o choque de produtividade delas contra a maioria dos frameworks web Java.

Conversei sobre isso com o resto do time e a minha opinião é de que devemos nos concentrar em torno de um conjunto limitado de opções, para que o time tenha um melhor rendimento. Com isso, o ideal é que o time conheça bem 2 ou talvez 3 frameworks web Java, 1 ou 2 das opções de alta produtividade web, e 1 ou 2 opções de framework javascript/ajax (jQuery por exemplo). As escolhas devem ser feitas pelo time em conjunto, de acordo com as aptidões e conhecimento agregado dos membros.

Trabalhando com um conjunto reduzido de opções, fica muito mais fácil compartilhar o conhecimento dentro da equipe, e conseguimos que os desenvolvedores conheçam bem esses componentes escolhidos e sejam produtivos com eles. Não adianta muito que um dos desenvolvedores saque muito do “melhor framework web da história desse país”, mas só ele conheça esse framework.

É melhor que seja utilizada uma opção que o time de uma maneira geral já conheça e seja produtivo. Pode ser que essa 2a opção não produza flocos tão crocantes como aquele outro framework, mas se é uma boa ferramenta para o problema e o time conhece bem, use essa mesma!

É claro que em algumas situações nós precisamos abrir mão de algo que conhecemos bem para utilizar uma opção que se adequa melhor aos outros membros do time. Vamor supor que um dos desenvolvedores saca muito de Tapestry e considera que ele é o melhor framework web Java. Se os outros 3 desenvolvedores já conhecem bem de JSF, provavelmente a melhor alternativa é que o time use JSF, e aquele desenvolvedor abra mão do Tapestry em favor do JSF. Pode ser que o Tapestry seja melhor tecnicamente do que JSF, mas os resultados têm que ser entregues pelo time, então as escolhas têm que ser feitas em torno das aptidões do time como um todo.

Tendo feito as escolhas de tecnologias, o legal é que os desenvolvedores se revezem com alguma freqüência entre as linhas de atuação, para propagar melhor o conhecimento e o time como um todo amadurecer. Eu por exemplo conheço legal de REST, mas os outros 2 desenvolvedores do time já implementaram alguns serviços e clientes REST, e com certeza têm plena condição de trabalhar em qualquer um dos serviços REST que eu implementei.

Aos poucos estamos aprendendo mais da parte client com o especialista do time, e ele também já está aprendendo um pouco de JSF, e com isso vamos todos amadurecendo. Essa gestão de conhecimento do time deve ser muito bem feita, para que os resultados do time vão melhorando progressivamente sprint após sprint. A decisão de se concentrar em algumas escolhas (mesmo que talvez elas não sejam as melhores tecnicamente) é muito importante para que o time se mantenha produtivo.

Todos gostamos muito de software, e de avaliar novidades. Porém, não somos pesquisadores, somos desenvolvedores comprometidos com resultados. Essa decisão das escolhas do time é muito importante. Nosso tempo de estudo é limitado, portanto precisamos ser pragmáticos e focar nos resultados.