Empinando um software ou programando uma pipa?

Vários amigos, interlocutores, alunos e profissionais de mercado me abordaram sobre a possibilidade de organizar um portfólio dinâmico em uma empresa de produção de software. Questões relacionadas a:

1 – quantidade de projetos que foram desenvolvidos e que estão em desenvolvimento dentro do prazo e do orçamento pré-estabelecido;

2 – conhecimentos que foram e que são gerados junto aos clientes internos e externos de um projeto de software;

foram delineadas várias vezes.

Para respondê-las vou partir do seguinte pressuposto:

Nós engenheiros de softwares, analistas de sistemas e projetistas somos especialistas em organizar o processo dos outros, porém somos medíocres quando se trata da organização do nosso processo.

Quem de nós nunca mapeou os processos organizacionais de uma empresa qualquer, utilizando digrama de fluxo de dados, casos de uso ou, até mesmo, fluxogramas?

Nos cursos de graduação, pós-graduação e extensão costumo dizer que a organização de um processo de produção de software é semelhante à organização de um processo de construção de uma pipa.

Para construir uma pipa é necessário possuir como matéria prima: vareta (comprei 100 varetas afinadas, prontinhas para o uso, em uma papelaria); linha 10; folha; plástico (utilizado na construção da rabiola); e cola. Como ferramenta, utilizarei a tesoura. Também não podemos nos esquecer da mão de obra, o programador de pipas, neste caso, 15 alunos do 5º. ano do curso de Bacharelado em Ciência da Computação da Fundação Educacional do Município de Assis.

Também é importante lembrar que o projeto de confecção de uma pipa possui 4 atividades bem definidas: 1 – confeccionar a armação; 2 – encapar a pipa; 3 – construir a rabiola; 4 – empinar a pipa.

Os 15 programadores de pipas foram divididos em 4 grupos, neste caso tínhamos 4 projetos distintos. Durante a execução do projeto controlei o tempo de execução de cada atividade.

O grupo 1 levou 17m45 para confeccionar a armação, o grupo 2 levou 4m42, já o 3 levou 14m34 e o grupo 4 10m02.

Para encapar a pipa os grupos levaram:

grupo 1 – 27m04;

grupo 2 – 12m45;

grupo 3 – 31m35;

grupo 4 – 29m12;

Para quem não programa pipas, é importante lembrar que a atividade 2 – encapar pipa só será iniciada após o término da armação (atividade 1). A atividade 3 – construir a rabiola é uma atividade independente. Esta, por sua vez, foi executada paralelamente as duas primeiras. Os grupos se organizaram para isto (2 alunos constroem a rabiola e o restante dos alunos confeccionam e armação e encapam a pipa). Veja só o tempo gasto para a construção da rabiola:

grupo 1 – 22m;

grupo 2 – 22m16;

grupo 3 – 49m32;

grupo 4 – 19m;

Restava agora testar o software… perdão a pipa. Todos foram para o estacionamento da FEMA e todas as pipas foram empinadas.

Terminada a suposta brincadeira voltamos para sala e começamos a organizar os dados gerados. Tínhamos em mãos dados de um suposto cliente que solicitou o desenvolvimento de 4 projetos. O sucesso do projeto dependia da execução das 4 atividades citadas. A capacidade produtiva de cada grupo também fora mapeada.

Optamos por utilizar um DER (diagrama de entidade e relacionamento) para estruturar os dados, veja só o que geramos:

maquina4

ppc

Bastava agora inserir os dados delineados na suposta brincadeira e controlar o projeto de construção das 4 pipas.

“temos 4 projetos, ou seja 4 pipas desenvolvidas, todas elas solicitadas pelo professor José Augusto, cada projeto pode gerar uma ou várias ordens de serviço (os) e cada ordem de serviço pode gerar uma ou várias versões (vide tabela produção). Para cada versão gerada foi executada as quatro atividades. Os funcionários, em nosso caso alunos, envolvidos com a execução das atividades também foram armazenado no modelo”.

Ao utilizar o modelo apresentado na figura, no mínimo, mapearemos a quantidade de projetos que foram desenvolvidos e que estão em desenvolvimento dentro do prazo pré-estabelecido – claro, desde que os colaboradores alimentem a base de dados.

Dentre outras informações fornecidas pelo modelo, também, podemos verificar quem está fazendo o que e quanto tempo isto leva.

Saliento que este modelo pode ser utilizado para controlar qualquer tipo de projeto, inclusive os projetos criados a partir das agências financiadoras. Em um contexto universitário, não seria interessante mapear informações quantitativas nestes tipos de projetos?

Qualquer dúvida ou melhoria relacionada ao modelo gerado, por favor, escreva-me.

Por fim, saliento que foram gastas 4 aulas para confeccionar a pipa, empiná-la e gerar o modelo.

Aproveito a oportunidade para convidar a todos a participar da IX Escola Regional de Computação Bahia-Alagoas-Sergipe que ocorrerá entre 04 a 08 de maio de 2009 na Universidade Estadual de Santa Cruz – UESC, em Ilhéus (http://www.uesc.br/eventos/erbase_2009/). Nesta escola estarei abordando temas relacionados a “construção de um processo para fábricação de pipas … desculpe-me … “de software“.

E ai, que tal empinarmos um software!

J. A.

fabri@femanet.com.br

4 Responses to “Empinando um software ou programando uma pipa?”

  1. Fala, Guto!

    Talvez fosse legal na tabela Produção-Atividade você criar um campo que desse a idéia da previsão de quanto tempo a atividade levaria (não sei se o campo quantidade de horas já não faz isso). Imagino também que essa tabela é uma tabela que surge devido ao relacionamento N x M de Produção e Atividades. Se realmente for isso, o campo código da tabela intermediária não pode existir, sendo a chave primária formada pelas duas chaves estrangeiras.

    Parabéns pelo trabalho. Seus artigos têm sido muito úteis para mim!

    Um abração.

  2. José Augusto Says:

    Reinaldo, boa pedida essa sua, vou incorporá-la no modelo.
    Fico contente que estou colaborando ao redigir os artigos… Meu
    único objetivo é pulverizar conceitos relacionados a área de engenharia
    de software.

    • Vinícius S. Says:

      Olá Professor, fui um dos seus ouvintes no seu mini-curso ministrado no ERBASE realizado na UESC. Chegando em casa, consultei um livro muito bom indicado por um professor – Princípios de Sistemas de Informação (por Ralph M. e George W.), que apresentava os mesmos conceitos de um sistema, os elementos que o compõe, como entradas, mecanismos de processamento e saída, e o objetivo. Com o exemplo da pipa ficou muito mais claro pra mim como isso funciona. Também é um método bastante útil na montagem de uma boa equipe, escolhendo bons profissionais de áreas específicas no processo de montagem, por exemplo, da pipa… Mais uma vez, obrigado pelo excelente mini-curso, e eu espero que eu tenha postado a tempo de concorrer à assinatura da revista, tendo que recorrer ao celular pra acessar o blog! Vou continuar acompanhando o engenhariasoftware. Abraços

  3. […] Em minhas aulas, palestras e consultorias, sobre gestão de projetos de software desenvolvo, constantemente, a dinâmica empinando um software ou programando uma pipa. […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: