Algumas desculpas que os programadores emitem na presença dos testadores

Posted in processo de produção de software on November 11, 2009 by José Augusto Fabri

Veja algumas desculpas que os programadores emitem durante a execução da atividade de teste.

1 – Putz: Se eu tivesse validado. (o se é primo de primeiro grau do talvez)

2 – Nem sei se eu validei isso. (eu tenho certeza que não)

3 – O programa não passou no teste porque eu esqueci de retirar um comentário do código. (que pena!)

4 -Essa é ótima: Tá pegando pesado, o usuário nunca irá fazer isso. (utilize sua certeza para programar)

5 – Pelo menos a saída emitida não é lixo de memória. (é… poderia ser pior)

6 – Ih. Por que letra não entra e os caracteres especiais sim? (se você não sabe, quem saberá?)

7 – (Essa é ótima) Poxa que maldade!!! Testar isto para ver se está funcionando!!!

8 – Porque, sei lá. (boa, não?)

9 – Era para passar no teste mas não passou (ainda bem que você pensa assim!)

10 – Tudo isso aconteceu porque modifiquei o programa (inteligente esta!!! né…)

J. A.

fabri@femanet.com.br

Quebra de Paradigma versus Inovação

Posted in gestão de projetos on November 10, 2009 by José Augusto Fabri

No dia 12 de outubro publiquei um texto sobre  inovação. Recebi alguns e-emails solicitado um relacionamento entre inovação e quebra de paradigma. Walter Longo apresenta suas idéias sobre este fato, divirtam-se com o vídeo:

A inovação na Comunicação – O Impacto da revolução tecnológica no relacionamento com o consumidor , por Walter Longo. Forum mundial de inovação – HSM.

Abraços

J. A – fabri@femanet.com.br

SOA: Nome novo para a velha teoria – parte 2

Posted in Ensino de engenharia de software, Introdução a Engenharia de Software on November 3, 2009 by José Augusto Fabri

No último texto apresentei uma das raízes teóricas que originaram a orientação a objetos, recebi vários comentários e algumas questões, uma delas me chamou a atenção:

“Se eu partir do pressuposto apresentado no texto, posso concluir que SOA (arquitetura orientada a serviços) também é um nome novo para a velha teoria?”

O objetivo da arquitetura orientada a serviços é propor soluções para automatizar os processos de negócios. Aplicações que permitam aprimorar/dinamizar as tarefas manuais de uma organização são considerados elementos importantes em uma arquitetura orientada a serviços. A referida arquitetura possibilita aos usuários finais percepções e informações mais detalhadas e precisas de um processo de negócio. O acesso aos diversos níveis de informações (operacional, tático e estratégico) deve ser feito através da WEB ou por meio de um dispositivo móvel.  Pode-se dizer que SOA é fundamentada em 5 pilares:

  • Pessoa,
  • Processo,
  • Informação,
  • Conectividade,
  • Reuso de sistemas legados.

SOA possibilita o desenvolvimento de aplicações customizadas para o seu negócio, as facilidades para responder as demandas do mercado em uma economia globalizada é um benefício a ser considerado neste tipo de arquitetura.

É importante salientar que a implementação de uma estratégia consistente de componentização durante o processo de produção de software é uma das prerrogativas que delinearão o sucesso ou fracasso de uma estratégia SOA. O levantamento dos requisitos, a modelagem do processo de negócio, o desenho da arquitetura e o design das funcionalidades devem possuir grande consistência e, por fim, a reutilização de controle dos serviços já existente também faz parte das diretrizes que compõem uma arquitetura orientada a serviços.

Não quero jogar água no café de ninguém, mas ao analisar a definição apresentada concluo que:

Os analistas de sistemas trabalham com a modelagem de processos, organizam informações, estabelecem formas de conectar estações de trabalho e procuram reutilizar os sistemas já existentes a mais de 30 anos. Veja um velho e bom diagrama de fluxo de dados que você dará conta disto.  

Enfim, a evolução tecnológica é eminente e deve ser considerada (surgimento da WEB e dos dispositivos movéis), porém a quebra de um paradigma teórico não ocorre todo dia. Projetar uma aplicação orientada a serviços é sinônimo do desenvolvimento orientado a processo. Nome novo para a velha teoria.

Abraços

J. A. Fabri

fabri@femanet.com.br

Nome novo para a velha teoria – parte 1

Posted in Ensino de engenharia de software, Introdução a Engenharia de Software on October 21, 2009 by José Augusto Fabri

frameNa semana passada lá estava eu apresentando a idéia de mapas mentais para uma turma de último ano. Durante a aula um aluno me questionou:

Poxa professor… tu falas de uma teoria proposta em 1942, não existe nada mais atual para apresentar na aula?”

Por favor, me dê um exemplo!

“Posso enumerar vários artefatos que são mais novos que os mapas mentais, programação orientação a objetos (POO) e diagrama de classes são bons exemplos.”

Muito bem, quando surgiu tal forma de programar e tal diagrama?

Final da década de 1990, correto?

Não.

A programação orientada a objetos surgiu na década 1970 com a linguagem SIMULA, esta, por sua vez, era parte integrante da linguagem Smalltalk, desenvolvida pela Xerox PARC. Os conceitos sobre POO levaram mais de 10 anos para amadurecerem, por isso muitos dizem que a programação orientada a objetos é algo relativamente novo.

Já, segundo a minha singular visão, o diagrama de classes é uma adaptação do conceito de Frame popularizado por Marvin Minsky em 1975. Marvin propôs a aplicação do referido conceito na representação de conhecimento (veja a figura no início do post).

Na figura é possível encontrar dois frames, cada um representa um objeto do mundo real, algo bem parecido com o que conhecemos hoje como diagrama de classes.

Concluindo.

Ao trabalhar com POO e diagrama de classes lembre-se, estamos utilizando conceitos da década de 1970.

Deixo uma pequena provocação para os interlocutores deste blog:

É possível relacionar o conceito de mapa mental com frame? Será que a origem das classes não contempla as prerrogativas delineadas por Tony Buzan 1942?

Enfim, tudo nome novo para a velha teoria.

Abraços

J. A. Fabri

fabri@femanet.com.br

Pipa na UENP

Posted in processo de produção de software on October 20, 2009 by José Augusto Fabri

Nesta terça (20 de outubro) tive a oporunidade de conversar com o pessoal da Universidade Estadual do Norte do Paraná – campus de Bandeirantes, sobre a qualidade no processo de produção de software. Os slides utilizados estão disponíveis neste link.

Agradeço a coordenação do curso de Sistemas de Informação pelo convite.

iNOVAção

Posted in gestão de projetos on October 12, 2009 by José Augusto Fabri

A inovação traduz a idéia de novidade. A palavra é derivada do latim innovatio, e se refere a um método, idéia, ou objeto que é desenvolvido e que pouco se parece com padrões anteriores. A inovação caracteriza-se como um processo que inclui as técnicas, concepção, desenvolvimento e gestão que resulta na comercialização de novos produtos ou serviços.

É possível desenvolver algo inovador em TI?

Para inovar siga as orientações Jean-Philippe Deschamps:

1 – Quando se fala de inovação temos que ter em mente que os clientes não são capazes de responder se usarão um novo produto.

“Você realmente acredita que pessoas utilizarão algum produto chamado mouse”. Reação dos executivos da Xerox na apresentação do mouse e da interface gráfica, ambos criados no início dos anos 70 e posteriormente copiados pela Apple e popularizados por outros sistemas.

O segredo está em conhecer os clientes e não questioná-los sobre algo.

2 – O conhecimento do cliente deve ser profundo para ajudar a predizer qual produto (ou ativo de TI) ele vai preferir.

Como conhecer e predizer o que o cliente quer? Se posicione como um (cliente) à frente de seu produto (ou ativo de TI). Fique de olho nas tendências e saiba utilizar todo o potencial da tecnologia na criação de um produto inovador.

3 – O ambiente de trabalho deve possuir aspectos inovadores. Se ele for rígido, projetos inovadores serão extintos.

Essa orientação foi o divisor de águas em minha vida. Diferente do mercado tradicional de TI, é no meio universitário que encontrei um ambiente com essas características.

4 – A criatividade vem da diversidade. Combine personalidades diferentes dentro de um ambiente inovador.

Várias empresas de TI estão contratando pessoas com formação humanística. Sociólogos, psicólogos e antropólogos são algumas das inúmeras formações que compõem o corpo de profissionais dessas empresas.

5 – As mulheres são fundamentais porque têm uma maneira especial de enfrentar e solucionar problemas.

Faça uma pesquisa e constate, a área de qualidade e teste de software das grandes empresas é gerenciada por mulheres. Elas possuem uma sensibilidade muito maior frente a um produto ou serviço, fato este altamente favorável em um ambiente inovador.

6 – Quando uma empresa pesquisa porque um produto agrada ou não, ela observa que talvez os usuários o vejam de maneira diferente, neste caso é necessário modificar o produto imediatamente.

Essa orientação é facilmente aplicável no desenvolvimento de software. Desenvolva um protótipo inicial do produto, apresente a seus clientes e veja a reação dos mesmos. Se os clientes estavam enxergando o produto com outros olhos, isso virá à tona. Modifique o seu produto e apresente ao cliente novamente. O velho e bom modelo evolucionário de desenvolvimento de software (hoje chamado pelos “modistas inovadores” de Agile).

7 – Inovação não significa crescimento. O crescimento está ligado à forma de explorar uma boa inovação.

Quanto a Xerox poderia ter crescido se explorasse com afinco a interface gráfica e o “fatídico” mouse. INOVAÇÃO NÃO EXPLORADA.

8 – As empresas precisam possuir a capacidade de se recuperar das inovações altamente bem-sucedidas – Aquilo que Dechamps chama de blockbuster.

Esse pressuposto nos remete a um processo difícil, ao inovar a empresa inteira se organiza mentalmente para dar apoio ao blockbuster e fica desmotivada com novos produtos. O maior exemplo disso é caso da Volks, com o fechamento da linha de produção do Fusca as vendas começaram a cair, a empresa não tinha nada a oferecer -  demorou um pouco para o Gol chegar ao mercado.

9 – O processo para decidir se uma idéia deve ser caracterizada como inovadora deve ser rigoroso, a fim de garantir a viabilidade, porém filtros demais não são bem vindos. Lembre-se, um dia, um patinho feio pode se tornar um cisne.

Steve… O que pessoas querem com computador comum? – Frase histórica apresentada pela HP quando Steve Wozniak apresentou a idéia do PC . Olha aí na sua frente, o seu PC hoje é um belo cisne.

Por fim, gostaria de salientar que o primeiro aparelho de fax não era perfeito, o primeiro walkman não era perfeito, o primeiro PC era horrível – Nenhum produto novo é perfeito. Lembre-se disso. Inovação caracteriza-se na implementação de algo novo seguido de uma ação, ou seja iNOVAção.

Abraços

José Augusto Fabri

fabri@femanet.com.br

CMMI: Mais um semestre Chinês

Posted in mercado produtor de software, processo de produção de software on October 6, 2009 by José Augusto Fabri

Ao publicar o post será que o reinado indiano terá fim  defendi a tese que se os chineses crescessem 10% ao ano em número de certificações CMMI nível 5 - em 15 anos a China superará a Índia.

No final do mês de setembro o SEI  publicou mais um relatório sobre as avaliações do referido modelo, nele é possível encontrar números consolidados para o primeiro semestre de 2009. Mais uma vez, a China liderou a taxa de crescimento.

Vamos aos números.

Empresas avaliadas nos últimos 88 meses:

  • Brasil:      117 (10% de crescimento)
  • Índia:       460 (12% de crescimento)
  • China:     946 (27% de crescimento)

Taxa crescimento no número de avaliações no primeiro semestre de 2009 -

  • Nível 5:
    • Brasil:     00%
    • Índia:      03%
    • China:     10%
  • Nível 4:
    • Brasil:     00%
    • Índia:      00%
    • China:     25%
  • Nível 3:
    • Brasil:     09%
    • Índia:      23%
    • China:     34% (salto de 540 para 728 empresas certificadas)

Note que a  escalada chinesa é superior a indiana em todos os níveis.

Por fim, ressalto que os números publicados pelo SEI, mantêm a minha tese: Os chineses cresceram, NESTE SEMESTRE, 7% em números de certificações (CMMI nível 5) quando comparados aos indianos. Em 2008 essa taxa foi de 10,66%. Se ambos os países repetirem o desempenho do primeiro semestre de 2009, os chineses terão um crescimento de 20% contra 6% dos indianos. Se a taxa de crescimento permanecer em torno dos 15%, em 10 anos, a China será o país com maior número de certificações no nível 5.

Mais um número para os chineses comemorarem nos 60 anos de sua revolução.

A questão está aberta: A China irá ultrapassar a Índia em número de certificações CMMI?

José Augusto Fabri

fabri@femanet.com.br

RIO 2016 – Um mar de oportunidades ou de problemas

Posted in gestão de projetos, mercado produtor de software on October 2, 2009 by José Augusto Fabri

FestaComitivaBrasileiraO Rio de Janeiro será a primeira cidade de continente Latino Americano a sediar os jogos olímpicos. O COI, Comitê Olímpico Internacional, acabou de anunciar a cidade tupiniquim como sede para os jogos de 2016. A cidade maravilhosa superou Madri, Chicago e Tóquio. Parabéns a candidatura brasileira. Neste post relato os prós e contras que essa candidatura pode gerar.

Oportunidades

Com a realização dos jogos o Rio receberá um investimento de cerca de R$ 30 bilhões, esse montante será dividido em infra-estrutura urbana, construções e reforma das instalações esportivas.

Segundo o COB, Comitê Olímpico Brasileiro, cerca de 30% das instalações necessários para os jogos já estão prontas, 24% necessitam de algum tipo de modernização.

O trânsito do Rio deve ser remodelado, caso isso não ocorra o mesmo entrará em colapso. Para transpor essa barreira o projeto contempla um investimento 5 bilhões de dólares em transporte público.

Na questão ambiental a Lagoa Rodrigues de Freitas terá que ser limpa, assim como a Baía da Guanabara. O Governo Federal prevê um investimento de 4 bilhões para a despoluição das águas e os organizadores prometem plantar cerca de 214 milhões de árvores.

Esse investimento gerará inúmeros empregos e oportunidades para os cariocas.

Problemas

O histórico de gasto com o Pan é um termômetro que deve ser analisado. O projeto orçamentário teve um aumento de 1000% (orçado: R$ 400 milhões. Realizado: R$ 4 bilhões). Este fato aumenta a desconfiança nos políticos, administradores e dirigentes mal intencionados.

As propostas ambiciosas para Pan de 2007 não cumpridas, exemplo: extensão do metrô e o uso de barcas para o transporte da população pela orla carioca.

A segurança é um tema preocupante, dois pontos de provas estão situados em zonas urbanas violentas, os estádios João Havelange e o Maracanã.

Hoje o Rio não teria infra-estrutura para acomodar turistas, trabalhadores, voluntários e atletas. Será necessário a construção de cerca de  50.000 novos quartos.

Se comparada com as outras cidades o Rio é que possui a menor infra-estrutura para a realização dos jogos.

E a TI?

O investimento em TI para realização dos jogos olímpicos de Pequim, ou seja, 30 dias de competição, chegou à casa de U$ 500 milhões. Para efeitos comparativos, a exportação de software brasileira chegou à casa de U$ 400 milhões em 2008.

A empresa responsável pela TI olímpica é a Atos Origin.

  • A Atos Origin opera em 40 países;
  • No Brasil ela congrega cerca de 2 mil funcionários;
  • Vários brasileiros participaram ativamente do projeto olímpico;
  • No mundo, o número de funcionários chega à casa de 50 mil;
  • A receita anual da empresa é de 5.4 milhões de Euros.

Além de fornecer infra-estrutura para os jogos olímpicos, a Atos também operou toda a infra para os jogos pan-americanos realizados no Rio em 2007. Será que a responsabilidade de operação dos jogos de 2016 será da Atos?

Veja o aparato tecnológico utilizado em Pequim:

Investimento de cerca 100 mil horas de testes para os softwares;

Toda a infra-estrutura de TI controlou o resultado de 10.708 atletas;

A infra-estrutura teve que atender questões como: classificações, logística relacionada ao transporte de atletas para os locais de prova; fornecimento de resultados on-line para o mundo;

Suprir acesso a Internet para todos atletas e profissionais de imprensa (cerca de 20 mil jornalista);

Durante os jogos, cerca de 10.000.000 eventos diários passaram pelo sistema de segurança de TI;

Cerca de 1.000 servidores foram configurados;

Cerca 10.000 computadores foram instalados;

Cerca de 4.000 impressoras, também, foram utilizadas;

Cerca de 4.800 terminais foram dedicados ao sistema de resultados;

Acredito que o consumo com TI no RIO chegue a casa de US$ 1 bilhão nos próximos 7 anos, incluindo os ativos investidos nos trinta dias para realização do jogos.

Por fim, ao analisar os números apresentados, somente da área de TI, fica uma questão para reflexão: Será que as empresas brasileiras teriam, REALMENTE, condições de suportar um evento deste porte?

Depois do “Yes! We can” nosso novo slogan é ”God Bless Rio”

José Augusto Fabri

Para que simplificar se podemos complicar

Posted in gestão de projetos, processo de produção de software on September 28, 2009 by José Augusto Fabri

Toda vez que sou convidado a falar sobre a redação de um processo de produção de software utilizo, como exemplo, uma adaptação da entrevista de Gehringer apresentada pela rádio CBN.  

Segue a transcrição da entrevista:

Joãozinho, um funcionário exemplar de uma grande empresa, foi promovido a gerente. É isso ai Joãozinho, meus parabéns, agora você tem o direito de tecer opiniões sobre o planejamento estratégico da referida organização.

No primeiro dia em sua nova função, Joãozinho recebeu um documento – o planejamento estratégico - um calhamaço de 150 páginas. Depois de ler várias vezes, não entendeu nada. Ele não conseguia enxergar uma relação direta entre o planejamento estratégico e as coisas que aconteciam no dia-a-dia da empresa.

Joãozinho, bem-vindo ao mundo real. Você entrou para o time das pessoas que complicam em vez de simplificar. Com certeza o documento foi redigido em outro idioma, o português corporativo. Uma língua extremamente complicada que não é falada e somente escrita. Vou apresentar 3 exemplos de coisas muito simples, que ao serem escritas no português corporativo “agregam um valor imenso”.

1 – Implementar a substituição estratégica de  um equipamento periférico que gere um alto grau de luminosidade ao ambiente criativo. Traduzindo, troque a lâmpada queimada.

2 – Avaliar a necessidade de um programa emergencial de governança financeira doméstica balançada. Ou seja, pare de estourar a cheque especial.

3 – Esquematizar uma agenda de atividades gerenciais de maneira a criar um gap vital para atender os clientes internos em sua organização. Traduzindo, converse sempre com seus colaboradores.

Joãozinho lembre-se, agora você ganhou o direito de complicar. Então… relaxe e complique. Se demonstrar competência para isto, você será promovido a diretor.

Engenheiros, SQAs, analistas de sistemas, fujam das complicações, simplifiquem… institucionalizar um processo de produção de software caracteriza-se como a implementação da ciência do óbvio.

Abraços

José Augusto Fabri

fabri@femanet.com.br

Como montar um bom currículo para um emprego de TI?

Posted in off topic on September 23, 2009 by José Augusto Fabri

Hoje, logo pela manhã, um aluno apresentou-me a questão intitula esse post. A série “Emprego de A a Z” apresentada por Max Gehringer pode ajudar a todos.

Abraços

J. A. Fabri – fabri@femanet.com.br