Palestra sobre TDD na Faesa
Na segunda-feira passada (21/09) fiz uma apresentação sobre TDD para uma turma da Faesa.
O objetivo da palestra foi apresentar a metodologia ágil e o desenvolvimento orientado a testes. Como tive pouco tempo não pude aprofundar em técnicas de aplicação, mas acredito que os valores da metodologia e o conceito geral do TDD foram entendidos.
Fiz um resumo da apresentação feita pelo Fabrício Matos, vou disponibilizar aqui o resumo e a versão original:
Separei alguns links sobre TDD:
Test-driven development
http://en.wikipedia.org/wiki/Test-driven_development
Introdução ao desenvolvimento orientado a testes (TDD)
http://dojofloripa.wordpress.com/2006/11/07/introducao-ao-desenvolvimento-orientado-a-testes/
Desenvolvendo orientado a testes
http://www.improveit.com.br/xp/praticas/tdd
Quais os benefícios de usar TDD?
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=10025
Test Driven Development & Design Evolutivo
http://www.fratech.net/comunidade/exibir/48
Esse post é o primeiro de uma série de artigos que vou escrever sobre TDD e outras metodologias.
Abraços!
LINQ to Entities e Entity Framework
Seguem alguns artigos interessantes sobre o assunto:
Apresentando LINQ to Entities (Entity Framework)
http://www.macoratti.net/08/09/lnq_ent1.htm
Introdução ao ADO.NET Entity Framework
http://www.linhadecodigo.com.br/Artigo.aspx?id=1834
ADO .NET Entity Framework – Usando LINQ to Entities
http://www.macoratti.net/08/10/adn_lnqe.htm
Melhorias ao Entity Framework 4.0
http://pontonetpt.com/blogs/nunogodinho/archive/2009/08/06/improvements-in-entity-framework-4-0-pt-en.aspx
Abraços!
LINQ e LINQ to SQL
Pra quem não conhece LINQ e o LINQ to Sql seguem alguns artigos interessantes sobre o assunto:
O Projeto LINQ
http://msdn.microsoft.com/pt-br/library/bb308959.aspx
Apresentando LINQ – Language Integrated Query
http://www.macoratti.net/07/12/net_linq.htm
Apresentando LINQ To SQL
http://www.macoratti.net/07/12/vbn5_lqs.htm
Introdução LINQ to SQL
http://imasters.uol.com.br/artigo/7156/bancodedados/introducao_linq_to_sql/
Usando LINQ To SQL
http://www.macoratti.net/07/12/vbn8_lq1.htm
Linq to Sql (REST IN PEACE?)
http://alcateiadigital.blogspot.com/2009/03/linq-to-sql-rest-in-peace.html
LINQ to SQL – 5 Minute Overview
http://www.hookedonlinq.com/LINQtoSQL5MinuteOverview.ashx
Abraços!
ASP.NET
Seguem alguns links interessantes para quem está iniciando os estudos em ASP.NET.
Definição do ASP.NET
http://pt.wikipedia.org/wiki/ASP.NET
Site Oficial
http://www.asp.net/
Iniciando em .NET
http://forum.wmonline.com.br/index.php?showtopic=160558
Centro de desenvolvimento de ASP.NET
http://msdn.microsoft.com/pt-br/asp.net/default.aspx
Desenvolvendo para Web
http://www.desenvolvendoparaweb.net/
Codificando.net
http://comunidade.codificando.net/
w3schools
http://www.w3schools.com/ASPNET/default.asp
Júlio Battisti
http://www.juliobattisti.com.br/tutoriais/
Israel Aece
http://www.israelaece.com/
Macoratti
http://www.macoratti.net/
Imasters
http://imasters.uol.com.br/secao/aspnet/
Abraços!
Scrum (recomendações de leitura)
Esse foi o primeiro dia sem inspiração pra escrever :(. Então aproveito para iniciar uma idéia que tive semana passada que é criar posts com recomendações de leituras, vale a pena conferir:
Scrum em menos de 10 minutos
http://blog.tucaz.net/2009/01/16/video-scrum-em-menos-de-10-minutos/
Scrum na Globo.com
http://www.fernandocosta.com.br/2008/12/05/scrum-na-globocom/
Metodologias Ágeis no Estilo Dr House
http://www.fernandocosta.com.br/2009/09/08/metodologias-ageis-no-estilo-dr-house/
Times Scrum trabalhando em vários projetos ao mesmo tempo?
http://gc.blog.br/2008/07/29/times-scrum-trabalhando-em-varios-projetos-ao-mesmo-tempo/
Scrum e CMMi
http://blog.bardusco.com/2008/05/26/scrum-cmmi/
Abraços!
Qual o perfil profissional que a metodologia ágil precisa?
Depois que Agile se tornou a palavra do momento muitas pessoas foram em busca de entender os acrônimos do meio como TDD e BDD. Mas o importante na metodologia ágil não é a linguagem, técnica ou ferramenta adotada, o importante é que a pessoa que utilizará a metodologia tenha o perfil adequado para ela.
Depois de algumas experiências levantei algumas características que considero ideais para os profissionais ágeis (profissionais que usam a metodologia ágil), são elas:
Experiência
Não acredito que seja necessária muita experiência profissional, mas a beleza da metodologia ágil é que ela resolve os problemas que tínhamos no modelo tradicional de desenvolvimento, ou seja, alguém que nunca trabalhou na vida com cascata dificilmente irá entender os por quês da metodologia ágil. Não é necessária muita experiência, mas é desejado que o profissional já tenha trabalhado em alguns projetos.
Ter os valores do manifesto ágil
Se o profissional não entender e acreditar nos valores do manifesto ágil de nada vai valer sua participação na equipe. Essa metodologia não funciona por imposição. O profissional deve ter os valores antes das técnicas.
Comprometimento
Todos os integrantes da equipe devem estar comprometidos com o projeto, ou seja, fazendo tudo que for possível para que o projeto seja entregue no prazo e com qualidade. Não existe horário ou cargo, objetivo principal tem que ser alcançado.
Boa comunicação
Em equipes ágeis a comunicação é constante, todos os membros da equipe devem estar informados sobre tudo que está acontecendo no projeto, mesmo que não seja sua área de especialidade.
Várias técnicas usadas na metodologia ágil exigem boa comunicação, pessoas introspectivas podem encontrar dificuldades nas cerimônias do Scrum, por exemplo.
Desapego a funções
O profissional ágil faz o que o projeto precisa, mesmo que essa não seja sua “função” definida. É claro que todo profissional tem suas especialidades e em equipes ágeis isso não é diferente, porém, você não ouve da boca de um profissional ágil a frase: “Não fui contratado pra isso” ou “Essa não é minha função”.
Busca contínua por conhecimento
Essa deveria ser uma característica de todos os profissionais de TI, mas é imprescindível em profissionais ágeis. O profissional ágil está sempre buscando melhorar suas técnicas e revendo seus valores.
Organização e autogerenciamento
Um profissional ágil deve ser capaz de organizar suas tarefas e seu tempo, buscando sempre cumprir suas metas diárias. Este tipo de profissional não é dependente da figura de um gerente.
Bom ambiente de trabalho
Remuneração, geralmente, não é o fator crítico de permanência desse tipo de profissional na equipe. O ambiente, os projetos e as pessoas envolvidas são os fatores que mais motivam esse perfil.
Esse tipo de profissional busca qualidade de vida, e é claro que ele tem que receber uma remuneração que permita que ele tenha essa qualidade, afinal de contas, quantos profissionais vocês conhecem que atendem a todas as características que citei?
Espero com esse artigo ter mostrado que não é qualquer perfil de profissional que funciona em metodologias ágeis. Se você é um gestor deve direcionar o perfil desejado corretamente no seu processo de recrutamento, pois tudo começa com as pessoas.
Aguardo feedbacks!
Abraços!
Artigos relacionados:
Pedindo feedback à colegas de trabalho
O que vale mais, experiência profissional ou faculdade?
Fuzileiros contra Mercenários
O objetivo desse texto é causar uma reflexão sobre os perfis de profissionais de TI usando uma metáfora simples mas impactante. Não é objetivo desse texto discutir qual o melhor perfil, mas sim onde cada um melhor se aplica.
Antes de qualquer coisa é importante destacar que todos nós temos ambos os perfis, mas não na mesma proporção. É fato que o perfil que se destaca pode mudar de acordo com o momento que estamos na vida.
Mercenários são aqueles que têm como o objetivo principal da sua atividade o dinheiro, sendo que a atividade em si não tem muita relevância, seja qual for a missão, gostando ou não, o retorno financeiro é a principal medida.
Fuzileiros são aqueles que têm como objetivo principal cumprir sua missão, sendo o dinheiro como um efeito colateral do bom serviço prestado.
Importante aqui é a visão de que não existe perfil certo ou errado, ambos os perfis são necessários para o mercado, o problema que vejo é que nem sempre as pessoas são alocadas de acordo com o seu perfil, o que causa um enorme problema em projetos de software.
Na minha humilde e sincera opinião a metodologia que você usurá no projeto que vai determinar o tipo de perfil que você precisa na equipe. Se as atividades são críticas e precisam de pessoas comprometidas, fuzileiros são a escolha ideal, já se você acha que o seu processo garante a qualidade e o executor não é de suma importância os mercenários vão te atender bem.
Seja qual for o seu papel no mercado, é importante estar alocado corretamente. Vejo projetos fadados ao fracasso desde o início pela escolha equivocada dos membros da equipe, é necessário entender que são as pessoas selecionadas que vão tocar o projeto, e substituir essas pessoas sai mais caro do que investir mais em recrutamento.
Abraços!
Clientes não são clientes, são parceiros!
O objetivo desse texto é direcionar uma linha de pensamento que acredito ser ideal em contratações de serviço de TI, onde o mais importante é ajudar o cliente e não fazer o que você foi contratado para fazer.
Quantas vezes nos deparamos com a situação onde o cliente solicita que façamos algo que não é a melhor solução (ou solução mais viável) e temos que convencer o mesmo que aquele não é o melhor caminho? Aí eu pergunto, sabemos realmente qual é o melhor caminho?
Dificilmente o cliente irá discutir fatores técnicos com a gente mas quando se trata de negócio saber ouvir os argumentos do cliente é a melhor saída. Trabalhei algum tempo em empresas onde vi pessoas criticando pedidos dos clientes e reclamando muito, aí eu penso, se você não conseguiu convencer que a sua idéia era melhor, talvez precise melhorar seu poder de persuasão ou sua idéia não é tão boa assim. Independente do problema, aceitar uma solução sabendo que ela é errada é antiético.
Parceria não é concordar sempre, ser parceiro do seu cliente implica em sempre mostrar o melhor caminho com argumentos válidos se preocupando mais com o impacto da idéia no negócio dele do que no seu. Não é dar uma idéia pensando em vender um serviço, é dar uma idéia pensando em ajudar no serviço do cliente.
Parceria não é fazer o que o cliente quer, é fazer o que ele realmente precisa, mesmo que isso seja sinônimo de recusar projetos.
Parceria com o cliente não é só compartilhar os momentos de sucesso, é ajudar a apagar incêndios deixando a cobrança de horas extras e renegociações de contratos para o momento certo.
Não é só chamar o cliente de parceiro, é realmente acreditar na parceria e pensar que o crescimento do seu cliente é o seu crescimento também.
Clientes não são só portfólio, são empresas em que você fez a diferença e quando elas forem pensar na história da empresa perceberão que existe uma linha que divide antes e depois da sua prestação de serviços.
Algumas pessoas podem achar esse texto apaixonado e que essa minha visão não é comercial porém, comigo sempre funcionou e eu nunca sai para vender um projeto, indicações são a melhor forma de venda.
Abraços!
Para complementar esse texto veja também: