Boas práticas no desenvolvimento de software

Uma interrogação que me acompanha sempre é: como é que vamos capacitar as micro-empresas de desenvolvimento de software para se tornarem competitivas em termos de qualidade e poderem atuar em mercados globais? Os modelos de competência organizacional que tomam a norma ISO15504 como base, como o CMMI e o mpsBR, aplicam-se a pequenas, médias e grandes empresas, com no mínimo 30 funcionários e com um portfólio de sistemas e serviços mais abrangente. As micro-empresas ficam longe desse mundo, embora sejam submetidas a desafios semelhantes. Por exemplo, uma empresa incubada em alguma incubadora de empresas de base tecnológica, normalmente tem de três a cinco funcionários que se dedicam a desenvolver, comercializar e a manter apenas um tipo de software ou projeto (sem contar a parte administrativa da empresa…). Como é que uma empresa com esse perfil vai conseguir alcançar os níveis de qualidade exigidos pelo mercado?

Na última prova da disciplina Engenharia de Software II do Bacharelado em Ciência da Computação da UFV, segundo semestre de 2008, propus uma questão para fazer os alunos pensarem melhor nessa realidade:

2- Melhores práticas. Considere as seis melhores práticas para desenvolvimento de projetos de software adotadas na indústria, cuja adoção é muito facilitada quando se adota o RUP como modelo de processo: 1- Desenvolva software iterativamente; 2-Gerencie requisitos; 3-Utilize arquiteturas baseadas em componentes; 4-Utilize modelagem visual; 5-Verifique qualidade continuamente; 6-Mantenha alterações sob controle. (nota: descritas no primeiro capítulo do livro The Rational Unified Process: an introduction, do Phillippe Kruchten)

a-Uma pequena empresa de desenvolvimento de software, com até 10 profissionais com formação variada, assim distribuidos: 5 ainda são estudantes do sexto período de Computação na UFV; 3 são experientes, com mais de cinco anos de trabalho na empresa, graduados em computação; 2 se dedicam integralmente a atividades administrativas na empresa. Essa empresa, como qualquer outra, gostaria muito de ficar mais competitiva no mercado, iniciando um processo de mudança que permita uma melhoria na qualidade dos produtos que ela desenvolve. Indique, justificando e comentando, uma ordem de adoção das seis melhores práticas acima, que leve aos melhores resultados finais. b-Mostre, utilizando um gráfico de Curva de Aprendizagem, como a sua sequência sugerida na questão (a) permite uma curva de aprendizagem com um “vale do desespero” mais raso, proporcionando melhores resultados no médio prazo. Desenhe essa curva, e anote sobre ela os pontos em que a adoção de cada prática sugerida em (a) deve ocorrer. Justifique sempre.

Para encurtar a postagem, o resultado que deixaria qualquer professor satisfeitissimo, está na planilha abaixo. A turma tem 38 alunos, a linha de topo indica a ordem de adoção, e o número em cada célula indica o total de “votos”. É possivel que eu tenha perdido algum voto, tive que catar todos eles no texto de cada resposta, o que não alteraria muito o resultado.

PRÁTICAS

1

2

3

4

5

6

Des. Iterativo

2

3

13

7

8

4

Ger. Reqs.

15

16

3

2

1

0

Componente

1

1

8

8

6

13

Ling. Visual

16

14

1

2

1

2

Ver. Qualid.

3

1

6

8

9

11

Ger. Altera.

0

2

6

10

12

6

A ordem sugerida pelos alunos foi (número de votos em negrito): adoção de linguagem visual; gerenciar requisitos; desenvolvimento em ciclos iterativos; verificação contínua da qualidade; gerenciar e controlar alterações; desenvolvimento com componentes. Houve empate no primeiro e segundo lugares, perfeitamente explicável. Se a

Curva de aprendizagem - Gilberto V. Nunes

Curva de aprendizagem - Gilberto V. Nunes

empresa já tem alguma maturidade e já usa uma linguagem visual tipo UML-Unified Modeling Language, já pode iniciar sua capacitação adotando práticas relacionadas com a gerência de requisitos. Que é uma das práticas de base para o nível G do modelo mpsBR, ou seja, altamente saudável que as empresas a adotem. Outro ponto muito interessante da planilha foi que, por exemplo, gerenciamento de alterações e desenvolvimento com componentes não seriam recomendadas em primeiro lugar, e que gerência de requisitos nunca seria a última prática a ser adotada, reparem que estão com zero votos nas duas colocações citadas. A curva de aprendizagem teria uma cara parecida com a que está ai acima, a cada nova prática adotada haveria uma queda na produtividade ou competência por um período cada vez menor, na medida em que se avance no processo de adoção. O desenho anterior tinha sido feito por mim a mouse livre no Paint, está claro que essa não é uma das minhas melhores habilidades, esse aí foi enviado por um aluno que elogiou demais o desenho anterior…

O resultado mostra que os alunos têm maturidade para encarar desafios no mundo real, e que saberiam usar o conhecimento adquirido na sala de aula em situações reais. Claro, falta a vivência do mercado, mas isso vem com o tempo. O que esse pequeno exemplo mostra é que é perfeitamente possivel colocar bons princípios na cabeça dos nossos jovens. Parabéns, turma!

Anúncios

Consultor Independente, Treinamento Empresarial, Gerência de Projetos, Engenharia de Requisitos de Software, Inovação. Professor Titular Aposentado, Departamento de Informática, Universidade Federal de Viçosa, Minas Gerais, Brasil. Doutor em Informática, PUC-Rio, 1990. Pós-Doutoramento, University of Florida, 1998-1999

Marcado com: ,
Publicado em Educação, Engenharia de Software

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: