A importância da comunicação na engenharia de software.

Introdução

A comunicação é tão essencial para um projeto que se torna seu fôlego de vida. Sem uma comunicação eficiente um projeto dificilmente será bem sucedido. Acrescente a intangibilidade (do software) e terá um belo desafio. (Intangível é a qualidade de algo que não pode ser tocado).

Felizmente podemos recorrer à literatura e buscar diversas lições aprendidas estruturadas em modelos e técnicas de levantamento de requisitos, que nos ajudarão a aperfeiçoar nossas análises em busca de maior acertividade em nossos projetos.

Abaixo serão abordado alguns temas que considero importante para o sucesso em um projeto de software.

A comunicação

Fonte: pixabay.com

“Alguns autores concluem que a comunicação pode representar até 90% de um projeto”. CHAVES(2006). Podemos perceber nesta citação, do livro Gerenciamento da Comunicação em Projetos – FGV, a sua importância. No meu entendimento é a área de conhecimento do PMBOK(PMI) que é presente em todos os projetos e que seu resultado afeta diretamente todas as demais áreas de conhecimento.

Ainda de acordo com CHAVES (2016, p.18) : “A palavra comunicação tem origem latina (comunicare) que significa partilhar, dividir. É a transmissão e recepção de mensagens, entre um emissor e um receptor, com o uso de sons, signos, símbolos, escritas etc”.

Discutir ideias e convertê-las em um produto de software é um imenso desafio, quase uma arte, por isso precisamos sempre aperfeiçoar nossas habilidades de nos comunicar, para que seja possível extrair o máximo de informações precisas durante os levantamentos de requisitos e no decorrer do ciclo de vida do software.


Técnicas para levantamento de requisitos

As técnicas para levantamentos de requisitos são muito bem abordadas no capítulo 4 do livro livro Engenharia de Software (9. edição). Aqui será abordado apenas uma breve visão de cada tópico.

Entrevista

Segundo SOMMERVILLE(2011): “as entrevistas são parte da maioria dos processos de engenharia de requisitos”. A entrevista tem por objetivo entender a necessidade do cliente.

SOMMERVILLE(2011) ainda indica que os especialistas utilizam terminologias diferentes, ou seja, o vocabulário pode não ser muito bem entendido por ambas as partes. A comunicação se torna importante, pois toda dúvida deve ser sanada, assim como sugere as primeiras páginas do livro UML 2.

A entrevista vem para completar o levantamento de requisitos e muitas vezes é o único recurso que o analista tem, mas esta técnica possui falhas, como por exemplo: se não for bem conduzida a entrevista pode levar a questionamentos e respostas sem valor, também é preciso saber abordar o entrevistado e estimular que ele participe, mas nem sempre terá todas as informações que realmente precisa. As pessoas nem sempre relatam tudo o que fazem.

O ideal é utilizar a entrevista aplicando outras abordagens, como a técnica de prototipação ou construção de cenários por exemplo.

Questionário

Os questionários são utilizados geralmente quando se tem uma barreira geográfica considerável.

Com questionário é possível obter informações de forma estruturada e remota, o que minimiza os custos e tempo.

É importante que o questionário seja bem elaborado e não possua margem para a ambiguidade.

Brainstorming

Consiste em realizar um grupo de discussão de ideias, com objetivo de captar informações relevantes de forma interativa e espontânea.

Neste modelo as ideias podem surgir rapidamente, por isso é importante uma pessoa exclusiva para tomar nota.

Outra possibilidade é permitir que as pessoas anotem suas ideias e as coloquem em um quadro, assim em um momento oportuno todas estas ideias serão analisadas por todos do grupo, uma de cada vez.

Prototipação

Esta técnica geralmente é utilizada no início do projeto, no planejamento.

Consiste em criar uma forte noção da aplicação apenas com modelos de protótipos com ou sem funcionalidades, de forma rápida com objetivo de validar os requisitos. Ideal para quando não ainda não está claro o que será desenvolvido.


Modelos de processos de software.

A escolha de modelos de desenvolvimento de software está muito relacionada à complexidade do sistema a ser desenvolvido e principalmente à variação de mudanças de escopo do projeto.

Conhecer e aplicar os modelos de desenvolvimento de software são fundamentais para o sucesso do projeto, também para atingir os prazos e custos.

Um projeto de software exige uma comunicação eficiente e, sempre que possível, bem documentada, pois é uma ótima forma de validar requisitos e realizar o planejamento.

As principais etapas do desenvolvimento de um software são: Planejamento, execução, implantação e controle / manutenção.

Na fase de Planejamento é que se identifica qual será o melhor modelo a ser seguido. Abaixo apresento os principais modelos e quando usar cada um deles

Modelo Cascata

O modelo clássico. Quando se tem uma definição clara do que será desenvolvido e não houver um movimento significativo de mudanças no escopo do projeto o modelo Cascata se mostra eficiente.

Neste modelo a fase do planejamento é a mais importante, pois exige um esforço entre levantamento e validação dos requisitos, uma vez que todo projeto será executado mediante ao levantamento realizado.

Um ponto negativo é que qualquer alteração no escopo do projeto pode resultar em custos, uma vez que um requisito pode ter sido identificado tarde demais, sendo necessárias grandes mudanças no sistema.

Por isso é sempre estar atento a quaisquer sinais de alteração de escopo e a comunicação no

Modelo Incremental

Esta abordagem permite construir várias partes do sistema ao mesmo tempo, além de ser possível abordar diversas frentes de trabalho e integra-los posteriormente.

Modelo Iterativo

O modelo Iterativo é um modelo semelhante ao modelo Cascata. O que diferencia é que o desenvolvimento é feito em vários ciclos, produzindo uma nova versão em cada etapa.

Modelo Prototipação

Este modelo consiste em entregar protótipos, possibilitando acompanhar a evolução dos requisitos do projeto.

É um ótimo modelo para validar requisitos, principalmente em sistemas complexos. Entretanto os protótipos são produtos com entrega ágil que podem gerar uma alta expectativa no cliente, principalmente em protótipos interativos, uma vez que poderá ficar subentendido que o sistema já está sendo concluído, quando na verdade está ainda sendo planejado.

Conclusão

Os projetos de desenvolvimento de software, complexos ou não, exigem uma comunicação eficiente, de modo que seja possível alcançar o objetivo com maior acertividade, desta forma é possível reduzir custos e atingir prazos.

Abordar a comunicação em projetos de tecnologia – principalmente de software – pode ser um desafio e deve ser tratado com prioridade. A comunicação eficiente fará a diferença em seu projeto.

Devemos também estar bem alinhados quanto aos processos e modelos de desenvolvimento e aperfeiçoamento de software.

Na área de tecnologiaO estudo é constante.

Referências

PMI (2013) PMBOK: Um guia do conhecimento em gerenciamento de projetos. 5 ed.

SOMMERVILLE, Ian. Engenharia de Software 9.ed. Pearson 2012.

CHAVES, Lúcio et. al. Gerenciamento da comunicação em projetos. Rio de Janeiro: Editora FGV, 2006. 


JUNEJA, Prachi. Importance of communication in an Organization. Disponível em: <https://managementstudyguide.com/importance-of-communication.htm>. Acesso em: 06 junho.2018.