RSS

Minha apresentação no 1º ForkInTuba: Introdução a Testes Automatizados

Apresentação realizada por mim em 12 de novembro de 2011 no SENAI de Tubarão, SC.

Vídeo:




Slides:


Qualquer dúvida, crítica ou sugestão, por favor utilize os comentários ou contacte-me através do twitter (@thiagoghisi).

 
Deixe um comentário

Publicado por em 25/04/2012 em Uncategorized

 

Declínio e Queda do Engenheiro de Software

Alguns tópicos de uma apresentação que encontrei hoje sobre Engenharia de Software e que muito me chamou a atenção pois compartilho muito dessa visão. A versão completa foi escrita por Christian Reis (@kiko666) e para quem quiser mais detalhes está disponível em:

Agora, vamos aos tópicos com os meus comentários:

  • Apresentação e Introdução:
  • Minha experiência com Engenharia de Software indica que:
    • 1) É bem mais difícil do que parece.
    • 2) É um termo que normalmente inspira bocejos.
    • 3) Há algum problema sério nisso tudo:
  • O Engenheiro de Software:
  • Amor, Ódio e outras Bobagens:
    • Materialização de sonhos (e ilusões) em software.
    • Todo mundo tem sua opinião sobre Eng.Software (e normalmente é uma opinião que contém um grande número de palavrões). A pergunta é: WHY?
    • Esqueçam os conservadores e puristas: desenvolver software — em qualquer escala, e de qualquer forma — é Engenharia de Software.
    • Não se enganem: escrever código, rodar e testar é um processo de software.
    • O que não explicam e que nos falta aqui é uma visão de escala: que tipo de processo o seu problema atual requer?
  • Processo de Software:
    • Obviamente, a preocupação com processo de software é menor quando é um projeto de 10-homens-hora!
    • Processos difundidos e bem-documentados tendem a ser os que foram desenvolvidos para a Nasa e o DoD!
    • Processo de Software é um nome chique para descrever quando sentamos juntos e planejamos construir ou consertar algo:
      • 1) Descobrir o que tem para ser feito.
      • 2) Descobrir como será feito.
      • 3) Fazer. Fazer. Fazer. Fazer.
      • 4) Descobrir se fizemos mesmo o que era para fazer. (enxague, repita)
    • Engenharia de Software e a Universidade
      • //Ou, porque o ensino de engenharia de software nas universidades não funciona!?
    • Para aprender como construir software, precisamos de bons exemplos.
    • Não nos dão muitos bons exemplos!
    • Enfoque em escrever código, e não em ler código (e no entanto..)
    • Tarefas de brinquedo, prazo curto, solitárias.
    • Pouca ênfase em criar peças que se encaixam.
    • Pouca ênfase em trabalhar com outras pessoas.
    • Visibilidade nula para o trabalho dos outros, revisão de código inexistente.
    • Quando de fato falamos “processo”, falamos de processos que não atendem aos alunos!
  • Processo Padrão?
    • Processos que não atendem a quem os estuda.
    • Processos dos quais não aferimos resultados.
    • Processos “desnecessariamente” burocráticos.
    • Surpresa! Estes processos não são para projetos pequenos — em outras palavras, nós!
    • Geralmente se passa a impressão de que existe um processo ideal, e que você deve sempre buscar atingí-lo (CMM? ISO?)
    • Nenhum processo bem projetado é burocrático, inútil ou sem resultado. Mas o processo tem que se encaixar na sua realidade, na sua equipe.
    • Muito mais importante do que um processo formal é um processo que sirva para as pessoas que irão executar o trabalho.
    • Engenheiros de Software precisam aprender um toolkit essencial, e com este toolkit entender (e construir) um processo relevante.
  • O Renascimento do Engenheiro de Software:
    • Uma lista de 7 qualificações mínimas:
      • 1) Sabe usar um sistema de controle de versões.
      • 2) Sabe ler código em mais de uma linguagem.
      • 3) Lê inglês de forma competente.
      • 4) Já teve uma correção ou mudança aceita e integrada em um projeto de Software Livre.
      • 5) Sabe o que é uma API, e o que quer dizer “affordance”.
      • 6) Sabe quem são: Dijkstra, Hoare, Knuth, Ritchie, Thompson.
      • 7) Constrói produtos dos quais é orgulhoso.
  • Adios Banditi:
    • Engenharia de Software é um veículo pelo qual a experiência se difunde entre nós.
    • Engenharia de Software é para ser divertido e interessante (e seu amigo na hora em que dá tudo errado).
    • Engenharia de Software ensina ter amor pela equipe, amor pelo usuário, e sobretudo amor pelo produto.
    • Engenharia de Software é um passo em direção à evolução da profissão.
    • “Person who say it cannot be done should not interrupt person doing it.” –Chinese Proverb

Alguém Concorda? Discorda? Escreva a sua opinião.

 
2 Comentários

Publicado por em 26/02/2011 em Uncategorized

 

Sorte?

Lendo o livro "Uma questão de tempo", de Alvaro Esteves, encontrei um trecho interessante em que ele fala da sorte ao mesmo tempo em que conta parte da sua história de vida, evolução profissional, na IBM. Segue:

"Há quem afirme que sorte é o ponto de encontro da oportunidade com a capacidade e eventualmente foi isso mesmo que ocorreu. Você tem que estar pronto – e capacitado – para montar no cavalo da chance, quando esta aparece, quase sempre de supetão. É preciso estar preparado para saber que a hora é essa."

Eu concordo com ele.

E para completar a questão que estou querendo expor: Sucesso: Sorte ou Trabalho Duro?

Dave Thomas, fundador de uma bem-sucedida cadeia de restaurantes, que disse:

"Parece que quanto mais duramente eu trabalho, mais sorte tenho".

Fica aí uma boa reflexão…

 
Deixe um comentário

Publicado por em 24/05/2010 em Uncategorized

 

Metáfora para Entendimento do Desenvolvimento Ágil

Kent Beck, pai do XP, em seu livro Extreme Programming Explained, apresenta uma excelente metáfora para o que se entende como desenvolvimento ágil. Ele compara o desenvolvimento ágil à prática de aprender a dirigir um automóvel.

“Suponha que você se encontra em uma estrada em um longo percurso que segue em linha reta. Você está segurando o volante para que o carro se mantenha na pista. O que você faz com o volante? Você simplesmente trava as mãos nele, de modo que não se mova nem um milímetro? Você faz movimentos bruscos para a esquerda e para a direita tentando manter o carro nos limites da estrada? Ou você simplesmente mantém as mãos firmemente ajustadas ao volante e dá leves toques de um lado para o outro para manter o carro em linha reta? Se você simplesmente travar o volante, provavelmente o carro sairá de estrada mais a frente devido as irregularidades da pista. Se você fizer muitos movimentos bruscos a viagem será um tormento. Portanto, o que as pessoas fazem é manter as mãos no volante e dar pequenos toques para ambos os lados, sempre que o carro ameaça sair um pouco a direção. Ao longo de toda a reta, você terá dado inúmeros toques para cada lado, mas o percentual terá sido tranquilo e você terá conseguido manter o carro na direção correta”. (BECK).

driving.jpg

Para Teles (2004, p. 60), esta é a idéia do XP: onde o cliente precisa estar presente para que possa fornecer inúmeros pequenos feedbacks para a equipe, assim como a equipe lhe dará outro feedbacks. Desta forma, todos tentam manter o carro, ou seja, o projeto, em linha reta. E procuram fazer com que a viagem seja a mais tranquila possível.

A aproximação entre equipe e cliente permite que este último tenha maior visibilidade do que está sendo feito. Esta visibilidade gera maior confiança na medida em que o cliente acompanha todo esforço envolvido na construção do seu software. Mas, embora a presença do cliente seja altamente recomendável ao longo do desenvolvimento, é raro encontrar um cliente que tenha disponibilidade para estar presente.

Segundo Teles (2004, p.63), o ideal é buscar fazer um meio-termo, no qual, o cliente esteja presente pelo menos o suficiente para atender a maioria das necessidades da equipe com rapidez.


Referências:

BECK, Kent. Programação extrema explicativa: Acolha as mudanças. Porto Alegre: Bookman, 2004.

TELES, Vinícius. Extreme Programming: Aprenda como encantar seus usuários desenvolvendo software com agilidade e alta qualidade.  São Paulo: Novatec, 2004.

 
Deixe um comentário

Publicado por em 24/04/2010 em Uncategorized

 

O Stress feito de Bits e Bytes

 

Reproduzo abaixo um artigo de 2001 do Grande Escritor e Microsoft MAN Júlio Battisti. Esse artigo já teve mais de 1 milhão de acessos em seu link original.

Mas, o interessante, e o que eu quero chamar a atenção com esse post,  é que em 2010, existem muito mais pessoas com os mesmos “problemas” que o Júlio já relatava em 2001. Se você não é assim, pelo menos conhece alguém que é. Eu, me incluo nesse bolo de problemáticos.

O Stress feito de Bits e Bytes – Júlio Battisti

Estamos vivendo a “Era da Informação e da Velocidade”. Muitas vezes, ficamos atônitos com a rapidez em que as mudanças acontecem. Já não basta mais sermos especialistas em Informática. Precisamos “entender do negócio”, senão como poderemos aplicar nossos conhecimentos em benefício da empresa?

bg_profile.jpg

Muitos consultores e autores bem sucedidos de livros de negócios e carreira dizem que estamos vivendo a era dos multespecialistas. Precisamos entender de muitos assuntos: administração, finanças, informática, outros idiomas, pessoas (esta talvez seja a aptidão mais importante), trabalho em equipe.

Como dominar tantas competências e, ao mesmo, tempo conciliar família, amigos, atividades físicas e a pressão da empresa por resultados cada vez melhores e em menor tempo? Com certeza não é fácil, mas é possível crescer profissionalmente e, principalmente, com ética, sem abrir mão da vida pessoal.

Não dá para estudar tudo ao mesmo tempo. Durante muito tempo comprei muito mais livros do que poderia ler. Cheguei a ter mais de 30 esperando na fila. Constantemente me preocupava pelo fato de não conseguir ler e estudar todos os assuntos que eu julgava importantes. Uma simples pausa para assistir ao jogo de futebol do meu time na televisão era motivo para consciência pesada por não ter aproveitado “melhor” meu tempo.

Neste período, acabei me afastando dos amigos, da família e até minha esposa queixava-se, com razão, de que eu quase não ficava com ela. Muitas vezes eu me preocupava mais em ler um livro, do que em fazer uma análise sobre seu conteúdo e sobre o valor daquela leitura para mim e para a minha carreira. O importante era diminuir a fila de livros não lidos, mesmo que isso significasse cada vez menos horas de sono, de lazer e de atividades físicas. Pouco importava se minha qualidade de vida estava piorando dia-a-dia.

Talvez o amigo leitor jamais tenha chegado a esse ponto, mas não é difícil concluir que “não dá pra estudar tudo”. O simples fato de o estudo ter se tornado uma carga muito pesada, mais uma obrigação do que um prazer, fez com que meu rendimento e bom humor descessem a níveis preocupantes.

Não dá para aprender tudo ao mesmo tempo: Windows 2000, Linux, Novell, Unix, Visual Basic, Delphi, Java, Java Script, ASP, ASP+, C, C++, C#, XML, segurança, finanças, economia, administração, fazer um MBA, uma Pós …. e se você ainda estiver vivo e houver tempo, quem sabe, uma cirurgia de ponte de safena.

Estudo e aperfeiçoamento contínuos são fundamentais sim, porém de forma organizada e, principalmente, planejada. O foco deve estar na aplicação dos conhecimentos adquiridos. Jamais no conhecimento por si só. Leia esta pequena história:

Uma vez um mestre fez uma experiência com seus alunos. Pegou um vaso e encheu-o com pedras grandes. Depois, ergueu o vaso e perguntou aos alunos:

- O vaso está cheio?
A turma se dividiu, com alguns dizendo que sim e outros que não. O mestre então, pegou algumas pedras pequenas e colocou-as no vaso. As pedras pequenas se encaixaram entre as grandes, e o mestre ergueu o vaso, novamente, perguntando:

- O vaso está cheio?
Desta vez a maioria da turma respondeu que sim. O mestre, então, pegou um saco de areia e despejou dentro do vaso. Depois, repetiu a pergunta.

A grande maioria respondeu que sim. O mestre, então, pegou uma jarra de água, derramou no vaso, e perguntou:

- O vaso está cheio?
A turma finalmente chegou a um consenso. Todos responderam que sim. Então o mestre falou:

- Este vaso é como a nossa vida. Se eu tivesse colocado as pedras pequenas, a areia ou a água primeiro, não haveria espaço para as pedras grandes. As pedras grandes na nossa vida são a família, os amigos, trabalho, lazer e saúde e é fundamental que não descuidemos delas. Não podemos perder muito tempo com coisas sem importância (as pedras pequenas), pois corremos o risco de não haver espaço para as coisas que realmente são importantes.

Para mim foi vital entender que a carreira é importante sim, principalmente em tempos de alta rotatividade e de busca por profissionais cada vez mais qualificados. Mas ela não é tudo. Uma carreira de sucesso é sustentada por muitos pilares e, sem dúvida, família, lazer, amigos e saúde física e mental são alguns dos que têm maior importância.

Reservar um tempo para a família, programar horas de lazer ou de bate-papo com os amigos e realizar atividades físicas não podem, de maneira alguma, ser consideradas atividades que nos “roubam tempo”. Às vezes, é importante uma simples parada para não fazer nada e refletir sobre a vida. A partir do momento em que conseguimos equilibrar esses aspectos, passamos a ver as coisas com mais clareza e a produzir mais e melhor.

Planejamento e organização

Também não podemos descuidar de dois princípios básicos para uma carreira de sucesso: organização e planejamento. A cada fim de ano planejo minha carreira para os 365 dias do novo ano que vai começar e sempre penso nos seguintes aspectos: novos conhecimentos que desejo adquirir e aonde vou aplicá-los, provas e exames de certificação que desejo fazer, projetos que pretendo implementar na minha empresa e projetos pessoais que quero desenvolver (como escrever livros e artigos).

O planejamento precisa ser feito de maneira consciente. Não adianta planejar uma carga de atividades que você não vai ter como dar conta. Também é importante ter consciência de que nem sempre as coisas saem conforme o planejado. É preciso ter criatividade e flexibilidade para contornar e solucionar imprevistos.

Melhorar a capacidade de organização e de gerenciamento do tempo, também é um aspecto importante. Muitas vezes me pegava navegando na Internet horas a fio, saltando de um portal para o outro, maravilhado com a quantidade de informações, mas não chegava a ler sequer um artigo. Na verdade, nem mesmo me lembrava do assunto que me levou a acessar a Internet. É claro que a Internet é imprescindível, porém devemos saber utilizá-la a nosso favor, sem nos perdermos na imensidão de informações disponíveis.

No começo é difícil. Diversas vezes, em meio a uma atividade de lazer, batia aquela “dor na consciência” e eu pensava que deveria estar estudando ou terminando um trabalho qualquer. Porém com o tempo, comecei a perceber a importância dessas atividades.

Posso usar o meu exemplo pessoal para mostrar o quanto é importante não descuidar das “pedras grandes” que fazem parte da nossa vida. Neste ano, consegui publicar dois livros (um sobre SQL Server 2000 e outro sobre ASP.NET, publicados pela editora Axcel Books (www.axcel.com.br)), estou viajando para várias cidades do Brasi, ministrando treinamentos em diversas áreas, consegui estudar vários assuntos que julguei prioritários e ser aprovado em vários exames de certificação.

Ainda não “zerei” a fila de livros que tenho para ler, nem dediquei o tempo que julgo necessário para minha vida pessoal, mas confesso que já consigo passar um domingo inteiro na beira da piscina, no clube, sem ficar com a consciência pesada. Este ano também tive momentos maravilhosos com minha família e meus amigos. Sinto-me mais leve e produzindo mais do que antes; consigo valorizar coisas que antes passavam despercebidas. Até voltei a brincar com crianças, o que antes eu achava algo “irritante e sem graça”, vê se pode! O caso era realmente sério!

Abaixo segue uma lista com dicas de sites e livros que me ajudaram a repensar o meu modo de vida. Espero que também possam ajudar quem se sente na mesma situação em que eu me sentia.

Livros:

- Série reinventando o trabalho, Tom Peters, Editora Campus.
– A essencial arte de parar?, Dr. David Kundtz, Editora Sextante.
– Venda-se, Claudio V. Nasajon, Editora Campus.
– E agora José ??, Marco A. Oliveira, Editora SENAC.
– 13 segredos para o sucesso profissional?, Roger Dawson, Editora Futura.
– Futurize sua empresa?, David Siegel, Editora Futura (obs.: simplesmente fantástico).
– O estudo eficaz, Alberto J. G. Villarmarín, AGE Editora.
– MBA compacto, gestão de projetos, Eric Verzuh, Editora Campus.

Para filosofar….

  • Será que não estamos presos em um Sistema que os Americanos criaram?

polb.jpg

  • Será que realmente ningém morre de trabalhar?

243566_4.jpg

Mas, enquanto isso, só nos resta:

O%20Paraiso%202.jpg

Ou:

2477643864_068166a580.jpg

 
2 Comentários

Publicado por em 03/04/2010 em Uncategorized

 

Citação Motivacional de George Polya

Achei essa citação no prefácio de um livro de Cálculo:

Uma grande descoberta envolve a solução de um grande problema,

mas há urna semente de descoberta na solução de qualquer

problema. Seu problema pode ser modesto; porém, se ele desafiar

sua curiosidade e fizer funcionar sua capacidade inventiva, e caso

você o resolva sozinho, então você poderá experimentar a tensão e o

prazer do triunfo da descoberta.

George Polya (1887 – 1985)
Polya.jpg

Think About!

.

 
Deixe um comentário

Publicado por em 17/03/2010 em Uncategorized

 

Marilia Gabriela entrevista Silvio Meira

Para quem não conhece, Silvio Meira é formado em Engenharia Eletrica pelo ITA, doutor em computação, professor titular de engenharia de software na UFPE, cientista chefe do C.E.S.A.R, consultor da ONU para desenvolvimento científico e tecnológico e futurólogo.

Na entrevista, o paraibano Meira, fala sobre futuro, internet, avanços da tecnologia, segurança, novo padrão de educação, história, utopia, distopia, enfim, as mudanças da era digital.

Só pela frase que Silvio fecha entrevista já valia ter assistido a entrevista inteira:

“Todos nós deviamos nos preparar para o futuro, aprendendo coisas que ainda não sabemos, desaprendendo coisas que sabemos, mas que não deveriamos mais saber porque são de alguma forma inutéis e reaprendendo coisas já soubemos e que voltaram a ser utéis.”

Para quem quiser conferir, segue as 5 partes da entrevista concedida a Marilia Gabriela, no programa do canal GNT Marília Gabriela Entrevista, em 26 de abril do ano passado:

Parte 1:

Parte 2:

Parte 3:

Parte 4:

Parte 5:

.

Um dos pontos mais crucias da entrevista é quando Silvio fala sobre como deveria ser um novo modelo de educação:

“Devemos escolher um pouco mais, ou um pouco melhor, ao que vamos dedicar nossa atenção. Existe uma coisa chamada dilúvio de informação hoje. Se você perguntar para qualquer sistema de busca na internet você vai descobrir que para qualquer pergunta que agente faça, existem centenas de milhares, de milhões de respostas, das quais, talvez, centenas de milhares façam sentido. Então, você não pode ir atrás de tudo isso, você tem que começar a ter sistemas de referencia para lhe dizer o que daquilo vale à pena. Mas, principalmente agente tem que mudar o caráter da escola para parar de ser um repositório de conhecimento, para ser um processo de criação de oportunidade de aprendizado contínuo. Eu tenho que aprender a aprender continuamente. A principal diferença da era industrial, da qual se saía para usar algumas coisas que faziam sentido na indústria para agora, e que essa era é do conhecimento, e ela é sustentada por uma era da informação, e a minha possibilidade de sobrevivência nela é eu ter os meios estruturais para continuar aprendendo.”

“Em linhas gerais a informatização é uma realidade inescapável e ela tem que começar na educação de base.”

Aprender a aprender.
Think about.

.

 
Deixe um comentário

Publicado por em 22/02/2010 em Uncategorized

 
 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.