• Nenhum resultado encontrado

Administração da Produção de Software através da KanbanSoft

N/A
N/A
Protected

Academic year: 2021

Share "Administração da Produção de Software através da KanbanSoft"

Copied!
6
0
0

Texto

(1)

Administração da Produção de Software através da KanbanSoft

Álvaro Augusto Neto

Nilson Sant'Anna

Laboratório de Computação e Matemática Aplicada

Instituto Nacional de Pesquisas Espaciais

[email protected]

[email protected]

Resumo

Este trabalho apresenta uma abordagem inicial para o gerenciamento de uma fábrica de software, baseado no aumento da escala de produção, na automação dos processos de desenvolvimento e gerenciamento, e na utilização dos modernos conceitos de Engenharia da Produção.

Palavras-chave: Fábrica de Software, Qualidade de

Software, Produção Enxuta, Produtividade.

1. Introdução

O dispêndio com desenvolvimento e manutenção de software tem crescido a taxas anuais extremamente elevadas, quando comparadas com outros setores da economia.

Apesar deste crescimento significativo, observa-se que os produtos gerados pela chamada “indústria de software” nem sempre atendem satisfatoriamente as necessidades de seus usuários, principalmente com relação aos aspectos ligados à qualidade, prazos de desenvolvimento e custos de produção ou manutenção.

Estas deficiências decorrem não só da complexidade dos processos envolvidos e da variabilidade dos ambientes de desenvolvimento de software, mas também, da falta de instrumentos capazes de propiciar um maior controle e gerenciamento de todas as etapas existentes ao longo do processo de produção.

Esses problemas têm sua intensidade ampliada na medida em que aumenta a escala em que a produção de software é realizada, como ocorre nas chamadas “fábricas de software”.

2. Objetivos do Trabalho

A diretriz principal deste trabalho consiste em verificar se a produção de software pode ser realizada e gerenciada segundo a metáfora do modelo funcional fabril, de maneira semelhante ao que acontece em outros setores consolidados da engenharia, como por exemplo, o aeroespacial e o automobilístico.

O segundo enfoque em importância pretende verificar se o conjunto de métodos, técnicas e ferramentas que propiciaram grandes progressos na área industrial, tais como o Sistema Toyota de Produção e a Produção Enxuta (Lean Production) são aplicáveis à produção sistemática de software, de maneira a caracterizar um modelo produtivo em que a gerência da fábrica possa ser realizada segundo os mais modernos princípios de administração da produção.

3. Características do Processo de

Desenvolvimento de Produtos de

Engenharia de Software

Diversas estratégias têm sido propostas para o aperfeiçoamento de produtos e serviços, que apresentam alto conteúdo de software agregado. Numa breve comparação com o que já ocorreu em outros setores da indústria, verifica-se que tais abordagens normalmente enfocam três aspectos principais [1]:

a) O primeiro salienta os aspectos associados à melhoria da “Engenharia do Produto”, visando a produção de software melhor, mais confiável e fácil de criar, usar e manter.

b) O segundo envolve características associadas com a “Engenharia de Produção”, representadas principalmente pelas melhorias nos processos de desenvolvimento de software.

c) A terceira envolve melhorias técnicas e gerenciais na administração da produção de software. Ao se analisar as estratégias propostas, verifica-se o estágio atual da produção de software não apresenta o mesmo grau de evolução que outros setores da engenharia. Apesar de envolverem um conjunto de atividades semelhantes a outros produtos [2,3,4], observa-se que os processos utilizados são bem menos evoluídos.

De uma maneira simplificada esses processos envolvem:

análise e definição das características dos produtos a serem desenvolvidos, bem como, das restrições existentes para sua implementação;

(2)

detalhamento e representação das funcionalidades necessárias;

análise e definição das soluções que serão implementadas;

desenvolvimento e implementação dessas soluções;

verificação e validação da sua adequabilidade e conformidade;

implantação; e

gerenciamento de todos os elementos técnicos, humanos, organizacionais e financeiros envolvidos na produção.

Apesar da evolução técnica e metodológica ocorrida nos últimos anos, observa-se que em grande parte dos casos esse ciclo ainda não é suficientemente conhecido e padronizado, de forma que possa ser planejado e controlado satisfatoriamente pelos gerentes de desenvolvimento. Observa-se também que a produção de software caracteriza-se pelo elevado grau de personalização das tarefas, pelo escopo diferenciado de cada projeto, e pela liberação de elevado volume de recursos após o término de sua execução [3].

Embora alguns projetos de desenvolvimento de software possam parecer similares, cada um deles é único [3]. Sendo assim, os fluxos de trabalho necessitam ser redefinidos a cada novo projeto, pois a seqüência de operações e os processos envolvidos em cada uma delas são praticamente exclusivos de cada projeto, e acabam sendo desenvolvidos especificamente para atender aos requisitos de cada cliente.

Este fato faz com que os projetos normalmente sejam complexos e apresentem um grande número de tarefas inter-relacionadas, o que acarreta a necessidade de uma intensa coordenação entre elas.

Observa-se também que o desenvolvimento de software normalmente faz uso intensivo de certos recursos e aptidões técnicas para a execução de determinadas etapas de sua produção. Verifica-se, em grande parte dos casos, que após a conclusão dessas tarefas, esses recursos são pouco utilizados e permanecem ociosos, embora alocados ao projeto no restante do tempo.

Devido a personalização elevada e ao baixo índice de padronização na escolha e determinação dos principais processos, pode-se afirmar que a produção de software apresenta características funcionais típicas do modelo de produção “por encomenda”, evidenciado pela realização de empreendimentos temporários voltados à geração de produtos ou serviços únicos [5].

Como conseqüência desses fatos, observa-se que a produção de software pode ser realizada segundo a metáfora do modelo funcional fabril, porém restrita à produção não seriada, como ocorre por exemplo, na fundição por encomenda de grandes peças de aço, ou

mesmo, na construção de novas instalações prediais. Verifica-se também que os processos técnicos e gerenciais utilizados necessitam passar por grande evolução, de forma a se equiparar com o que já é praticado em outros setores da indústria.

Como resposta a essas questões, muitas organizações produtoras de software passaram a organizar o seu setor produtivo segundo o modelo fabril, que será analisado a seguir.

4. A Fábrica de Software

Uma unidade de produção de software em larga escala se caracteriza pela execução das seguintes tarefas [6]:

desenvolvimento de novos produtos;

ampliação dos produtos em uso;

manutenção dos produtos entregues;

suporte aos produtos entregues.

Esse conceito representa não só uma estrutura formalmente organizada para o cumprimento dos objetivos de produção, mas principalmente, uma abordagem das questões de produção voltada para obtenção de resultados com a qualidade e previsibilidade observados em outros setores da indústria [6,7,8].

Esse enfoque voltado à obtenção de resultados traz consigo uma mudança do paradigma tradicionalmente utilizado no desenvolvimento de software, que em grande parte dos casos ainda é baseado numa estrutura pouco automatizada e intensiva em trabalho humano [9].

No modelo fabril de produção, para aumento da eficiência do conjunto, boa parte dos processos produtivos e gerenciais necessitam ser padronizados e automatizados, de forma a manter sob controle a complexidade e a própria escala em que a produção é realizada. Para isso utilizam-se intensivamente de recursos de capital, tais como as novas ferramentas e ambientes integrados para desenvolvimento de software, representadas pelos I-CASE-Integrated Computer-Aided Software Engineering [8], que procuram apoiar de maneira automatizada os diversos processos envolvidos.

De maneira semelhante ao que acontece em outros setores industriais, a utilização de um conjunto de recursos automatizados, para suporte ao processo de desenvolvimento e gestão da produção, apresenta custos e necessidades de investimentos que não se mostram rentáveis para pequenos volumes de produção. Isto faz com que outra característica marcante da fábrica de software seja a produção em larga escala.

Para se enquadrar adequadamente nesse perfil as organizações também necessitam ser bem administradas e apresentar processos de produção bem definidos e voltados ao atendimento das necessidades de seus clientes.

(3)

O aumento da escala de produção de software acarreta um crescimento significativo da complexidade dos processos produtivos. Isto ocorre devido às dificuldades para integração e harmonização das características técnicas dos diversos artefatos produzidos ao longo de todos os processos. Também implica maiores dificuldades gerenciais para acompanhamento e controle da produção e da interação entre as equipes envolvidas.

Ao analisar as mudanças trazidas pelo aumento da escala de produção, verifica-se que ela não altera significativamente a tecnologia de produto em relação aos ambientes tradicionais de desenvolvimento. No entanto, observa-se a falta de uma sistemática mais adequada para identificar as reais necessidades dos clientes e as características que, sob a sua ótica, agreguem maior valor aos artefatos produzidos.

Observa-se também que o planejamento e controle da produção de software em larga escala pode ser melhorado através da adaptação de técnicas consagradas para a gerência de grandes volumes de produção, que foram desenvolvidas e aperfeiçoadas em outros setores da indústria. A princípio, são necessárias apenas algumas modificações para sua adequação às peculiaridades do produto, e do seu modo de produção.

Neste aspecto observa-se que existe um grande potencial para melhorias nos processos, de forma a permitir que a produção de software se realize através de um fluxo contínuo, orientado pelas necessidades dos clientes, desde suas especificações, até o produto final. Também verifica-se que o gerenciamento dos processos envolvidos na produção de software em larga escala necessita ser melhor adaptado às alterações causadas pelo aumento da sua complexidade.

Finalizando, pode-se constatar que os processos envolvidos na produção de software em larga escala têm sido relativamente pouco estudados e aperfeiçoados, quando comparados com outros setores industriais. As sistemáticas usualmente empregadas nesse sentido nem sempre trazem os resultados esperados, ou se mostram aceitáveis sob o ponto de vista econômico.

Verifica-se portanto, a necessidade de um conjunto de medidas coerentes e orientadas à obtenção de resultados. Neste aspecto reside um grande potencial para as melhorias que são detalhadas a seguir.

5. Rumo a Evolução na Produção de

Software Sistematizada

As questões clássicas que envolvem a gestão da produção de software enfocam a necessidade contínua de aumentar a quantidade de software produzida por unidade de mão de obra, capital e insumos necessários para sua elaboração [10].

Na atualidade os objetivos fundamentais vão além dessas questões, abrangendo também a flexibilização dos processos de produção e a eliminação de todas as fontes de desperdício. Através deste enfoque muitas organizações têm conseguido ampliar sua capacidade empresarial para produzir e competir num cenário globalizado.

Com esse objetivo foi desenvolvido um conjunto de técnicas, que passou a ser denominado como Produção Enxuta-PE (Lean Production), e que representa atualmente uma das mais bem sucedidas iniciativas para implantação de programas de melhoria da qualidade e produtividade industrial.

Embora os conceitos da PE tenham surgido no ambiente fabril de manufatura seriada, suas práticas são aplicáveis ao desenvolvimento de software, pois enfocam algumas das deficiências cruciais da atual tecnologia de produção, como a otimização dos processos e procedimentos, através da redução contínua dos desperdícios e tempos elevados de espera entre os processos de produção.

Duas grandes linhas de pensamento contribuíram para a formação da Produção Enxuta: o Controle da Qualidade Total e o Sistema Toyota de Produção [3,11]. Essas duas concepções começaram a ser introduzidas nas empresas japonesas na década de 50 e tiveram participação decisiva no grande aumento da competitividade e sucesso econômico que elas alcançaram.

5.1. Os Princípios da Produção Enxuta

Para alcançar seus objetivos, a PE utiliza cinco princípios básicos: a especificação do valor, o mapeamento da cadeia de valor, o fluxo contínuo, a produção puxada e o aperfeiçoamento integrado. Esses princípios encontram aplicabilidade direta na produção de software, conforme será verificado a seguir.

A Especificação do Valor tem por objetivo a determinação de todas as características desejadas pelos usuários de um produto. Sua especificação permite a identificar as atividades que contribuem para o atendimento das necessidades dos clientes. As demais são consideradas fontes de desperdícios, e devem ser eliminadas. Assim, ao contrário da visão usual, não é o produtor, e sim o cliente, quem define o que agrega ou não valor a um produto, pois estas características dependem intrinsecamente de suas necessidades e conhecimentos sobre a produção e o mercado.

O Mapeamento da Cadeia de Valor permite analisar criticamente a cadeia produtiva e separar os processos em três tipos: aqueles que efetivamente geram valor; aqueles que não agregam valor mas são importantes para a manutenção da qualidade; e aqueles que não geram valor e deverão ser sumariamente eliminados. Sua elaboração permite alinhar na melhor seqüência as ações que criam valor

(4)

e realizá-las sem interrupção toda vez que alguém solicitar. Com isto torna-se possível executá-las de forma mais eficaz.

O Fluxo Contínuo tem por objetivo a obtenção de um sistema de produção que maximize o aproveitamento dos recursos utilizados. O objetivo é fazer com que as atividades fluam, eliminando as esperas para execução das tarefas. Em grande parte dos casos elas ocorrem devido à maneira de se organizar a empresa, ou de se projetar o sistema de produção. Adequar esse sistema para produzir um fluxo contínuo de valor é uma das etapas mais difíceis dos processos enxutos.

A Produção Puxada leva até as últimas conseqüências o processo de eliminação de desperdícios, pois visa estabelecer um sistema de produção capaz de produzir apenas o que os clientes precisam e quando precisam. Sob esta ótica, os processos de produção de bens e serviços só são executados quando o cliente de uma etapa posterior solicita. Quando isto ocorre a sua elaboração deve ser realizada rapidamente. O objetivo desta prática é produzir apenas o que for necessário ao atendimento dos clientes, no momento em que eles necessitarem, ou seja a produção é “puxada” pelos clientes e não “empurrada” pela empresa, o que acarreta a criação de estoques e paradas na produção à espera da conclusão de etapas anteriores.

O Aperfeiçoamento Integrado visa produzir cada vez mais, com cada vez menos, ou seja, aumentar a produtividade dos recursos utilizados na produção, sejam eles materiais, tempo, capital, espaço físico, equipamentos, esforço humano, etc. Esta abordagem pressupõe que o processo de redução de esforços é praticamente infinito, pois sempre será possível especificar melhor o valor, eliminar desperdícios ao longo da cadeia, suprimir obstáculos que interrompam o fluxo do produto e fazer com que o cliente puxe mais a produção.

Como normalmente a cadeia de valor de um produto não se limita às atividades de uma única empresa, seu aperfeiçoamento deve ser realizado através de um processo de produção transparente, onde todos os participantes do fluxo de produção (montadores, fabricantes de componentes, distribuidores, revendedores, etc.) tenham conhecimento do processo como um todo, podendo dialogar e buscar continuamente as melhores formas de criar valor.

Os princípios da PE visam cada vez mais oferecer aos clientes exatamente o que eles desejam, no tempo certo. Constituem-se também em uma forma de tornar o trabalho mais satisfatório, oferecendo feedback imediato aos clientes sobre os esforços para transformar desperdício em valor.

Estes princípios abordam boa parte das deficiências encontradas na atual tecnologia de desenvolvimento e gerenciamento da produção de software. Com base nos fatos expostos

anteriormente, apresenta-se a seguir um conjunto de prescrições a serem adotadas pelas organizações que pretendam implementar a produção de software através de unidades de produção “enxutas”. Sua concepção baseou-se nos trabalhos de Berliner e Brimson [apud 12].

6. A Metodologia KanbanSoft

O projeto conceitual da metodologia KanbanSoft identifica inicialmente seis objetivos gerais de engenharia de produção como sendo os mais importantes para viabilizar a otimização dos processos de produção de software. Tal otimização parte do pressuposto de que os processos de produção podem ser decompostos em seus cinco elementos básicos : processamento, inspeção, transporte, espera do processo precedente e/ou espera de lote [3].

Destes, apenas processamento pode agregar valor ao produto final sob o ponto de vista do cliente. Os demais representam desperdício ou falta de otimização dos processos. Mesmo as atividades de inspeção e testes podem diminuir os problemas em etapas posteriores da produção, embora um cliente não consiga claramente distinguir um software amplamente testado de outro pouco testado, a não ser que seja detectada a presença de um erro ou defeito.

Presume-se que em cada unidade produtora deverá contextualizar a aplicação da metodologia e estabelecer diferentes graus de prioridade para cada um dos objetivos relacionados a seguir, de forma a melhor adequar sua utilização à estratégia de negócios de cada empresa ou projeto.

a) Identificação do melhor desempenho do produto.

Dentre as diversas visões sobre a qualidade e desempenho de um produto de software, deverá ser adotada aquela que atenda as suas especificações técnicas e apresente o maior valor agregado sob a ótica de seus futuros usuários.

b) Produzir para demanda assegurada.

O desenvolvimento de um software só deve prosseguir depois que os seus requisitos técnicos e operacionais tenham sido amplamente verificados e validados pelos seus usuários.

Isto se deve ao fato de que na fase inicial suas características podem variar amplamente, gerando desperdício e necessidade de retrabalho. Mesmo nas fases posteriores, um processo produtivo só deve ser iniciado após a conclusão dos processos predecessores. Para contornar os inconvenientes gerenciais desta prática pode-se criar “pulmões de tempo e recursos” para absorver os impactos sobre o projeto [13].

(5)

c) Esforço para garantir a meta de tempo zero entre as etapas das operações de produção.

Na medida em que os tempos entre as diversas etapas dos processos de produção se aproximam de zero, o fluxo de produção melhora [12]. Empresas de manufatura que se engajaram numa política de redução de estoques e materiais em processamento como a Just-in-Time (apenas-a-tempo) [3], têm conseguido resultados que giram em torno de 70 a 80 % de redução do capital investido nesses ativos.

Na produção de software pode-se esperar economias até maiores devido a falta de sincronização e otimização que pode ser usualmente observada.

d) Esforço para atingir a meta de zero-defeitos. A qualidade tem um forte efeito sobre o lucro [8]. Os defeitos não saem de graça, alguém é pago para produzi-los. Sendo assim, fazer as coisas de maneira certa já na primeira vez é um dos pontos mais importantes da KanbanSoft pois permite eliminar custos desnecessários, como os causados pelas constantes necessidades de retrabalho [9] existentes nos processos tradicionais de produção de software.

e) Esforço reduzir os custos totais do ciclo de vida ao mínimo necessário.

Envolve as iniciativas empregadas para minimizar as estruturas administrativas e de suporte e otimizar a utilização dos recursos de produção (mão-de-obra, materiais, equipamentos, serviços, etc).

Também acarreta a diminuição das etapas meramente burocráticas da produção, que não agreguem valor ao produto final. Inclui ainda, a diminuição do tempo de preparo e configuração de equipamentos e softwares utilizados na produção. f) Otimização das atividades de projeto, produção e entrega do produto aos clientes.

O tempo de entrega de um produto de software decorre desde o momento em que tem início a especificação do produto, até a sua aceitação final pelo cliente. As tecnologias avançadas de produção empregam os modernos recursos tecnológicos para diminuir este intervalo de tempo e agregar qualidade aos produtos. Por este motivo, a Kanbansoft é altamente focada na automação e integração automatizada dos processos produtivos.

Nos próximos trabalhos pretende-se avançar na adaptação e aplicação dos conceitos da KanbanSoft em uma fábrica de software, visando ampliar a sistematização e controle sobre seus processos de produção.

7. Conclusões

Este trabalho apresenta uma abordagem inicial para o gerenciamento da produção de software,

baseado numa metáfora fabril focada:

Na produção não seriada em larga escala;

Na automação de todas as etapas possíveis da produção; e

Na aplicação ao desenvolvimento de software dos conceitos mais modernos da Engenharia de Produção, representados pelo Sistema Toyota de Produção e pela Produção Enxuta.

Alguns desses conceitos começam a ser adotados em pequena escala pela comunidade de Engenharia de Software, como pode-se verificar através de algumas prescrições contidas nas metodologias ágeis, como Extreme Programming, FDD, ASD e Scrum.

Nos próximos trabalhos pretende-se avançar na adaptação e aplicação desses conceitos em uma fábrica de software, visando ampliar a sistematização e controle sobre os processos de produção. Para isso pretende-se formular um conjunto de prescrições que facilitem sua utilização e, propor um ambiente integrado para desenvolvimento de software que automatize várias etapas de sua aplicação.

Referências Bibliográficas

[1] Augusto Neto, Á.; Sant’anna, N. A Gestão dos

Processos na Fábrica de Software, In: Workshop dos

Cursos de Computação Aplicada do INPE (Workcap), 3, São José dos Campos. Anais... INPE, São José dos Campos, 2003.

[2] Sommerville, Ian. Engenharia de Software, Addison Wesley, São Paulo, 2003.

[3] Ritzman, Larry P.; Krajewski, Lee J. Administração da

Produção e Operações, Prentice Hall, São Paulo, 2004.

[4] Abran, Alain; Moore, James W. Guide to the Software

Engineering Body of Knoledge: trial version (SWEBOK Guide). IEEE Computer Society. 2001.

[5] Project Management Institute. A Guide to the Project

Management Body of Knowledge (PMBOK Guide) – 2000 ed. Obtido em www.pmi.org em 8/10/2002.

[6] Heindel, Lee E., Kasten, Vincent A. Managing the

Software Factory. Catalog No CH 0-7803-0922-7/93, pp

468-474, IEEE Computer Society, 1993.

[7] Thoreson, Sharilyn. The Automated Software

Development Project at McDonnell Aircraft Company (The Software Factory). Catalog No CH 2759-9/89/0000, pp.

1576-1580, IEEE Computer Society, 1989.

[8] Humphrey, Watts S. Software and the factory

paradigm. Software Engineering Journal. pp..370-376.

IEEE Computer Society, 1991.

[9] Augusto Neto, A.; Sant’anna, N. Uma Estratégia para

Gerência do Processo Baseada nos Custos da Qualidade de Software. In: Simpósio Brasileiro de Qualidade de

Software, 2, Fortaleza. Anais...Fortaleza: UNIFOR, 2003, p. 32-46.

[10] Augusto Neto, Álvaro. Uma estratégia para gerência

da qualidade e produtividade no desenvolvimento de software. Dissertação (Mestrado em Informática) - Instituto

Tecnológico de Aeronáutica, São José dos Campos, 1997. [11] Ohno, Taiichi. O sistema Toyota de Produção: além

da produção em larga escala, Bookman, Porto Alegre,

(6)

[12] Nakagawa, Masayuki. Gestão Estratégica de Custos:

conceitos, sistemas e implementação, Atlas, São Paulo,

1991.

[13] Goldratt, Eliyahu M. Corrente Crítica, Nobel, São Paulo, 1998.

Referências

Documentos relacionados

a) Carlos mobilou o consultório com luxo. Indica o tipo de sujeito das seguintes frases.. Classifica as palavras destacadas nas frases quanto ao processo de formação de palavras..

dois gestores, pelo fato deles serem os mais indicados para avaliarem administrativamente a articulação entre o ensino médio e a educação profissional, bem como a estruturação

(2019) Pretendemos continuar a estudar esses dados com a coordenação de área de matemática da Secretaria Municipal de Educação e, estender a pesquisa aos estudantes do Ensino Médio

patula inibe a multiplicação do DENV-3 nas células, (Figura 4), além disso, nas análises microscópicas não foi observado efeito citotóxico do extrato sobre as

Acrescenta que “a ‘fonte do direito’ é o próprio direito em sua passagem de um estado de fluidez e invisibilidade subterrânea ao estado de segurança e clareza” (Montoro, 2016,

Portanto, mesmo percebendo a presença da música em diferentes situações no ambiente de educação infantil, percebe-se que as atividades relacionadas ao fazer musical ainda são

Esse traço, segundo o modelo auto-segmental (Clements and Hume, 1995), está preso à raiz e pode espraiar de forma autônoma. Temos então em 2, 3 e 4a fatos que ajudam a sustentar

DEPARTAMENTO DE GENÉTICA Unidade de Citogenética Unidade de Genética Médica Unidade de Genética Molecular Unidade de Rastreio Neonatal Unidade de Investigação e