Priorizando projetos de TI

Leave a comment

Estava lendo um artigo na cio sobre priorização de projetos de TI.

Esta priorização muitas vezes funciona como um malabarismo, pelas diferentes áreas de negócio demandando projetos. Lá pelas tantas, se fala:

“Os modelos formais e mecanismos de priorização não funcionam mais”, diz David Cearley, vice-presidente do Gartner. “A priorização não pode ser feita de forma isolada do negócio. Precisa acontecer em estreita parceria com a empresa.”

Nesse cenário, a TI está sentindo a pressão para ser mais ágil em seus métodos de entrega, mais flexível na priorização de projetos, e mais experiente na avaliação de ROI – tudo para que possa trabalhar com, e não contra, as necessidades de negócio.

Um dos pontos é em evitar constantes “não” para os clientes. Mas o ponto não é este. O não é muito bom para testar reais necessidades. Quando um cliente requisita uma nova funcionalidade ou um novo projeto, perguntar “O que acontece se este projeto não for entregue? O que se perde?“, pode ser uma forma de buscar o real valor do projeto. Claro, você deve saber se tem um ambiente propício para isto. Senão a resposta pode ser… “Ah, o que se perde? Seu emprego.

Quando escrevemos uma user story, queremos saber questões como o porque ela precisa ser implementada, o que de deve ser implementado, e quem se beneficia com isto. Para um pensamento mais “amplo”, em projetos, esta linha de pensamento serve igual. Isto me lembra a Project Story do Luiz Parzianello, que eu curto muito. Ela é um documento que consegue criar uma visão mais clara de um projeto a ser entregue. E é uma forma para empresas se organizarem e criarem governança na hora de escolher o que priorizar e porque priorizar. Temos outras formas de fazer isto, seja pensando em uma estrutura de Business Canvas e Lean Startup.

E neste sentido, é interessante como as grandes empresas dificilmente conseguem ver valor em estar mais próximas das áreas de negócio. E em trabalhar com ciclos mais curtos de entrega. Deixando as áreas de negócio realizarem testes, desenvolvendo produtos mais rapidamente e testando o seu resultado é pelo menos um exercício para minimizar risco. É muito importante para a equipe de desenvolvimento estar próxima dos clientes, pois assim poderão ajudar na priorização de funcionalidades em um lado mais técnico e entender mais dos processos de negócios envolvidos.

Depois no artigo, este assunto vem a tona:

O alto nível de envolvimento das partes interessadas também levou TI a repensar seu processo de desenvolvimento, passando a adotar uma abordagem mais ad hoc quando as equipes de TI passam a integrar o pessoal de marketing ou das áreas de negócios para o desenvolvimento mais rápido de um aplicativo móvel  – às vezes em questão de dias em vez de semanas ou mesmo meses.

O foco aqui não é entrega rápida de aplicativos de mobilidade. Quero focar em entrega de projetos em geral. E quando se fala em abordagem ad hoc… o que o pessoal deveria olhar são as metodologias ágeis puramente, porque muitas das preocupações citadas, são na verdade princípios e questões que as equipes ágeis valorizam.

Para que isto ocorra de forma efetiva, a formação de equipes menores para se trabalhar em projetos, dentro das áreas de negócio é uma boa solução, só que o problema é que normalmente as equipes “tradicionais” não são preparadas e estimuladas a assumirem mais de um papel. Isto deve ser trabalhado e permitido. E com o cliente presente para ajudar nas definições, os ganhos serão vistos de forma rápida.

O tempo de resposta das equipes é cada vez menor. E para que isto possa ocorrer desta forma, devemos estar leves e comprometidos com o essencial, permitindo sempre uma revisão de rumo e constante avaliação se algo pode ser melhorado no processo diário.

Vinicius Teles uma vez me disse que “o cliente só sabe o que quer depois que vê o que pediu“. Neste sentido o que queremos fazer é lançar logo software para que os clientes possam avaliar e prover feedbacks. Só que muitas empresas ainda não caíram na real e algumas só vão se ligar em certas práticas quando a água estiver chegando no nariz.

Empresa muda do eXtreme Programming para o Scrum. Hein?

6 Comments

Como assim? A gente viaja e lê coisas por aí e não vê tudo… não vou citar aqui nome de empresa nem pessoas, mas vou só dar uma opinião sobre o assunto do título.

Primeiro, que eu acredito que Scrum é uma excelente forma de um time começar a trabalhar com Agilidade. Excelente para criar ritmo, de conhecer cerimônias, de trabalhar transparência e uma série de valores que são importantes em times ágeis.

Só que chega um momento que este time não vai mais conseguir avançar no assunto. A velocidade não aumenta, e ainda aparecem problemas relacionados a testes, a escrita de histórias, as entregas não estão consistentes, entre outros assuntos.

Este time vai precisar melhorar processos de teste, processos de aceitação com o cliente, de deploy, enfim, questões relacionadas a práticas de engenharia de software.

Quer dizer que Scrum é ruim? Não… o Scrum é incompleto de propósito. Ele é excelente para estruturar um time e ajudar em questões de planejamento e gestão de projetos.

Não é que o time deixa de usar Scrum e passa a usar por exemplo o eXtreme Programming. Simplesmente o que o time faz é agregar aos seus processos atuais práticas de engenharia de software muito bem documentadas pelo eXtreme Programming, assim adicionando mais qualidade de software ao seu dia a dia. Seja do XP ou do FDD (Feature Driven Development) ou de outra prática que este time andou estudando, exemplo Getting Real. O que se busca são melhores formas para desenvolver produtos.

Mas não para por aí. Depois este time vai querer eliminar mais restrições ainda e vai querer entender onde ele está sendo limitado, e vai querer encontrar formas de entregar mais, de minimizar variabilidade, de aumentar fluxo e aí este time começa a entender e ler mais sobre Lean, começando a fazer sentido a importância dos processos de melhoria contínua (Kaizen!) e eliminação sistemática de desperdícios.

Aí este time começa também a ler mais sobre algumas coisas que vem acontecendo no mundo de hoje, exemplo DevOps, Continuous Delivery, Startups, Lean Startup, e por aí vai…

O ponto é que ao ler uma matéria estilo case, estilo press release, de uma empresa que usava eXtreme Programming há oito anos e escreve no título que passa a usar Scrum… bom, desculpe… mas não faz sentido!

Dizer que está se deixando de usar o XP para usar Scrum, não faz sentido por alguns motivos:

- XP tem foco nas disciplinas de engenharia de software

- Scrum tem foco em cerimônias que apoiam a gestão de projetos iterativos e incrementais.

- As práticas organizacionais do eXtreme Programming são baseadas no Scrum, Planning Game, Stand Up Meeting e por aí vai. Logo, elas não concorrem!!

- Se a empresa estava usando XP há mais de 8 anos, ao passar a usar Scrum sem seguir com as disciplinas do eXtreme Programming estaria fazendo um retrocesso. Se vai deixar de focar em testes automatizados, seja unitário, funcional ou de integração, seja usando TDD (Test Driven Development) ou não. Vai deixar de usar integração contínua, e outras disciplinas essenciais nos dias de hoje em times de desenvolvimento? Eu acho que não… porque não faz sentido!

- O Scrum não define nada sobre vários assuntos. Quando se inicia um “Sprint”, é uma grande caixa preta. Coloque ali os processos que você quiser. Eles devem fazer sentido para sua equipe e para o tipo de trabalho que é desenvolvido. Quando se fala de backlog, escreva do jeito que quiser. Scrum não vai definir nada. Por isto que ele pode funcionar em qualquer área de atuação, não apenas Tecnologia da Informação.

- O normal em uma empresa que está usando eXtreme Programming entregando iterações curtas e muito feedback dos usuários seria passar a adotar princípios e práticas do Lean, para eliminar mais e mais restrições, passando a funcionar em um ciclo de desenvolvimento incremental.

- Uma equipe XP que trabalha com iterações, pode usar todas as cerimônias do Scrum no seu dia a dia e adicionar a isto as práticas de engenharia de software que são formadas como disciplinas do eXtreme Programming.

O mercado brasileiro precisa aprender. E mesmo com todo o movimento nacional, de Agile Brazil, eventos locais, de grupos de usuários locais, a exemplo do GUMA-RS aqui do Rio Grande do Sul, infelizmente os assuntos de verdade não aparecem. Infelizmente acabo vendo matérias sobre estas, que faz parecer é que esta empresa na verdade nunca usou eXtreme Programming.

Quer conhecer mais sobre eXtreme Programming? Fica a dica de uma publicação que fiz com Guilherme Lacerda, com o título Conhecendo o eXtreme Programming. Este foi um trabalho feito na disciplina de Engenharia de Software da UFRGS, ministrada pelo Professor Marcelo Pimenta.
Referência:
Wildt,D. ; Lacerda, G. Conhecendo o eXtreme Programming (XP). In: Coletânea dos Trabalhos de CMP-102 – Engenharia de Software 2010, PPGC-UFRGS, 31 pp, disponível na internet em http://www.slideshare.net/dwildt/conhecendo-o-extreme-programming

pt: Agile Brazil 2011 – Aí vou eu!

Leave a comment

Eu vou no Agile Brazil 2011, e vou participar de algumas atividades durante o evento. Vamos por dia!

Dia: 27 de junho de 2011
Treinamento de Test Driven Development com outras figuras da comunidade ágil do Brasil. Na edição de 2010 oferecemos um treinamento de eXtreme Programming. Neste ano vamos focar na prática de Test Driven Development, trabalhando com práticas relacionadas ao TDD. TDD é para a vida inteira!

Dia: 28 de junho de 2011
Estarei assistindo o treinamento de Lean, do meu amigo Christopher G. Thompson, do Lean Institute Brasil. Estarei lá para participar de boas discussões!

Dia: 29 de junho
Inicio no primeiro dia de evento com o workshop Da visão a produção – Criando produtos e lançando ao mercado. A ideia é dar dicas de como estruturar a criação de um produto e preparar o seu lançamento. A partir de ideias elaboradas de exemplos de produtos os participantes serão desafiados a trabalhar questões como roadmap, pitch de venda, lançamento estilo hollywood, e formas de como criar um produto que pode ser lançado aos poucos e realmente testar e buscar mercado. É colocar as práticas ágeis e conceitos de lean startups na prática e poder levar isto para a vida real. Serão 110 minutos de prática! Aparece lá!

Dia: 30 de junho
Lightning Talk “Jogue basquete e desenvolva times multifuncionais“. O objetivo é falar a respeito dos ensinamentos do basquete e como as equipes podem crescer com isto.

Lightning Talk “Ramones ou Jazz? Ou os dois? Buscando produtividade com músicas” em par com o Helio Medeiros (@helmedeiros). Objetivo da palestra? Gerar concentração, buscar motivação, acreditar que uma música pode ajudar a buscar resultados. Tudo isto usando a pomodoro technique em um ritmo alterado, através das músicas e do “songdoro”, que mistura pomodoro technique com o conceito das powersongs.

Lightning Talk “Desenvolvimento Orientado a Testes — Está na hora de aplicar no seu trabalho!“. Em uma entrevista de emprego, o candidato se diz praticante de Test Driven Development. Pratica em casa nos projetos pessoais, na faculdade, nos coding dojos que participa nas comunidades que faz parte, mas não pratica no trabalho. Lá não dá. E como fica? Descubra abordagens para fazer o assunto acontecer no trabalho também.

Fora isto, espero poder participar e puxar alguns Coding Dojos e parear com algumas pessoas! Os projetos podem ser o @catarse_, o @letshelpit ou algum outro projeto que apareça até lá… e pior que vai aparecer mesmo. Faço atualizações por aqui… :-)

Acompanhe as últimas novidades do evento pelo twitter @agilebrazil ou siga a tag #AgileBR para obter mais informações e comentar sobre o evento.

A Trevisan Tecnologia, empresa que atuo como CTO, é uma das apoiadoras do evento. Poder contribuir com a evolução e o ensino do assunto no mercado brasileiro deve ser tarefa de todos. Seja ensinando práticas enquanto ensina uma nova linguagem de programação, seja criando uma nova empresa com os princípios do Lean Startup e por aí vai.

Se a sua empresa também tem interesse em apoiar com patrocínio, veja mais informações no próprio site do Agile Brazil.

pt: Empreender é arriscado? O que você tem a perder?

4 Comments

As vezes vejo pessoas falando em empreender, nos riscos, e tudo mais… e pergunto! O que impede você de tentar aplicar algumas horas do seu dia em alguma ideia que você entende que pode dar certo?

Li recentemente o livro Rework da 37Signals, empresa de sucesso no desenvolvimento de softwares que não fazem uma série de coisas. E o fato destes softwares não serem capazes de uma série de coisas é que faz esta empresa tão diferente e com tanto sucesso no mercado.

Eles tem foco, eles tem objetivo e eles tem a certeza de que o produto que eles fazem possui um nicho de usuários. E eles trabalham este nicho.

Você já escolheu o nicho que deseja trabalhar?

Para quem é do mercado de TI, você precisa de no máximo R$50 reais para investir em uma primeira idéia. Isto se você quiser investir em um domínio. De resto, você encontra soluções gratuitas e/ou open source, e nas nuvens para ajudar você em tudo o que precisar!

Precisa de um CRM para cuidar do seu negócio? Highrise!

Precisa de um software para gerenciar seu projeto e acompanhar seus planos? Basecamp ou PivotalTracker podem te ajudar!

Precisa publicar sua aplicação? Google App Engine! Heroku!

E você precisa contratar? Para que? Você já tentou fazer sozinho? E você tem pessoas com a mesma identidade que você? Você tem uma empresa que ouve suas ideias e permite que você crie produtos internamente? Pense nisto também.

Eu sempre falo aos meus alunos: nunca deixem de programar. Nunca deixem de treinar. Um diretor que tive me falou, as empresas precisam de poucas pessoas nas suas diretorias, mas as empresas sempre vão precisar de bons programadores, no melhor estilo pragmatic programmers, desenvolvedores atentos no que é importante no desenvolvimento de software. Falo mais sobre “o que é importante” em outro post.

E é no sentimento de “do it yourself” (DIY) que eu acho que as pessoas precisam investir seu tempo. E pensando no início de uma idéia, meu entendimento fecha com o modelo do Getting Real, ou quase… eu entendo que podemos usar um time de até três pessoas para lançar um produto novo. Você não precisa de mais pessoas que isto para fazer as coisas acontecerem. E olhando 37Signals que citei anteriormente, é o modelo dos três mosqueteiros.

E não é procurando soluções mirabolantes, mas procurando as soluções mais simples possíveis (que por acaso são as mais difíceis). Exemplo, converso com colegas de trabalho sobre alguns produtos a serem lançados, mas nenhum produto pode ter mais que 08 horas de desenvolvimento. Como você alcança isto?

A criação de restrições são interessantes para alcançar estas questões. E são 08 horas conscientes de desenvolvimento, nada de eXtreme Go Horse ou algo do tipo.

Com foco, uma bela metáfora, e muita simplicidade! Simplicidade é a arte de maximizar o trabalho que não fazemos. E é isto que precisamos trabalhar em nós mesmos e com os nossos times. O que eu posso fazer, que é muito simples, e pode me ajudar a colocar a cara no mundo e mostrar minha idéia?

O quanto de tempo preciso investir para garantir um produto possível de ser colocado em produção?

Vou precisar virar noites? Não. Tempo é vida. Cuide dela.

Durma bem. Use 1 hora do seu dia para investir no seu projeto. Use técnicas para gerenciar seu tempo e dar o foco necessário, para que o mínimo de tempo que você tenha seja útil para alguma coisa no seu projeto. Faça coisas mais simples.

Capital de investimento? Será que você precisa? Crie uma restrição! Quem sabe isto ajuda você a lançar uma solução mais rápida?

Trabalhe o mínimo para entregar o máximo. Outra questão interessante é de repente você ler este texto e pensar: mas eu quero criar uma empresa de treinamento. Não posso gastar apenas 1 hora por dia.

Pode sim.

Você pode criar vídeo aulas, iniciar vendendo elas para sites que compram este material. Ou fazer vocês mesmo sua forma de distribuição! Pode virar um parceiro no itunes e vender seus vídeos pela loja da apple. Você pode. Pode usar uma plataforma como e-genial / treinatom. Pode.

Você não precisa de uma sala e um lugar físico para dar treinamento. Não hoje, não agora.

Você pode tentar e atingir um mercado muito maior do que você poderia atingir.

Pense nisto.

Follow

Get every new post delivered to your Inbox.

Join 1,280 other followers