O Valor Do Software

(17/07/2009)

Sumário
Esse artigo discorrerá sobre o valor de um software e quais aspectos devem ser observados para desenvolvê-lo.

A princípio podemos afirmar que o bom software é aquele que processa dados e disponibiliza informações de acordo com as expectativas do cliente. Por essa ser uma afirmação de fácil aceitação, não podemos mais ter dúvidas quanto uma premissa básica: Tecnologia por tecnologia não agrega valor, caso não exista uma aplicação prática para ela.

OS REQUISITOS
Para obter um software com valor para o seu cliente é preciso um conjunto de fatores, que combinam elementos de tecnologia da informação e o universo de conhecimentos acumulados pelo ser humano, em suas áreas de atuação. O foco do artigo será o universo de conhecimentos empresariais e sua grande demanda por desenvolvimento de softwares.
Ou seja, para obtermos um bom software, é necessário combinar dois mundos completamente diferentes. Um deles é o mundo tecnológico, composto por máquinas, computadores, linguagens de programação, telecomunicações, banco de dados, e claro, as pessoas que dominam isso tudo. O outro mundo é formado por humanos, que interagem com fluxos e processos de negócios, regras baseadas em tendências mercadológicas e variáveis não ponderáveis. Apenas com a descrição desses mundos, é fácil prever problemas para colocá-los em cooperação mútua. A expressão criada por conta dessa comunhão foi denominada de "e-business".
Soluções ou pacotes denominados de "e-business" são o resultado de projetos de desenvolvimento de software e são um arcabouço exato e estático, com pouca flexibilidade para acompanhar um ambiente dinâmico, que responde às tendências mercadológicas e variáveis de difícil ponderação que é o ambiente de negócios. Logo, com tantas diferenças, para obter sucesso no desenvolvimento de um software devem-se criar condições favoráveis para que esses mundos possam alcançar um objetivo em comum.
Ao afirmar que uma das características de um projeto de software seria a sua pouca flexibilidade, vamos analisar com mais cuidado essa afirmação, e entender quais são suas reais características. Primeiro precisamos definir o que é software. Ao contrário do que normalmente as pessoas pensam e afirmam software não é produto.

O SOFTWARE
Para nos ajudar nessa definição Phillip G. Armour nos convida para uma análise muito interessante, definindo software como uma mídia. Para Armour existem 5 tipos de mídias, denominadas como mídias de conhecimento e cada qual analisada conforme suas características, tais como persistência, volatilidade, facilidade de atualização e capacidade de realizar trabalho. A primeira mídia, a mais elementar de todas, é o DNA. No DNA existe todo o conhecimento da configuração da vida. Embora muito complexo e armazenando muita informação, o DNA não muda ou atualiza-se rapidamente e as mudanças ocorridas não são intencionais.

A segunda mídia do conhecimento é o cérebro. Essa mídia, ao contrário da primeira, possui grande facilidade em atualizar-se intencionalmente, entretanto é muito volátil. A terceira mídia do conhecimento são as ferramentas. Nesse caso observamos uma mídia com características extremamente funcionais e persistentes, porém de difícil atualização. Apenas para ilustrar essa mídia, vamos nos lembrar de um anzol de pesca. Essa ferramenta contém centenas de anos de evolução, tentativas e erros, até chegarmos ao formato atual. O resultado dessa evolução foi uma ferramenta de pesca, com todas as melhores características aprendidas ao longo dos tempos. Porém, caso alguém perceba que exista uma melhoria que deve ser implementada, outro anzol deverá ser feito totalmente novo, evidenciando que ferramentas são mídias de difícil atualização.
A quarta mídia do conhecimento são os livros. A linguagem escrita e impressa é mais facilmente associada à mídia, e essa tem grande capacidade para armazenar conhecimento. Porém, como as outras mídias, exceto o cérebro, é de difícil atualização e não executa trabalho.
Finalmente chegamos à quinta mídia do conhecimento, o software. O software, assim como todas as outras mídias, permite armazenar conhecimento acumulado, é de fácil atualização, as mudanças e atualizações são intencionais, e ele executa trabalho. Ou seja, o software possui as melhores características de todas as outras mídias. Mas mesmo com todas essas boas características, para conceber um bom software é preciso bem mais do que um programador e uma boa tecnologia para desenvolvimento.

O DESENVOLVIMENTO
Com a definição de software ser uma mídia de conhecimento, e a conclusão de que um bom software é aquele que "processa dados e disponibiliza informações de acordo com as expectativas do cliente", precisamos então da participação do cliente para construção do mesmo. Nesse caso o cliente é aquele que domina os processos e as regras de negócio que serão escritas no software. Ele é a peça fundamental, já que detém o conhecimento que será escrito nessa mídia. Um software que não reflita uma realidade corretamente é como um livro com as páginas em branco, ou um bisturi na mão de um engenheiro, não serve para nada.
Para Armour, no momento que se inicia o desenvolvimento de um software sempre devemos analisar qual é a ordem de ignorância do desenvolvedor, sobre os assuntos pertinentes às regras do negócio. Afinal será o desenvolvedor do software o responsável por transcrever o conhecimento empresarial para uma linguagem técnica de programação. Para isso, Armour definiu as ordens de ignorância e as dividiu em 5 níveis: Nível Zero (0OI) é o primeiro, e significa a falta de ignorância. Quando estamos nesse nível vivemos o melhor dos mundos, pois não existem dúvidas em relação ao conhecimento que será escrito no software, e caso exista alguma indefinição, essa será de ordem técnica e não em relação ao conhecimento do trabalho funcional que será executado.
A seguir vamos caminhar para situações mais freqüentes no dia a dia de uma equipe de desenvolvedores de software. O nível 1OI é o próximo, e é também muito bom de se trabalhar. Nesse nível denominado de Falta de Conhecimento, podem existir dúvidas em relação às regras de negócio que serão implementadas, mas existe total consciência sobre o que perguntar e para quem perguntar. O nível Falta de Consciência (2OI) é o próximo estágio das ordens de ignorância e aqui começam os problemas mais sérios. Nesse nível não se sabe sequer o que perguntar e é preciso um grande esforço das equipes para equalizar seus conhecimentos, entre os técnicos e funcionais. Para projetos de desenvolvimento de software que vão encarar essa condição recomenda-se planejar mais tempo para as pessoas passarem por uma curva de aprendizagem.
As duas últimas ordens de ignorância não devem existir. Não comercialmente. No nível Falta de Processo (3OI), além de não existir conhecimento suficiente para identificar o que não se sabe, não existem fontes de informação conhecidas pela equipe de desenvolvimento. No último nível (4OI) somam-se todas as características do nível Falta de Processo, com uma falta total de preocupação em documentar ou guardar qualquer coisa relacionada ao desenvolvimento.
Da Falta de Consciência até a Falta de Ignorância existe um grande espaço por preencher, e com certeza, apenas investimentos de médio e longo prazo podem garantir essa transição. Empresas que não investem em recursos humanos de forma contínua e duradoura tem mais dificuldade em desenvolver sistemas de informação confiáveis.

CONCLUSÃO
Percebemos nesse momento uma forte ligação entre conhecimento dos processos, ou seja, de pessoas que conhecem as regras do negócio, o trabalho que deve ser realizado e o desenvolvimento de um bom software. Dado essa ligação, o desafio que se impõe é transferir o conhecimento obtido pela experiência do dia a dia, armazenado no cérebro das pessoas que vivenciam os processos, de forma que as pessoas que irão desenvolver o software consigam entender e transformá-los em linhas de códigos.
Chamamos o conhecimento que está retido com as pessoas de conhecimento tácito, e o conhecimento publicado em alguma mídia persistente (livros, ferramentas ou softwares) de conhecimento explícito. Esse é o maior desafio, transformar conhecimento tácito em explícito, usando software como a mídia que registra e executa trabalho.
Ou seja, para termos um bom software, além do domínio das ferramentas tecnológicas e pessoas que dominem os processos que serão escritos, a boa comunicação entre essas equipes é a peça fundamental e garantirá o valor do software.

Autor: Ricardo Orihuela



Notícias

21/07/2010
Treinamento RFID Implementation Turma de Agosto
[ Saiba mais ]

01/12/2009
LIVRO - IMPLEMENTANDO RFID NA CADEIA DE NEGÓCIOS
[ Saiba mais ]

14/10/2009
Simpósio RFID 2009
[ Saiba mais ]

29/09/2009
Médias empresas devem adotar de forma maciça a RFI...
[ Saiba mais ]

02/09/2009
Rodada de Negócios de Sorocaba promovida pelo Cies...
[ Saiba mais ]




Artigos

10/09/2009

Padrões de Gerência de Projetos e a Ferramenta Pro...
[ Saiba mais ]

11/09/2009

Validate of RFID tool PROTOTYPE: Smart Shelf Case
[ Saiba mais ]

17/07/2009

Computação Pervasiva e RFID
[ Saiba mais ]

17/07/2009

O Valor Do Software
[ Saiba mais ]

05/02/2009

Sistema de Visão Computacional
[ Saiba mais ]



Acreditações

Anatel Inmetro EPCglobal


Workshops