Archive for the qualidade de software Category

O lúdico aplicado na melhoria de um processo de software

Posted in processo de produção de software, qualidade de software on March 31, 2014 by José Augusto Fabri

Várias pessoas questionam o motivo que me levou a construir bonecos e pipas durante os programas de melhoria de processo. O texto abaixo justifica a utilização de tais práticas.

Vários programas de melhoria de processo são abortados durante a sua implementação. Este problema é recorrente em empresas do segmento produtivo de software, pois os responsáveis pela implementação dos referidos programas encaram os modelos de qualidade (CMMI e MPS-BR) como uma “camisa de força, ou seja, as formas de implementação das áreas chaves do processo, propostas pelos referidos modelos, são interpretadas como verdade absoluta.

Durante a melhoria de um processo de software os colaboradores de uma determinada empresa devem alterar a sua forma de trabalho. Novas atividades ou tarefas devem ser inseridas na estrutura do processo, formulários que antes não eram preenchidos passam a ser e, principalmente, aspectos ligados à produtividade e qualidade são questões de suma importância.

Algumas empresas alteram a sua cultura de trabalho durante a execução do plano de melhoria de processo. Trabalhar, como consultor, dentro de um ambiente permeado por estas situações requer certo “jogo de cintura”. É necessário sair do trivial, treinamentos e possíveis alterações na forma de trabalho devem ser implementadas com parcimônia. Técnicas diferenciadas, com foco nas áreas chaves do processo, devem ser atacadas com eficiência e eficácia. A motivação dos envolvidos se caracteriza como um fator crítico de sucesso.

Dentro deste prisma acredita-se que os aspectos inerentes à melhoria de processo de software são suportado por questões ligadas ao ensino e aprendizagem. Ambos ocorrem em duas vias, hora os membros de uma consultoria (em melhoria de processo) compartilham o seu conhecimento com os envolvidos no ambiente produtivo – o ensino – em outros momentos são os envolvidos que agregam ao portfólio da consultoria – a aprendizagem.

Para compor um ambiente de ensino e aprendizagem (de mão dupla) altamente motivador, é necessário trabalhar o conceito do lúdico. A motivação tem como foco proporcionar prazer por meio do desenvolvimento de uma determinada atividade, e uma das formas de obter esse prazer é utilizar o referido conceito.

Salienta-se que os envolvidos com o aspecto produtivo de software, na maioria das empresas, são oriundos de vários ambientes. A diversidade na formação, na origem regional, no aspecto cultural e, principalmente, na experiência caracteriza-se como uma constante. Este fato alinha-se diretamente com uma dos principais pressupostos relacionados a aprendizagem.

“a aprendizagem humana pressupõe uma natureza social específica e um processo por meio do qual os aprendizes penetram, de forma diferenciada, dada a sua diversidade, na vida intelectual daqueles que o cercam” (Vygosky (1991)).

De posse do pressuposto destacado e assumindo que todos os envolvidos em um programa de melhoria de processo concebem representações sobre um determinado objeto (forma de trabalho, formulário a ser preenchido, padrão a ser seguido) por meio de suas práticas sociais (a diversidade na formação, na origem, na cultura, na experiência), e essas representações são delineadas a partir do grau de interesse e de qualidade (da informação obtida ou do produto gerado) proporcionadas pelo objeto; concluí-se que os atores sociais imersos no processo de ensino e aprendizagem estabelecem um relacionamento de simbolização/interpretação para com o objeto manipulado. É, justamente, este relacionamento que configura o significante e o significado do objeto.

O significante caracteriza-se como o signo linguístico é uma “imagem acústica” – sua consistência está na forma do objeto. O significado provê ao ator questões relacionadas ao conteúdo – o que eu posso fazer com o objeto.

O significado é assimilado por meio de uma rede de conhecimento pré-estabelecida pelos atores (envolvidos em um programa de melhoria de processo) é, esse tipo de rede que se encontra a origem e a permanência da simbolização/interpretação dos objetos.

Diversos teóricos da área pedagógica (diSessa et. al. (1982, 1983, 1985, 1988, 1993). Smith et. al. (1993), Clement (1983), McCloskey (1983), Resnick (1983)) têm como premissa que as concepções prévias devem ser compreendidas como parte ativa do desenvolvimento da simbolização/interpretação. Durante a institucionalização (ou melhoria) de um processo, para um determinado meio (ambiente produtivo de software), num mesmo tempo e num mesmo espaço (células produtivas do ambiente – por exemplo: célula de teste) teremos, para cada colaborador diferentes formas de simbolização/interpretação.

Dentro do contexto delineado, é possível delimitar a construção do conhecimento nos aspectos primitivos fenomenológicos, estruturas elementares obtidas por abstrações simples, fracionadas, que se relacionam entre si, com o objetivo de promover um determinado significado.

Segundo Kishimoto (1999), as técnicas lúdicas podem se relacionar de forma perspicaz com as estruturas elementares obtidas pelas abstrações. Estas técnicas são criadas com o objetivo de estimular o processo de aprendizagem. De nada adianta institucionalizar, durante o programa de melhoria de processo, questões ligada à produtividade, qualidade e gerência, se estas não se constituem conceitualmente para todos os envolvidos com o ambiente produtivo de software. Não se espera, por parte dos envolvidos, concepções alternativas sobre as questões delineadas, se estes não estiverem engajados no programa de melhoria. É necessário seduzir  o que lhes é apresentado, que encontrem o verdadeiro significado das atividades/tarefas (do processo), para que possam compreender a importância de um programa de melhoria. As práticas lúdicas vão de encontro à sedução supracitada.

É por meio do lúdico que os envolvidos em um ambiente de melhoria de processo são livres para determinar suas ações. A essência do brincar e a criação de uma nova relação entre os objetos, inerente a uma determinada área chave do processo, podem promover um ganho substancial no tempo e na qualidade de todo programa de melhoria. O brincar se constitui em um processo de extrema importância a favorece as transformações internas de um determinado ambiente.

Por fim, é importante discutir o lúdico como ideia de divertimento, um fazer humano amplo, que vai além de brincadeiras e jogos, traduzindo o sentimento, as atitudes de um sujeito envolvido em uma determinada ação, referindo-se ao prazer da celebração em função de envolvimento efusivo, transpondo a sensação de plenitude que acompanha significados verdadeiros dos brinquedos (em nosso caso, os objetos).

É dentro deste panorama que modelo de processo não pode ser encarado como uma “camisa de força”.

J. A. Fabri – fabri@utfpr.edu.br

Proposta de um modelo para classificação dos programas de residência em software espalhados pelo país

Posted in gestão do conhecimento, processo de produção de software, qualidade de software on October 8, 2013 by José Augusto Fabri

Pessoal!

Venho trabalhando com o conceito de residência em software algum tempo. Nesse período tive contato direto com 7 programas. Cada um dos programas possui um modelo de implementação diferenciando. Ao analisar os modelos, tomei a liberdade de classifica-los em níveis de qualidade:

  • Nível 1 – Totalmente simulado: O ambiente de residência está incubado em laboratório e os projetos de software são simulados.
  • Nível 2 – Parcialmente simulado: O ambiente de residência está incubado em laboratório e os projetos software são importados da indústria. Neste caso o ambiente também é responsável pela entrega do software.
  • Nível 3 – Ambiente real de execução de projeto de software: O ambiente de residência em software é caracterizado na indústria (empresa do setor produtivo de software) e os projetos software são desenvolvidos para atender clientes reais.
  • Nível 4 – Ambiente real de execução de projetos de software e exportação de conhecimento: O ambiente de residência em software é caracterizado na indústria (empresa do setor produtivo de software) e os projetos software são desenvolvidos para atender clientes reais. Além de atender estes clientes o ambiente exporta conhecimento sobre processo de software, gestão de projetos e de qualidade e ferramentas.

Dos 7 programas: 1 se encontra no nível 1, 2 se encontram no nível 2, 4 se encontram no nível 3. Importante: Nenhum deles se encontram no nível 4.

O trabalho completo pode ser acessado por desta referência.

Duarte, A. S, et. al (2013). Proposal of a Model to Classify Software Residency Environments. InConferência Ibérica de Sistemas e Tecnologias de Informação Proceedings. Lisboa. Portugal.

Até a próxima.

J. A. Fabri – fabri@utfpr.edu.br

CMMI: número de certificações por continente

Posted in qualidade de software on July 3, 2013 by José Augusto Fabri

Pessoal,

Venho acompanhando sistematicamente a evolução do número de certificações no modelo CMMI. Este link traz os últimos números publicados pelo SEI.

Para quem não conhece o modelo segue uma descrição básica.

CMMI (Capability Maturity Model Integration) é um modelo de referência que contém práticas  necessárias à maturidade em Systems Engineering (SE), Software Engineering (SW), Integrated Product and Process Development (IPPD), Supplier Sourcing (SS). Desenvolvido pelo SEI (Software Engineering Institute) - Universidade Carnegie Mellon, o CMMI caracteriza-se como uma evolução do CMM e norteia um modelo único para o processo de melhoria.

O CMMI é dividido em 5 níveis de maturidade as empresas nos níveis 4 e 5 possuem uma maior qualidade no seu processo de software quando comparadas as empresas dos níveis 1 e 2.

Para maiores informações do modelo, acesse: http://www.sei.cmu.edu/cmmi/

J. A. Fabri

3Cs na Especificação de Requisitos de Software (ERS)

Posted in gestão de projetos, processo de produção de software, qualidade de software on November 20, 2012 by José Augusto Fabri

A Especificação de Requisitos tem como objetivo mapear os requisitos funcionais e não funcionais de um software. A especificação deve traduzir de maneira clara, concisa e consistente (os 3cs) o que o software deve processar (no caso dos requisitos funcionais) em um determinado ambiente (abertura para os requisitos não funcionais).

É possível especificar software utilizando:

O documento de especificação de requisitos deve atender a todos os stakeholders do projeto. Clientes, desenvolvedores, engenheiros, testadores, gerentes devem entender qual o processamento que será realizado por um determinado requisito funcional (imerso no ambiente sistêmico) e a sua complexidade.

A literatura apresenta algumas boas práticas que contribuem diretamente com os 3Cs. Vamos a elas:

  • O que especificar? Requisitos Funcionais,  interfaces externas, performance, restrições, atributos de segurança (por favor complete a lista nos comentários se esqueci de algo).
  • Características de uma especificação: Correta, não ambígua, completa, consistente, os requisitos devem ser ranqueados dada sua importância, os requisitos devem ser verificáveis e rastreáveis.
  • Aplicar ferramentas para agilizar a especificação dos requisitos: A agilidade deve estar presente na construção e na leitura do documento. Lembre-se!!! Temos que gerar documentos claros, concisos e consistentes.

É importante salientar que as boas práticas não garantem totalmente a qualidade da especificação dos requisitos – é somente por meio de um contato constante com o cliente (veja os posts: 1, 2, 3 que reportam a importância do contato com o cliente) e com o ambiente sistêmico é que a especificação dos requisitos irá possuir um grau de qualidade aceitável. Neste ponto é possível mapear um dos fatores crítico de sucesso para qualquer projeto – comunicação com o cliente e com o ambiente.

Tenha em mente que especificar requisitos é de extrema importância para definir o escopo de um projeto. Um projeto com o escopo bem definido pode minimizar a recorrência de problemas ligados a gestão, principalmente em produtos caracterizados como software.

Abraços

José Augusto Fabri – fabri@utfpr.edu.br

Proposta de um modelo de rastreabilidade de requisitos permeado por mapas mentais.

Posted in gestão do conhecimento, processo de produção de software, qualidade de software on May 2, 2012 by José Augusto Fabri

Pessoal.

O artigo anexo a este texto, apresenta a proposta de um modelo de rastreabilidade de requisitos de software baseado em mapas mentais. O artigo será publicado na 7ª Conferência Ibérica de Sistemas e Tecnologias de Informação (junho) – Madri Espanha.

Artigo.

Abraços.

O outro lado das métricas de um software

Posted in gestão de projetos, gestão do conhecimento, processo de produção de software, qualidade de software on March 12, 2012 by José Augusto Fabri

Esta semana me deparei com uma questão extremamente interessante e complexa. Existe um modelo (ou métrica) que estime o valor agregado que um software irá trazer após a sua implantação?

O valor agregado caracteriza-se pelo aumento do capital intelectual, financeiro e de gestão em uma organização do setor produtivo dado a incorporação de uma entidade (pessoa, grupo de pessoas, software, ferramenta ou processo).

A implantação de um software (desde que seja bem conduzida) pode trazer um aumento substancial dos capitais elencados no parágrafo anterior, a organização analisa seu modelo negócio, reorganiza processos, realoca pessoas e reflete sobre questões relacionadas à persistência do conhecimento.

Introduzir métricas dentro deste contexto não é uma tarefa fácil, demanda conhecimentos que transcendem a esfera puramente técnica relacionada à definição, desenvolvimento e implantação de um software. É necessário conhecer profundamente o ambiente sistêmico no qual o software irá funcionar. Conceitos ligados a planejamento de produção devem fazer parte do escopo do profissional que irá promover a aplicação destas métricas.

Antes de conceber um modelo, tentarei compartilhar um caso (real) sobre o retorno temporal e financeiro na execução de um determinado processo negócio, dada a análise correta e reorganização de processos.

O exemplo

Caracterização do problema:  Zaca (nome fictício) é uma cidade do interior do Brasil. Como toda cidade ela deveria oferecer creche a suas crianças em período integral. Porém este fato não ocorre (não vamos entrar no mérito social da questão). Em virtude do não oferecimento das vagas em tempo integral, os pais matriculam seus filhos na creche A pela manhã e na creche B no período da tarde. Com isto a criança ocupa duas vagas, uma na creche A e outra na creche B, promovendo uma menor democratização no número de vagas. A secretaria municipal da educação (SME) percebeu a “necessidade” de construir um software que una o processo de matrícula nas creches em uma rede de dados. A caracterização sistêmica elaborada a partir da descrição problema pode ser visualizada por meio do diagrama de seqüência representado no lado esquerdo.

Solução do problema (emitida por um consultoria após analisar o ambiente sistêmico – vide diagrama a direita): Não é necessário implementar software sobre uma rede de dados que una o processo de matrícula. É necessário apenas reestruturar os processos de negócio. Como? Seguindo os passos abaixo:

a)      Entre as 16h e 18h as 6 creches devem comunicar via telefone a SME a disponibilidade de vagas dada alguma desistência.

b)      A SME deve disponibilizar uma pessoa para captar e controlar estas vagas.

c)       Os pais não irão realizar a matricula na creche e sim na SME (visto que a cidade é de pequeno porte).

De posse do exemplo questiono: Qual foi o valor da organização sistêmica (reestruturação do processo) efetuada?

Para tentar responder esta questão utilizei a seguinte premissa:

se valor > preço então benefício > custo

O valor (não financeiro e sim no sentido do retorno gerado para a organização) da análise efetuada é extremamente alto se comparado ao preço do software e da infra concebida na caracterização do problema. Este fato nos remete a um aumento substância do benefício coletivo, a prefeitura de Zaca pode aplicar toda a verba que seria destinada a construção do software para resolver o problema central – construir mais creches para atender as crianças em tempo integral.

Esboço do modelo de métricas pós-implantação

O esboço do modelo de métricas pós-implantação leva em consideração aumento da:

  • Capacidade de gestão da organização: O software implantado proporciona uma maior governança dentro do ambiente organizacional? É possível prever o tempo/esforço/custo de um projeto com maior grau de certeza? Antes da implantação do software quantas previsões de tempo/custo/esforço se concretizavam? Este número aumentou após a implantação? O que isto implica em termos de satisfação do cliente? Qual a colaboração do software junto aos padrões de qualidade da organização?
  • Capacidade financeira da organização: A implantação do software provê uma diminuição de tempo e esforço para a execução de uma determinada tarefa? Se sim, qual é o valor quantitativo desta diminuição?
  • Capacidade intelectual da organização: O desenvolvimento e a implantação do software promoveram o aumento da visão organizacional dos colaboradores? É possível quantificar este aumento? O software possui subsídios para armazenar conhecimentos explícitos sobre o processo de negócio? Se sim, este conhecimento é de fácil recuperação?

Analise o ambiente organizacional após a implantação do software e tente responder estas questões. As respostas iram refletir o valor agregado que um software traz após a sua implantação.

Fabri – Universidade Tecnológica Federal do Paraná (fabri@utfpr.edu.br).

Relatório do SEI sobre o CMMI – publicação de setembro de 2011

Posted in qualidade de software on October 14, 2011 by José Augusto Fabri

A tempo venho acompanhando o crescimento do CMMI no mundo, vejo o histórico: post 1, post 2, post 3, post 4post 5 e post 6. Neste post apresento os últimos resultados divulgados pelo SEI. A apresentação é feita a partir de um mapa conceitual, espero que todos consigam ler o referido mapa.

Abraços

José Augusto Fabri – fabri@utfpr.edu.br

A expansão da idéia da residência em software

Posted in processo de produção de software, qualidade de software on August 2, 2011 by José Augusto Fabri

Em 13 de maio de 2008 publiquei um texto sobre a idéia de residência em software. Na época existiam alguns programas que implementavam a referida idéia.

  • Programa de residência do Bank of New York Mellon;
  • Programa de residência da Universidade Federal da Bahia;
  • Programa de Residência em Desenvolvimento de Software PUC;
  • Residência em Teste de Software do Centro de Informática da Universidade Federal de Pernambuco.

O texto na íntegra pode ser encontrado neste link.

De lá para cá pude participar de diversos programas de residência (direta ou indiretamente), tanto em empresas quanto em universidades, destaco os:

Proposta de Residência em um curso de pós-graduação – FATEC Ourinhos.

Programa de Residência em Software da Fundação Educacional do Município de Assis – FEMA. Participação esta ocorreu de forma indireta, visto que os idealizadores deste programa participaram da implementação da residência na FATEC-Ourinhos (programa este idealizado pelo autor deste post).

Atualmente, trabalho com a idéia da residência na Universidade Tecnológica Federal do Paraná e em breve divulgarei, via blog, o resultado de minhas pesquisas.

No mês de julho fiz um levantamento sobre os programas de residência em software espalhados pelo país, vejam só encontrei vários.

Programa de Residência em Software com Foco em Governo Eletrônico.

Proponente: Universidade Federal da Bahia, Departamento de Ciência da Computação, Centro de Processamento de Dados, DELL Brasil.

Foco: Alunos do ultimo ano, recém formados.

Objetivo: Promover formação teórica e orientação para desenvolvimento de atividades de pesquisa em tópicos avançados relacionados ao tema de Governo Eletrônico.

Implementação: 15 estudantes participaram, 8 se caracterizaram como residentes. Durante o programa os Residentes desenvolveram uma monografia ligada algum tópico de pesquisa visto durante o programa. Disciplinas delineadas durante o programa de residência: Governo Eletrônico (carga horária: 20 horas); Engenharia de Software para Aplicações Web (30 horas); Arquiteturas para o Desenvolvimento de Aplicações Distribuídas (30 horas); Integração de Aplicações Distribuídas                (20 horas); Computação Móvel                (20 horas); Gestão do Conhecimento, Ontologias e Web Semântica (20 horas). Análise e Modelagem de Processos I (30 horas). Análise e Modelagem de Processos II (30 horas), totalizando 200 horas.

Programa de Residência em Software da FUCAPI.

Proponente: Fundação Centro de Análise, Pesquisa e Inovação Tecnológica – Manaus – AM.

Foco: formar especialistas em Arquitetura, Gerência de Configuração, Análise de Negócios e Testes.

Objetivo: Melhoria e aumento na formação de mão de obra na região norte do país.

Implementação: Projeto Financiado pelo CNPq, desenvolvido dentro de uma fábrica de software internalizada na fundação. O valor da bolsa para o residente gira em torno de R$ 1000,00. O programa se divide em duas fases:  1 – Formação teórica; 2 – Formação prática. Na fase 1 os residentes participam de cursos teóricos modulares, totalizando uma carga horária de 578 horas, com disciplinas Relacionadas a: Tecnologias Java,  Banco de Dados, Análise, Arquitetura, Teste e Qualidade de Software e Gerência de Projetos de Software. Na 2 será iniciado o módulo de vivência prática onde os residentes serão inseridos diretamente nas atividades de desenvolvimento de software do FASOFT/FUCAPI. A vivência prática se dará em três etapas: Primeira: Identificação do perfil dos residentes e distribuição destes em grupos de acordo com a linha de formação específica dos orientadores da FASOFT/FUCAPI. Segunda: compreende um período de dois meses de simples observação e acompanhamento das atividades executadas pelos analistas, arquitetos e desenvolvedores seniores participantes desta proposta. Terceira: Execução das atividades práticas de desenvolvimento acompanhadas pelos orientadores da FASOFT/FUCAPI com duração de seis meses.

Programa de Residência Alcatel-Lucent/CESAR

Proponente: Programa de Residência Alcatel-Lucent e Centro de Estudos e Sistemas Avançados de Recife.

Foco na solução dos Laboratórios Genesys, controlada pelo grupo Alcatel-Lucent. A Genesys atua em áreas como análise de dados e desenvolvimento para produção de relatórios, programação de Unidade de Resposta Audível (URA), desenvolvimento de estratégias e roteamento para encaminhamento de chamadas e integrações com as plataformas de contact center do cliente, além de soluções para centrais de atendimento.

Objetivo: Captação de mão de obra qualificada.

Implementação: O programa admite somente profissionais formados com mais de 3 anos de experiência ou mestres. Residentes geralmente são Bolsistas. Durante a execução do projeto, residentes serão acompanhados por tutores e inseridos no ambiente profissional do CESAR. A plataforma habilita o profissional a prestar serviços ou potencialmente ser contratado pela Alcatel-Lucent e seus parceiros, tanto no Brasil quanto no exterior.

Programa de Residência em Software da B2ML

Proponente: B2ML, Universidade Federal de Itajubá e CNPq

Foco: Desenvolvimento de Software.

Objetivo: capacitar mão-de-obra especializada em desenvolvimento de software web-based.

Implementação: Os residentes possuem Bolsa de R$1045,89, participam de um curso de Especialização em Engenharia WEB e trabalham junto em um projeto na B2ML.

Enfim, existem diversas outras iniciativas que não foram apresentadas diretamente aqui, entre elas destaco os programas da Unochapecó, da UFMG e da UFPR.

Se você conhece mais algum programa, por favor, registre em seus comentários.

José Augusto Fabri – fabri@utfpr.edu.br

Como anda no CMMI no mundo

Posted in qualidade de software on July 27, 2011 by José Augusto Fabri

A tempo venho acompanhando o crescimento do CMMI no mundo, vejo o histórico: post 1, post 2, post 3, post 4 e post 5. Neste post apresento os últimos resultados divulgados pelo SEI.

Veja no gráfico o número de empresas que atingiram CMMI nível 5 de março de 2008 a março de 2011. Em 2008 a Índia possuia 151 empresas no nível 5, em 2011 215, crescimento de 64 empresas. Os EUA cresceram 45, a China 30, Japão 3 e o Brasil 5.

Evolução nos últimos 3 anos, perceba que a Índia possui 215, os EUA 159, o Japão 18 e o brasil 13. As curvas Indiana e Americana são bem mais acentuadas quando comparadas as demais.

O relatório completo, publicado pelo SEI, pode ser verificado neste link.

José Augusto Fabri – fabri@utfpr.edu.br

Apresentação do EQSW/PBQP – Curitiba – PR

Posted in qualidade de software on June 2, 2011 by José Augusto Fabri

Pessoal,

Disponibilizo a apresentação do projeto Ontologias e Mapas Conceituais na Transferência de Conhecimento sobre Processo de Software a ser apresentado no Encontro de Qualidade de Software – Programa Brasileiro da Qualidade e Produtividade em Software. Evento a ser realizado em Curitiba – PR paralelo ao Simpósio Brasileiro de Qualidade de Software – SBQS.

O projeto é coordenado pelos professores:

Alexandre L´Erario;

André Domingues e

José Augusto Fabri

Abraços

J. A. Fabri

Follow

Get every new post delivered to your Inbox.

Join 37 other followers