Uma Análise Sistêmica dos Problemas enfrentados por Empresas de Software durante o Processo de Engenharia de Requisitos Aluno: Daniel de Andrade Penaforte |[email protected]| Orientador: Carina Frota Alves |[email protected]| Co-orientador: Antônio Carlos Valença |[email protected]| Tópicos • Contexto • Objetivo • Dinâmica de Sistemas Linguagem Sistêmica Modelagem pela DS Arquétipos Sistêmicos • Principais Problemas com ER • Análise dos Problemas • Considerações Contexto • Durante o ciclo de desenvolvimento de software, as organizações se vêem diante de diversos problemas relacionados à etapa de requisitos, os quais são os mais caros de se corrigir nas fases subseqüentes. • Pesquisas mostram que fatores associados aos requisitos como críticos para o sucesso ou falha nos projetos de software. • A Dinâmica de Sistemas apresenta-se como uma ferramenta ideal para a modelagem de sistemas complexos, estruturando o pensamento nas tomadas de decisões. Objetivo • Realizar um levantamento dos principais problemas enfrentados por empresas de software durante o processo de ER, e abordá-los sob a ótica da Dinâmica de Sistemas. LEVANTAR PROBLEMAS APLICAR O MÉTODO DE ANÁLISE EXTRAIR E INTERPRETAR MODELOS Problema 1 Problema 2 ... Problema n ... Modelo m DINÂMICA DE SISTEMAS Modelo 1 Modelo 2 Dinâmica de Sistemas • Teve origem no MIT (Massachusetts Institute of Technology) a partir de estudos realizados por Jay W. Forrester. Industrial Dynamics - 1961 Urban Dynamics - 1968 World Dynamics - 1973 • É uma metodologia para estudar e gerenciar sistemas complexos de feedback. • “A Dinâmica de Sistemas pretende analisar o comportamento da floresta em oposição ao estudo das árvores individualmente” (Forrester) Linguagem Sistêmica • Variáveis ou elementos do sistema m • Relações de causa-efeito • Atrasos (delay) Erros Descobertos o Retrabalho Produtividade m Esforço Físico Dor Muscular • Enlace, circuito ou ciclo de feedback m Nascimentos m R m População o B Mortes Modelagem pela DS • Os objetivos para a construção de um modelo são: Entender como um sistema real trabalha Conhecer os fatores que influenciam o comportamento deste sistema Explorar os efeitos de vários cenários e políticas no comportamento do sistema Ter a capacidade de compartilhar com outros participantes os seus resultados • Há duas abordagens na DS para a criação de um modelo: Soft ou Mental Uma forma de gerar O Modelo insight e debates a respeito do mundo real Objetivo Insight e aprendizagem Hard ou Formal Uma representação do mundo real Soluções e otimizações Arquétipos Sistêmicos • Estruturas sistêmicas genéricas compostas por relações de causaefeito cíclicas que se repetem em diferentes contextos. • Ao longo de 50 anos de pesquisa foram identificados 11 arquétipos. Balanceamento com retardo, Limite ao crescimento, Sucesso para os BemSucedidos, Solução Quebra-Galho, Transferência de Responsabilidade, Deriva de Metas, Escalada, Crescimento e Subinvestimento, Tragédia do Fator Comum, Adversários Acidentais e Princípio da Atratividade. • A revelação destas estruturas pode inspirar estratégias de ação eficazes para as situações problemáticas que elas representam. Método de Análise • Uma adaptação à proposta de Peter Senge para a realização da Modelagem Soft da Dinâmica de Sistemas. Problemas na ER • 2 pesquisas foram tomada como base para a realização do levantamento dos principais problemas: Principais problemas levantados Requisitos iniciais vagos, Falta de um Processo de Hall e Beecham (Reino Unido) Requisitos Definido, Crescimento dos requisitos, Complexidade da Aplicação, Pobre compreensão das necessidades do usuário e Rastreamento de requisitos inadequado Falta de um Processo de Engenharia de Requisitos Alves e Pereira (Porto Definido, Dificuldade de Entender as reais necessidades do Digital) usuário, Dificuldade de interação com Clientes e Usuários e Dificuldade em Gerenciar Requisitos Análise: Falta de um Processo de ER Definido • Na pesquisa de Alves e Pereira, 53% das empresas participantes afirmaram não possuir um processo de ER bem definido. • Na pesquisa de Hall e Beecham, este problema representa 24% do total de problemas inerentes ao processo de ER levantados. • Definição do Problema: As empresas de software não possuem um Processo de Engenharia de Requisitos bem definido, seguindo um processo ad-hoc, subestimando (ou mesmo ignorando) os benefícios trazidos por um processo bem definido. Arquétipo 1: Solução Quebra-Galho [1/5] • Ao tentarmos resolver um Problema através de uma Solução Rápida, surgem com o tempo Conseqüências não intencionadas que agravam ainda mais o Problema. m Problema o R B Consequências Não Intencionadas m m Solução Rápida Arquétipo 1: Solução Quebra-Galho [2/5] • Ciclo de balanceamento que representa a tentativa de diminuir a Pressão do Cliente através da Promessa de Prazos Curtos e Entregas Rápidas. Pressão do Cliente o B m Promessa de Prazos Curtos e Entregas Rápidas Arquétipo 1: Solução Quebra-Galho [3/5] • Ciclo de reforço que representa o agravamento do problema (Pressão do Cliente) em virtude das conseqüências não intencionadas (Má especificação de Requisitos, Falhas nas Funcionalidades e Baixa Aceitação do Sistema) surgidas a partir da solução rápida (Promessa por Prazos Curtos e Entregas Rápidas) tomada. Pressão do Cliente R m Promessa de Prazos Curtos e Entregas Rápidas m Má Especificação de Requisitos, Falhas nas Funcionalidades e Baixa Aceitação do Sistema m Arquétipo 1: Solução Quebra-Galho [4/5] • Arquétipo da Solução Quebra-Galho na Falta de um Processo de ER Definido. Pressão do Cliente m o R B m Promessa de Prazos Curtos e Entregas Rápidas Má Especificação de Requisitos, Falhas nas Funcionalidades e Baixa Aceitação do Sistema m Arquétipo 1: Solução Quebra-Galho [5/5] • REFLEXÕES Além das conseqüências INTENCIONADAS que se deseja obter, podem surgir conseqüências NÃO INTENCIONADAS que prejudiquem ainda mais a situação. O tempo de espera entre a solução e as conseqüências pode ser grande o suficiente para dissociar o efeito da causa. Analisar se a solução rápida tomada é, de fato, uma solução fundamental. Arquétipo 2: Crescimento e Subinvestimento [1/6] m m B Ação para o Crescimento R Demanda m o Desempenho m o Capacidade B Necessidade de Investimento Percebida m m Investimento em Capacidade Arquétipo 2: Crescimento e Subinvestimento [2/6] • Ciclo de reforço que representa o crescimento das empresas a partir da Redução do Prazo de Entrega. m Redução do Prazo de Entrega m R Demanda por Entrega Rápida de Novas Versões do Produto Arquétipo 2: Crescimento e Subinvestimento [3/6] • Ciclo de balanceamento que representa uma limitação ao crescimento em virtude da redução da Satisfação das Necessidades dos Clientes. m Demanda por Entrega Rápida de Novas Versões do Produto B Satisfação das Necessidades dos Clientes o Arquétipo 2: Crescimento e Subinvestimento [4/6] • Ciclo de balanceamento que representa a necessidade de investimento para a melhoria da Satisfação das Necessidades dos Clientes. Satisfação das Necessidades dos Clientes m o Capacidade de Percepção das necessidades do Cliente B Necessidade de Esforço para Atividades de Entendimento do Problema e Planejamento m m Processo de Engenharia de Requisitos Definido Arquétipo 2: Crescimento e Subinvestimento [5/6] • Arquétipo de Crescimento e Subinvestimento na Falta de um Processo de ER Definido. m Redução do Prazo de Entrega R m Demanda por Entrega Rápida de Novas Versões do Produto B m o Satisfação das Necessidades dos Clientes m o Capacidade de Percepção das necessidades do Cliente B Necessidade de Esforço para Atividades de Entendimento do Problema e Planejamento m m Processo de Engenharia de Requisitos Definido Arquétipo 2: Crescimento e Subinvestimento [6/6] • REFLEXÕES Deve-se atentar para o tempo em que os investimentos devem ser feitos, em virtude do nível do comprometimento do desempenho. É necessário investir na Definição de um Processo de ER que seja adequado à realidade da organização. Dificuldades e Limitações • Há pouca disponibilidade de trabalhos semelhantes para abordar problemas relacionados a empresas de software • A atividade intuitiva de identificação dos arquétipos requer experiência na aplicação dos conceitos, portanto houve dificuldades na extração dos arquétipos para análise dos problemas • Dificuldade na identificação de fatores críticos para os problemas e das relações de causalidade entre os mesmos Considerações [1/2] • CONCLUSÕES A Dinâmica de Sistemas, através das suas técnicas e dos seus conceitos, apresenta-se como uma ferramenta útil para ajudar na compreensão e entendimento dos problemas de requisitos A partir da leitura dos diagramas e arquétipos resultantes da modelagem dos problemas utilizando o método sistêmico, é possível refletir sobre o comportamento das estruturas e entender a dinâmica das relações entre os fatores influentes sobre os problemas, gerando aprendizado e resultando em possíveis estratégias de ação para a resolução dos mesmos Considerações [2/2] • TRABALHOS FUTUROS Aplicação do método sistêmico tal e qual sugerido por Peter Senge, para a realização de um diagnóstico com algumas empresas do Porto Digital, na cidade do Recife A aplicação deste método de modelagem e análise pode ser utilizada em qualquer situação problemática complexa, inclusive em outras áreas referentes ao desenvolvimento de software Uma Análise Sistêmica dos Problemas enfrentados por Empresas de Software durante o Processo de Engenharia de Requisitos Aluno: Daniel de Andrade Penaforte |[email protected]| Orientador: Carina Frota Alves |[email protected]| Co-orientador: Antônio Carlos Valença |[email protected]|