Hélio Engholm Jr

Especializado em Engenharia de Software

modelagemProcessosQuando aprendi sobre modelagem de processos eu já era profissional de TI há alguns anos. Caso eu tivesse visto modelagem de processos antes, eu poderia ser hoje em dia um profissional desta área.

Quando comecei a conhecer modelagem de processos, fiquei surpreso como é bacana esta atividade e como podemos otimizar processos existentes, trazendo maior velocidade na execução dos mesmos, aumento na qualidade dos produtos gerados e diminuição de custos relacionados.

Estou abordando este assunto agora pois começarei a divulgar artigos relacionados a processos de desenvolvimento de software .

Definição de processo 

Do dicionário, obtemos que processo é um conjunto sequencial e peculiar de ações que objetivam atingir uma meta. É usado para criar, inventar, projetar, transformar, produzir, controlar, manter e usar produtos ou sistemas. Analisando esta definição podemos perceber que praticamente todas as atividades que executamos podem ser vistas como processo.

Na definição de processos, define-se uma série de parâmetros, a saber:

• Evento que inicia o processo.

• Matriz de responsabilidades.

• Atividades a serem executadas e as respectivas sequências.

• Entradas e saídas de cada atividade.

• Políticas e regras a serem utilizadas na execução das tarefas.

• Infraestrutura necessária.

• Resultado final gerado na execução do processo.

A figura 1 representa diagrama simplificado relacionado a Processo.

Enumeramos a seguir uma série de características relacionadas a processo:

• É disparado/inicializado por um evento externo.

• Engloba todas as atividades necessárias para prover os resultados apropriados em resposta ao evento que o inicializou.

• Transforma entradas (de qualquer tipo) em saídas (de qualquer tipo), de acordo com regulamentos (políticas, padrões, procedimentos, regras etc.), empregando recursos de qualquer tipo.

• Contêm atividades que, normalmente, cruzam funções e unidades organizacionais.

• Possui indicadores de performance para os quais objetivos mensuráveis podem ser estabelecidos e a performance avaliada.

• Entrega um produto ou serviço a um stakeholder externo ou a um processo interno.

• Constitui-se de um conjunto de atividades de objetivo comum que atende a uma necessidade.

Vantagens da utilização de processo definido

Podemos citar uma série de benefícios na utilização de processos definidos, na execução de tarefas nas empresas. Imagine que em uma lanchonete famosa que você frequenta há anos com dezenas de unidades por todo o país, determinado sanduíche seja sempre o mesmo, independente da unidade que você vá e com o mesmo sabor de anos atrás. Agora pense que são vários cozinheiros diferentes, em localidades diferentes, que fazem o mesmo lanche. Como o gosto pode ser sempre o mesmo independente do local e durante todo este tempo? A resposta é: Existe processo definido!

Com processo definido, podemos trocar o cozinheiro diariamente ou comer o mesmo em qualquer unidade da lanchonete, que o lanche será sempre igual.

A definição e utilização de processos endereça uma grande preocupação das empresas, a retenção do conhecimento. No caso da utilização de processos definidos, este conhecimento está embarcado e preservado dentro dos próprios processos.

De uma maneira geral, podemos dizer que processo:

• Padroniza a geração de serviços e produtos.

• Garante a repetitividade da geração de serviços e produtos.

• Mantém conhecimento na empresa permitindo que novos funcionários possam executar tarefas, seguindo procedimentos definidos e conhecidos na empresa.

• Oferece um guia para definir as atividades.

• Especifica todo o processo para construção e desenvolvimento de artefatos.

• Direciona as tarefas individuais e da equipe como um todo.

• Permite definir e fornecer critérios para monitoração e medição dos produtos e atividades do projeto.

• Provê linhas gerais para os usuários e desenvolvedores.

• Reduz riscos e torna resultados dos projetos mais previsíveis.

• Provê visões comuns a equipe de desenvolvimento.

• Serve como um template que pode ser reutilizado.

Definindo processo para desenvolvimento de sistemas

Toda empresa que desejar obter pelo menos parcialmente os benefícios fornecidos por processos, deverá institucionalizar processos definidos na execução de suas tarefas relacionadas ao negócio. Em nosso caso, o negócio é o desenvolvimento de software com qualidade e menores custos, atingindo os prazos do projeto. Podemos dizer que a qualidade de um sistema é fortemente influenciado pela qualidade do processo utilizado no desenvolvimento e manutenção do mesmo.

Na hora em pensar na implantação de processos para desenvolvimento de software, podemos pensar em criar internamente ou utilizar propostas já existentes no mercado. Uma equipe de desenvolvimento pode criar seu próprio processo de desenvolvimento, o que pode ou não ser eficaz.

O que precisamos avaliar nesta hora é que já existem muitas propostas de mercado prontas e testadas há anos por grandes empresas. Isto sugere que antes de pensar em criar uma própria, devemos analisar as prontas e verificar se alguma atende a realidade de nossa empresa.

Independente se a empresa decide utilizar uma metodologia de mercado com seus processos embarcados ou criar uma própria, a mesma deveria considerar pelo menos os seguintes pontos:

• Cultura da empresa.

• Tamanho da organização.

• Prioridades relativas, facilidades a oferecer, prazo de entrega.

• Formalidade: determinar o grau de formalidade de acordo com o tamanho da equipe, a velocidade com que a equipe se modifica e complexidade e tamanho do projeto. Isto impede que requisitos de sistemas, compromissos assumidos etc. não seja desconsiderado. Quanto mais formal o processo, menos possibilidades de erros, porém deve-se cuidar para que não se tenha um processo engessado;.

• Criação de road maps específicos para tratar situações diferentes.

• Complexidade do sistema: no caso de sistemas com grande complexidade torna-se interessante a utilização de processo de desenvolvimento iterativo, com entregas modulares.

• Equipe: além do tamanho da equipe de desenvolvimento deve ser considerado as áreas de especialidade necessárias a cada membro e o grau de conhecimento a ser exigido da equipe no domínio do problema e da tecnologia a ser utilizada.




+ Artigos