"Nada na vida é completamente errado. Até um relógio quebrado, duas vezes ao dia está marcando a hora certa."

counterstrikeOlá Pessoal! Não escondo que sou “meio” viciado em quadrinhos, games, filmes, etc. Pois bem, depois de algum tempo parado decidi voltar a jogar um dos games mais viciantes da minha adolescência: O Counter-Strike. Voltei a jogar somente para dar uma surra no pessoal do escritório (@hrosko e @andrepiresmct), mas acabei deixando-o instalado e jogando eventualmente.

Apensar das coisas não terem muito a ver uma com a outra, comecei a traçar uma linha entre Counter-Strike e Desenvolvimento de Software, uma espécie de “boas práticas” comuns para ambos. Pensei muito antes de escrever esse post, depois desencanei e vi que o máximo que pode acontecer é que essas dicas ajudem vocês a desenvolver melhor ou a jogar melhor, então vamos lá:

Não adianta ser estrela em time que está perdendo: Mesmo com o melhor jogador no seu time, não há garantias de que o mesmo será campeão. É muito mais efetivo ter membros de nível mediano e bem entrosados em um time do que ter várias “estrelas” jogando no estilo cada um por si.

Evite ser herói: Quando damos de cara com vários membros do time adversário, a melhor estratégia é “correr”. Correndo você poderá enfrentar cada adversário separadamente. Alguns desenvolvedores/times trabalham com várias estórias em simultâneo, o que dá uma falsa impressão de produtividade. Quando falamos em requisitos, a melhor estratégia também é dividir para conquistar, ou seja, ao invés de “atacar” várias ao mesmo tempo, podemos atacá-las uma de cada vez (Imagine todo o time atirando em um único membro do time adversário :) ).

90% não é 100%: É sempre melhor tirar 100% de um adversário do que 70% de dois. Um adversário com 1% de life ainda atira, e com ajuda da Lei de Murphy ele pode levar vários membros do time antes de morrer.  Em uma Sprint temos que nos concentrar em terminar cada estória antes de passar para próxima, assim, ao final da Sprint mesmo que não tenhamos concluído todas as estórias teremos algumas concluídas ao invés de todas em 90% (e nada efetivo para entregar).

Ao final de um round, devemos nos preparar para o próximo: Fases rápidas não habilitam a compra de itens no início do round, porém, ao final podemos ir a pontos específicos do mapa e comprar coletes e granadas. Estar preparado no início de uma Sprint pode fazer tanta diferença quanto lançar uma granada no início do round, mas, afinal de contas o que seria estar preparado? Poderia ser a obtenção de um conhecimento específico que adiantaria todos os requisitos em 50% de todas as estórias por exemplo.

Ser efetivo e econômico traz grandes vantagens: Se você pode acabar com um adversário com uma única bala (Headshot), por que usar 10? Quanto menos balas você gastar menos terá que recarregar durante o round, o que pode salvar sua vida. Ninguém começa no CS conseguindo 100% de Headshots, esse número vai crescendo com o tempo e experiência (pelo menos com os jogadores normais). Na área de desenvolvimento, ninguém nasce extremamente produtivo, porém, é nossa obrigação buscar aumentar a produtividade através de novos conhecimentos e/ou novas ferramentas.

Quem fica parado morre: Preciso argumentar? :)

Adaptabilidade é crucial: Você pode ter sua arma predileta, mas ela pode não ser a mais efetiva em algumas fases ou em algumas situações. Na área de desenvolvimento temos cada desenvolvedor tem sua ferramenta preferida, pode ser um linguagem, um framework, uma IDE, etc. O ideal no ramo de desenvolvimento é não ficar preso as coisas somente pela predileção, mas sim pela sua efetividade no contexto em que será aplicada.

Poderia enumerar aqui várias outras práticas que ajudam em ambas as partes, mas prefiro deixar vocês pensarem no assunto e quem sabe compartilharem aqui os seus pensamentos.

Para variar, vou jogar um pouquinho.

Abraços!

Tagged with:
 
Faça da pedra de tropeço, um degrau de subida. Transforme cada fato negativo, em uma experiência positiva. - "Bruce Lee"

Nessa semana realizamos o II Fórum para Gerentes de Sistemas na Mindworks em Vitória-ES. Realizamos a primeira versão do evento no mês passado a pedido da própria Microsoft, e depois de uma série de pedidos para realização de uma segunda versão, decidimos organizar um evento semelhante, porém, voltado para a comunidade local.

Acredito que a segunda versão do evento ficou ainda melhor que a primeira. Mudamos algumas abordagens, inserimos alguns assuntos importantes e procuramos trabalhar de uma forma dinâmica e interativa com os participantes. Vou relatar agora um pouco do que aconteceu no evento:

.NET 4.0 e Visual Studio 2010

Nesse evento procuramos apresentar todos os recursos do Framework .NET desde a sua primeira versão lançada em 2003. O objetivo principal dessa parte do evento foi mostrar a maturidade da plataforma e como a mesma vem sendo melhorada de forma contínua e incremental (desde sua versão 2.0).

Como a idéia era fazer uma espécie de túnel do tempo das tecnologias Microsoft, procuramos abordar desde as características mais básicas da versão 2.0 do framework até as novidades mais quentes da versão 4.0 (versão mais atual).

Depois do apanhado histórico sobre o framework, fizemos algumas demonstrações das ferramentas de arquitetura do Visual Studio 2010, tais como: Gráfico de Dependências e Diagrama de camadas.

É impressionante perceber o mundo de ferramentas que temos à disposição no Framework .NET, e essa foi a idéia dessa apresentação, mostrar o poder que temos nas mãos utilizando essa plataforma.

Scrum e Agilidade

O André Pires apresentou o Scrum de uma forma muito interativa e dinâmica. Visitamos os conceitos do Scrum, seus papéis, artefatos, regras, cerimônias e recomendações. Acredito que todos os participantes tiveram uma visão bem clara do framework.

Gosto muito de discutir sobre Agile e Scrum. Apesar de não ser o palestrante desse tema, foi muito rico só ouvir os questionamentos feitos pelos gerentes de projetos que estavam presentes. O André apresentou com maestria o tema discorrendo sobre as grandes dúvidas e questionamentos dos gerentes de projeto tradicionais ao mundo ágil.

A apresentação terminou com uma dinâmica que exemplificava a utilização do Scrum. Os participantes tinham que atingir um objetivo específico em um tempo limite. O bacana é que o PO (André) passava pelas equipes gerando pequenos impedimentos e interferindo nos trabalhos, o que gerou fortes reações pela parte de alguns ScrumMasters. :)

Volto a destacar que, apesar de entender do tema, nada paga a troca de experiências que temos com os participantes do evento.

Técnicas de engenharia de software e TDD

Diferente da versão anterior desse evento, abordamos a importância da orientação a objetos e das técnicas de engenharia em projetos de software que usem processos interativos e incrementais na produção.

Fizemos algumas reflexões sobre qualidade de software e discutimos como é importante utilizar técnicas para construir o projeto que façam com que o custo de evolução não seja discrepante do custo de produção. Afinal de contas, em processos iterativos estamos sempre evoluindo o projeto.

Aprofundamos alguns conceitos que o André havia citado na palestra sobre Scrum. Falamos sobre POO, Design Patterns, CI, ORMs (Entity Framework e NHibernate), Programação em par, Testes unitários, DDD e TDD. Foi muito legal apresentar uma visão geral sobre esses assuntos que estão em alta nas listas de discussão mais ativas.

Finalmente, apresentamos o TDD de uma forma resumida como primeira prática a ser adotada dentre todas as práticas que havíamos discutido nessa etapa do evento.

O objetivo principal dessa parte do evento foi mostrar aos participantes que investir nas disciplinas apresentadas é um investimento tão importante quanto o investimento feito no aprendizado das tecnologias (ou mais).

Fotos do evento

Estamos preparando muitas novidades para o próximo evento, fiquem ligados!

Abraços!

Tagged with:
 

Mercado e Carreira em Desenvolvimento de Software

"Otimismo é a fé que conduz ao sucesso." - Bruce Lee

A pedido do Prof. Lourival Cristofoletti apresentei para uma turma e Ciência da Computação na Faculdade Faesa dicas sobre o mercado e a carreira de desenvolvimento de software. Essa palestra já foi há algum tempo, mas estava organizando as apresentações no meu computador e esbarrei com essa palestra.

Engraçado como as coisas acontecem, olhando as fotos da palestra vejo que um dos coordenadores do MSDev-ES e atual membro do time de desenvolvimento da Mindworks estava lá, o Rafael Hrasko. A foto também mostra o ponto onde iniciei algumas boas amizades, afinal, ainda sou formando na Faesa.

A idéia da palestra surgiu a partir de algumas conversas com o Prof. Lourival, que sempre foca nas suas aulas em dicas sobre a carreira e no desenvolvimento profissional dos alunos. Fiquei muito feliz com a confiança depositada em mim pelo Prof. Lourival, afinal de contas, não sou tão mais velho do que os alunos daquela turma, só iniciei na área mais cedo. Depois dessa palestra, decidi escrever algumas idéias sobre Mercado e Carreira, e ingressei no time de colaboradores do Portal Minha Carreira.

Decidi gravar a palestra no formato de screencast e disponibilizá-la aqui no entuito de ajudar quem estiver começando nessa área da qual me orgulho tanto trabalhar. Espero que gostem. Aguardo o Feedback de vocês.

Screencast

Fotos

Apresentação

Tagged with:
 
"Meus seguidores em Jeet Kune Do, atendem a isso: todas as normas fixas são incapazes de adaptabilidade ou flexibilidade; a verdade está fora de todas as normas fixas." - Bruce Lee

No dia 16/06 tive a oportunidade e a honra de palestrar na faculdade UNES em Cachoeiro-ES. O Evento foi organizado pelo MIC e marcou a inauguração do mais novo prédio da faculdade. A minha palestra representou a comunidade de desenvolvedores capixabas, o MSDev-ES. A segunda palestra foi realizada pelo Cleyton Santana do grupo MSInfraES.

Falar para pessoas que estão iniciando na área de desenvolvimento de software é uma extrema responsabilidade, por isso, ao invés de falar somente sobre TDD procurei mostrar alguns problemas da área e boas práticas através do case do meu primeiro projeto de software relevante (tinha 17 ou 18). Esse projeto foi realmente traumático, porém, definiu muitos dos meus paradigmas atuais sobre a carreira e o desenvolvimento de software em geral.

Troquei muitas informações com os profissionais locais após a minha palestra, fizemos tanto networking que acabei nem assistindo a segunda palestra do evento. Outro ponto relevante é que muitas pessoas que estavam lá tinham comparecido ao Maré-VIX, evento que organizei no CET-Faesa poucos dias antes.

Fotos

Slides da apresentação

Espero que os presentes tenham gostado do evento assim como eu gostei. Agradeço ao MIC e a UNES pela oportunidade e pela confiança.

Abraços!

Tagged with:
 

I Fórum Microsoft para Gerentes de Sistemas em Vitória-ES

"A tradição nada mais é que uma fórmula imposta pela experiência anterior... mudem, precisamos reformular nossa fórmula!" - Bruce Lee

Na quarta-feira (14/07) tivemos o I Fórum Microsoft para Gerente de Sistemas em Vitória-ES. O evento foi realizado pela Mindworks a convite da Microsoft, e a equipe de desenvolvimento entrou em cena para apresentar as novidades do Visual Studio 2010, Scrum, TDD, Ferramentas de qualidade do VS2010 e por fim, o TFS.

Foi uma imensa responsabilidade apresentar novas ferramentas e principalmente novas idéias em desenvolvimento de software para representantes das empresas do mercado capixaba e para os desenvolvedores presentes. Vejam como foi cada parte do evento:

Novidades do Visual Studio 2010

Abri o evento apresentando as novidades do Visual Studio 2010, e não tinha como não ficar empolgado com tanta coisa boa! Queria mostrar exemplos de tudo, mas não havia tempo, e ainda assim atrasei “um pouco” a minha palestra para apresentar todos os recursos que tinha preparado. Alguns tópicos abordados:

  • IntelliTrace
  • Gráfico de dependências
  • Diagrama de camadas
  • Ferramentas para Deploy
  • Novidades do C# 4.0
  • Novidades do ASP.NET 4.0
  • Code Analysis
  • Performance Analysis
  • Biblioteca para Paralelismo
  • Novidades no desenvolvimento para SharePoint

Ao final da apresentação, quem já gostava do Visual Studio passou a gostar mais, e quem não conhecia viu o poder dessa IDE.

Scrum e Desenvolvimento Ágil

O André Pires apresentou muito bem a metodologia ágil e seus princípios.  Como de costume, a palestra dele foi muito interativa e divertida. Discutimos muito com os representantes do mercado e do governo o cenário atual dos nossos projetos de software e por que precisamos adotar novas estratégias se quisermos melhorar nossas estatísticas de sucesso.

Essa palestra foi praticamente em dupla, pois o André sempre solicitava relatos de experiências e complementações da minha parte. Aproveitei para explicar a importância do trabalho iterativo e por que projetos de software são tão difíceis de serem estimados.

Gosto muito do assunto e das discussões que rolam, mas a impressão que tive é que todos os presentes concordaram que a forma de trabalho que estávamos apresentando possuía práticas que facilitariam o desenvolvimento como um todo.

TDD e Ferramentas de garantia da qualidade no Visual Studio 2010

Tenho falado muito sobre TDD aqui em Vitória. Por questões de tempo, procurei não apresentar todas as dicas que geralmente dou e mostrar um exemplo prático de aplicação do TDD, uma espécie de TDD para iniciantes.

A segunda parte da palestra foi dedicada as ferramentas de Teste do Visual Studio. Gosto muito dessas ferramentas, a Microsoft acertou mais uma vez, apesar de ainda acreditar que eles podem melhorar a biblioteca Microsoft.VisualStudio.TestTools.UnitTesting para dar mais poder e semântica aos testes unitários.

TFS

Só o TFS daria um evento inteiro. O André apresentou a utilização do template Scrum e mais uma série de recursos do TFS, os presentes realmente ficaram impressionados com o nível de integração e as facilidades que os recursos apresentados geram para a equipe.

Fotos do evento

Apesar do trabalho que dá, não vejo a hora do próximo evento. :)

Agradeço a todos os presentes e a Mindworks pela oportunidade.

Abraços!

Tagged with:
 

[OFF-TOPIC] Uniempreendedor 2009

DSC02588

O Concurso

No início do semestre passado eu iniciava a disciplina de empreendedorismo na Faesa. Passei boa parte do curso de sistemas de informação esperando por essa disciplina e as reflexões que ela causaria, porém, não imaginei que ela ofereceria a grande oportunidade de participar do Uniempreendedor, o concurso que é organizado anualmente pela Tecvitória para avaliar o potencial empreendedor do estudante.

O objetivo do concurso é avaliar dentre os projetos submetidos, qual tem a maior chance de gerar bons resultados como produto ou serviço. A faculdade seleciona os melhores projetos e envia para Tecvitória que, por sua vez, realiza uma série de avaliações até que os projetos restantes sejam apresentados para uma banca avaliadora que definirá o resultado do concurso.

A Oportunidade

Em paralelo à disciplina de empreendedorismo, o Sr. Uilton Campos e Eu estávamos preparando nosso TCC. Quem já passou por essa etapa da vida sabe o esforço necessário para conclusão desse trabalho e, como nosso projeto possui uma complexidade considerável, tínhamos mais trabalho que o normal.

Quando o professor divulgou o concurso em sala de aula, não pensei duas vezes, marquei uma reunião e apresentei o projeto com todos os argumentos que eu tinha na manga. Ao final, não existiam razões para que o mesmo não concorresse.

O poder de persuasão foi exaustivamente testado pois, além de convencer o professor que projeto era viável sem possuir um protótipo, também era necessário convencer Uilton, devido ao fato de já estarmos totalmente sem tempo, graças ao TCC.

Uma das principais características do empreendedor é acreditar na sua idéia e conseguir fazer com que as pessoas que estão ao seu redor também acreditem ao ponto de quererem ajudá-lo. Na minha opinião, essa característica definiu essa etapa.

A Faesa selecionou dois projetos para o concurso: O Velloz (nosso projeto) e um Jogo on-line desenvolvido por Rafael Hrasko.

O Desenvolvimento do projeto

A proposta que foi submetida inicialmente era muito simples. Era bascimente uma visão geral do projeto.

Quando chegamos à segunda fase do concurso, fomos premiados com um curso para análise de viabilidade técnica e financeira de projetos. O curso foi ministrado por Douglas Chamon, que, atendendo às minhas preces, é formado em economia e não em marketing.

O curso foi muito produtivo. Ganhamos argumentos para provar a viabilidade dos projetos de uma forma que não conhecíamos. Foi também nessa fase que conhecemos melhor os projetos concorrentes.

Todo dia após o curso tínhamos uma missão: Melhorar o nosso plano de negócios. Era muito trabalho para pouco tempo pois, logo ao final do curso, já tínhamos que entregar o documento. Uilton e Eu passamos o final de semana na Qualidata (empresa que ele trabalha) confeccionando o documento. Eu não agüentava mais olhar para ele e vice-versa. Foi extremamente cansativo.

O documento tinha que apresentar os detalhes da execução do projeto. Só as equipes que persistiram chegaram ao final dessa fase, pois algumas pessoas perceberam durante o curso que seus projetos não eram viáveis. Foi necessária muita força de vontade para concluir essa etapa.

O pior entrave dessa fase foi separar o que era plano de negócios do que era TCC. Como estávamos desenvolvendo os dois ao mesmo tempo, em alguns momentos nossas mentes não faziam essa distinção.

A experiência de escrita foi muito rica e muito cansativa. Basicamente tínhamos sempre que dizer indiretamente as coisas, de forma responsável e com as respectivas fontes. O documento ficou muito bom (avaliação pessoal) e até hoje, o tenho como referência para elaboração de documentos semelhantes.

A Defesa do projeto

DSC01997Depois de ouvir todo tipo de rumores sobre a banca de avaliação, fiquei extremamente preocupado com os questionamentos que seriam feitos. O que aumentou minha insegurança foi que na mesma época eu havia realizado uma palestra, na qual não obtive um bom desempenho. Sendo assim, fora a pressão da avaliação, eu estava de moral baixa.

Devido à importância da defesa do projeto, passei o final de semana ensaiando cada parte da apresentação. Sempre me preparei para dar aulas, palestras ou dissertar sobre qualquer assunto em público, mas como estava de consciência pesada devido à minha última performance, não podia errar duas vezes consecutivamente. Até hoje me pergunto se o resultado do concurso seria diferente se eu não tivesse me preparado tanto para a defesa do projeto.

Quando chegamos para apresentação, outra equipe estava apresentando e por sinal sendo muito criticada (o que não quer dizer nada). Entramos, apresentamos o projeto e ao final da apresentação, ocorreu um silêncio na sala. Não sabíamos se o silêncio era bom ou ruim, mas foram alguns segundos de tensão.

A banca elogiou muito a apresentação e o projeto, mas o negócio que estávamos propondo era consultoria, e esse não era o melhor modelo de negócio para o concurso, pois não era tão escalável quanto os outros modelos de negócio. Saí de lá com a sensação de missão cumprida e com minha moral de volta, mas não esqueço a lição da preparação e ensaio, sempre.

O Resultado

Duas semanas após a apresentação o resultado foi divulgado: Ficamos em terceiro lugar. O projeto que ganhou foi o que estava sendo criticado pela banca quando chegamos para a apresentação.

Não gostei de ter ficado em terceiro lugar, mas entendi o motivo. Os outros projetos eram realmente bons e conseguiam ser escalados mais facilmente. Isso definiu o resultado do concurso.

O Prêmio

Fizemos uma viagem à São Paulo, onde finalmente pude conhecer melhor a cidade. O Sr. Vinícius, da Tecvitória fez um tour muito bacana com a gente. Visitamos alguns eventos que estavam ocorrendo e ainda conhecemos a Endeavor, que particularmente, foi a parte da viagem que eu mais gostei.DSC02576

Como ninguém é de ferro, aproveitamos para conhecer os principais bairros e bares da cidade. Por obra do destino, em pleno Saint Patrick’s Day eu estava em São Paulo e, como devoto fiel, fui celebrar no Asterix (sozinho, pois o pessoal não aguentou e foi dormir cedo).

A experiência do concurso foi muito rica, mas estar em São Paulo como turista tendo a oportunidade de trocar idéias com um empreendedor como o Vinícius da Tecvitória realmente foi muito benéfico.

Conclusão

O Uniempreendedor foi uma experiência única. Daquelas em que a viajem vale mais do que o destino final.

Apesar das noites perdidas, do trabalho e de todo o stress que passamos, eu participaria novamente.

Fica a dica para os empreendedores de plantão. Essa experiência e o conhecimento obtido vão me acompanhar por toda a vida.

Tagged with: