Palestra sobre TDD na Faesa

29 de setembro de 2009 2 comentários

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

29 de setembro de 2009 Comentários desligados

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

29 de setembro de 2009 Comentários desligados

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

29 de setembro de 2009 Comentários desligados

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!

Sou o melhor técnico e agora virei gerente!

16 de setembro de 2009 1 comentário

Esse texto é uma reflexão sobre como as pessoas são direcionadas pela sociedade para escolher os rumos de suas carreiras.

Quando olho minha formação vejo que os professores sempre orientavam: “Você tem que estudar pra ter um bom emprego!”. Então eu pergunto: Não posso ser empresário? Não posso ser autônomo? Bom emprego é aquele que paga mais ou o que?

A sociedade impõe uma série de regras que impedem que os profissionais façam suas próprias escolhas. Onde está escrito que sendo um ótimo programador eu estou apto a ser gerente de projetos? A palavra gerente tem um peso maior na sociedade do que a palavra programador. Qual dos dois cargos você acha que sua mãe vai ficar mais orgulhosa?

O cargo de gerência de projetos exige uma séria de habilidades que não são pré-requisitos para cargos técnicos. Promover um técnico da empresa pode causar a perda de um ótimo profissional e aquisição de um péssimo gerente. A questão é que quando a oportunidade surge o profissional pensa no dinheiro ou na sociedade e acaba não avaliando se aquilo é o melhor pra ele. Um técnico muitas vezes tem um papel mais importante que o gerente em um projeto de software.

Uma equipe de desenvolvimento é formada pela junção de especialidades. Não existe papel mais ou menos importante, todos são necessários. Se o profissional agrega mais ao time sendo um programador por que ele tem que ser alocado como gerente? Muitos responderiam por dinheiro, mais se a empresa só fornece esse caminho de crescimento salarial ela não sabe como trabalhar a área de TI.

Ser um profissional bem sucedido não é uma receita de bolo. Cada profissional tem que avaliar seus ideais e necessidades a fim de estabelecer uma meta de onde quer chegar. Gerência não é sinônimo de sucesso assim como dinheiro não é sinônimo de felicidade.

Eu busco fazer o meu melhor na área que eu gosto. Não sou bem sucedido porque ainda não cheguei onde eu quero mas, estou correndo atrás. Essa é minha visão, qual é a sua?

Abraços!

Scrum (recomendações de leitura)

15 de setembro de 2009 Comentários desligados

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?

14 de setembro de 2009 3 comentários

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:

Fuzileiros contra Mercenários

Pedindo feedback à colegas de trabalho

O que vale mais, experiência profissional ou faculdade?

Profissionais de TI pioram com o tempo

Você tem metas diárias no seu trabalho?

Fuzileiros contra Mercenários

11 de setembro de 2009 Comentários desligados

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!

10 de setembro de 2009 1 comentário

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:

Comunicação com o cliente

Você tem metas diárias no seu trabalho?

9 de setembro de 2009 Comentários desligados

O objetivo desse post é mostrar como é simples atrasar um projeto.

Quer saber quem não trabalha na sua equipe? Repare quem dá alt + tab quando o gerente do projeto entra na sala.

É sempre a mesma coisa, as pessoas empurram as metas com a barriga até o prazo apertar e depois querem correr atrás do prejuízo, e o pior, se você não entra na maratona do final de semana é tachado de emprestável.

Fazendo uma metáfora simples, se você malhar todos os dias uma hora por dia, terá um resultado no final do mês, já se você malhar 24 horas em um único dia você irá parar no hospital.

Um projeto atrasa 100 dias um dia de cada vez, se todos os membros da equipe cumprirem suas metas diárias tudo fluirá bem, e se alguém não cumprir só estará um dia atrasado.

Bom, essa é a idéia que uso pra organizar minha vida e profissão, metas curtas e diárias.

Qual sua meta de hoje?

Bom, vou lá tentar cumprir minha meta do dia, ser atendido pela Oi, eu sei, é difícil, mais vou tentar mesmo assim.

Abraços!