Business Model Canvas, passo a passo
O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.
Disseminando conhecimento e inovação em desenvolvimento de software corporativo
O conteúdo foi adicionado aos favoritos!
Houve um erro ao adicionar aos favoritos! Por favor, tente novamente.
Postado por Mark Levison , traduzido por Wagner R. Santos em 02 Fev 2009
Eu tenho visto um grande número de times em nossa empresa se matando para adotar um Desenvolvimento Orientado a Testes (Test Driven Developement -TDD)[1]. Ocasionalmente um ou dois desenvolvedores obtém sucesso sem ajuda alguma, mas a maioria não. Para melhor compreender o problema fiz uma série de pesquisas com os membros dos times e cheguei a conclusão que mesmo após o treinamento em sala de aula, ainda havia muito a ser feito. Esta estratégia planejada foi desenhada para ajudar qualquer um que queira implementar TDD dentro de uma empresa, porém alguns destes problemas e idéias são aplicados somente em empresas de média e larga escala.
Minha pesquisa com os membros do time (onde todos receberam treinamento) revelou estes bloqueios:
Com todos estes sintomas, quais são os problemas reais?
Test Driven Development pode ser muito difícil de aprender. A fase de aprendizagem (a duração de tempo até que se torne um hábito latente) tipicamente dura de dois a quatro meses, tempo cuja produtividade é reduzida [2]. Geralmente os benefícios serão óbvios e a técnica é geralmente auto sustentável, mas a questão é: como chegar lá? Muitos desenvolvedores desistem após somente alguns dias.
A maioria das estratégias de adoção que tenho visto foca em treinamento em sala de aula (ou e-learning) e mentoring um-a-um. Quando bem feito, estas são ferramentas excelentes e pode fazer parte de uma solução, mas eu acho que é necessário mais.
Treinamento em sala de aula sofre por conta de dois problemas chave: os exemplos são muito fáceis e não se relacionam com problemas reais; e não há muita chance de praticar.
Treinamento online (tanto Object Mentor e Industrial Logic, entre outras, tem benefícios), tem a vantagem de ir mais a fundo. Entretanto, ainda assim não existe a chance de praticar. Em compensação, estes cursos são normalmente realizados sem a interação com outros estudantes. Ouvir questionamentos de outros estudantes e colegas de classe geralmente ajudam na compreensão.
Mentoring um-a-um não escala além de poucos membros de um time. Isto é especialmente difícil em um ambiente corporativo de larga escala onde existem somente alguns poucos especialistas e centenas ou milhares de pessoas precisando de ajuda.
Livros são uma opção excelente mas somente alguns desenvolvedores gostam de ler livros a respeito de seu trabalho, e mesmo aqueles que se propõe a aprender TDD desta maneira, tem dificuldades. Como em cursos online, o problema é aprender por sua conta e risco.
Finalmente: código legado torna um problema que já é difícil ainda mais duro. Desenvolvedores certamente perguntam a seguinte questão: “Como eu faço para testar estes objetos altamente acoplados? Este código é complicado, como eu testo este algoritmo?”
Então, o que funciona? As abordagens anteriores sofrem por duas causas chave: falta de profundidade e falta de colaboração. Uma estratégia completa irá apelar para múltiplos modos de aprendizagem e possui muitos elementos.
A idéia base deste plano é o seguinte: criar conversações e aumentar a colaboração em torno do TDD. Três destas estratégias são focadas nesta área: Programação em Par, Coding Dojo e um Workshop de Leitura.
O Coding Dojo (utilizando o Formato Randori) é um evento onde um pequeno grupo de pessoas (max. 15), resolvem um problema utilizando TDD (adaptado de Danilo Sato):
Por experiência eu recomendo que você escolha um problema bem pequeno para começar.
Para os Workshops de Leitura existe um grande número de boas opções para livros:
Tipicamente, os times tentam cobrir um ou mais capítulos em uma sessão. O processo é devagar o bastante para que as pessoas possam ler fora do trabalho, sem que isto se torne um peso. Além disso, isto permite tempo suficiente para uma discussão mais aprofundada de poucos itens em um capítulo.
Ambos workshops devem ter um fornecimento de pizza (ou uma opção de lanche mais saudável) – você está pedindo para que as pessoas gastem o seu tempo fazendo algo relacionado a trabalho, elas precisam de um incentivo. Os dois workshops podem alternar as semanas, desta maneira as pessoas não sentem que estão encurraladas em um beco. Finalmente não espere os mesmos membros de um grupo em toda sessão.
Workshops e comunidades são uma melhoria do aprendizado direcionado porque os membros do grupo estão engajados na conversação e colaboração. Como resultado nós aprendemos sobre coisas que normalmente não consideraríamos.
Resumindo, aqui estão os pontos que identifiquei para criar uma estratégia de adoção de sucesso:
Esta abordagem já esta em uso, trabalhando para melhorar a adoção de TDD dentro de uma grande empresa.
Agradecimentos para Lasse Koskela, Nat Pryce, Dave Nicolette e Dave Rooney por cederem seu tempo para revisar os esboços deste artigo.
[1] Para os propósitos deste artigo, TDD é o habito de escrever os testes antes de codificar e trabalhar em pequenos incrementos. E não produzir um grande número de testes Unitários após o código estiver escrito.
[2] http://tech.groups.yahoo.com/group/testdrivendevelopment/message/29461
[3] Produção atual irá cair - ex. o numero de estórias entregues em uma iteração irá reduzir. Entretanto uma vez que a qualidade irá melhorar logo após o inicio desta prática a queda não irá ser percebida.
Mark Levison
é consultor principal na Pure Agile Consulting, uma empresa de consultoria Agile e Lean que foca em ajudar seus clientes a entregar software funcional a cada duas semanas. Mark tem sido um praticante de Agile desde 2001, introduzindo uma prática de métodos Ágeis por vez em um time pequeno. Nos últimos três anos, como funcionário de uma grande ISV, ele esta sendo responsável por introduzir Scrum na empresa e fazer coaching em um número de times – incluindo o design de uma estratégia de Test Driven Development e a introdução de um número de práticas para suportar isto. Mark é Editor Agile na InfoQ e tem escrito dezenas de artigos sobre o tópico Agile. Ele também publica um blog – Notes from a Tool User. Quando não está em frente a um computador, Mark passa seu tempo com sua esposa e duas filhas.
A nota de número [3] a meu ver não é boa. Ela explica que haverá uma queda inicial mas que a velocidade logo será reestabelecida. Não acho que isso seja verdade. Pelo menos não foi assim aqui na empresa. Até que TDD entre no sangue e que as pessoas achem natural fazê-lo, isso leva um bom tempo. Quanto pedimos aqui na empresa que as pessoas fizessem TDD, elas logo abandonaram a prática por conta das pressões. Atenção: estou dizendo que elas abandonaram TDD, não testes unitários. Continuamos com a regra de 100% de cobertura. Ou seja, continuávamos escrevendo bom código, coberto por testes, mas não utilizávamos TDD (testes antes do código). Aqui todos foram unânimes em dizer que achavam que inicialmente se produz mais rápido sem TDD. A meu ver, a promessa da técnica é a de ser mais rápido fazendo TDD que não fazendo (neste caso, de "não fazendo", com 100% de cobertura, como já disse). Como acreditamos nisso, em que com TDD é mais rápido, mas só depois de se estar fera em TDD, resolvemos fazer da seguinte forma, para não impactar tanto na velocidade no princípio: numa parte do esforço da iteração é obrigatório fazer TDD. Pode ser um determinado horário do dia, pode ser uma quantidade determinada de turnos por semana, pode ser uma determinada quantidade de histórias por semana. À medida que a equipe for se familiarizando melhor com a técnica, aumentamos gradativamente essa parte do esforço, até que as pessoas estejam fazendo o tempo todo.
Só uma coisinha: o artigo é excelente. A única crítica que faço é em relação à nota [3].
O Business Model Canvas é uma ferramenta estratégica para a construção visual de novos produtos ou serviços. Conheça cada um dos seus elementos e como preencher o Canvas, passo a passo.
Nessa segunda e última parte de uma série sobre o Google Apps Script, conheça como funciona o envio de emails, a conversão de documentos e como criar menus e triggers.
Este artigo avalia seis dos mais importantes fornecedores de serviços de cloud computing PaaS para desenvolvedores Java, analisando critérios como desempenho, escalabilidade e tecnologias suportadas.
O Canvas de Modelo de Negócios é um novo modo de comunicar e suportar a validação iterativa, incremental e empírica de modelos de negócio de startups e novos produtos substituindo o plano de negócios.
Nesta segunda e última parte de uma entrevista exclusiva para InfoQ Brasil, Rebecca Parsons, CTO da ThoughtWorks, fala sobre o Agile Distribuído e técnicas para definição de arquiteturas.
Nessa primeira parte de uma entrevista com a CTO da ThoughtWorks, veja recomendações sobre formas de construir e arquitetar sistemas para obter o máximo de flexibilidade e responsividade a mudanças.
Os gerentes de projetos podem assumir o papel crítico de liderar a introdução do Agile. Vejas conceitos, dicas e técnicas para apoiar esse processo de mudanças.
A monitoração dos indicadores da saúde de um projeto ganham interpretações e prioridades diferentes nos projetos ágeis, que focam em transparência, visibilidade, simplicidade e medidas quantitativas.
2 comentários
Acompanhar Discussão Responder