On Sat, 22 Sep 2001 10:36:43 -0300
Lisias Toledo <[EMAIL PROTECTED]> wrote:
> Isto � uma tristeza, Thiago. Li pelo menos 3 livros sobre Engenharia de
> Software (inclusive, um dos primeiros, no original em ingl�s, porque em
> 1990
> n�o tinha livros em portugu�s sobre o assunto), e garanto que boa parte
> do que
> defendo hoje em dia � baseado no conhecimento que adquiri nestes livros.
Bom, para o pessoal que est� acompanhando nossa discuss�o, um bom material
para quem ainda n�o entende o nosso ponto de vista e que basicamente � a
fundamenta��o da minha descren�a � o cl�ssico da engenharia de software
'The Mythical Man-Month' de Frederick Brooks (Addison-Wesley), que o
escreveu nos anos 70 enquanto comandava o desenvolvimento do OS/360 na
IBM.
Nesse livro, Brooks chega � conclus�o que qualquer um envolvido num
projeto grande apercebe-se muitas vezes tarde demais: que numero de
programadores e tempo de conclus�o s�o grandezas diretamente
proporcionais. Explicando: o processo de desenvolvimento de software �
muito mais complexo do que a maioria dos campos da engenharia, e quanto
mais desenvolvedores sao adicionados, maior � o tempo que se leva para
atingir um nivel de compreensao do todo entre todos os elementos, pois a
cada programador adicionado o nivel geral de conhecimento tem seu menor
denominador comum reduzido ao desenvolvedor mais limitado, aumentando o
tempo at� a conclus�o do projeto.
O m�tico do t�tulo se refere � id�ia que hoje pode ser perfeitamente
adequada � retorica do software livre, em particular � da Free Software
Foundation e da OSI: a id�ia de que quanto mais programadores melhor ser�
o software. Isso � mentira! Em design de software em grupo vc SEMPRE ser�
nivelado ao programador mais incompetente, e quanto maior a massa cr�tica
maiores sao as probabilidades de vc ter alguem q vai atrasar o projeto. �
o exemplo do castelo de cartas: quanto mais empilhadores, maiores ser�o as
chances de que alguem respire forte demais perto da constru��o ;)
Como eu sempre digo: engenharia de software N�O � mutir�o comunit�rio!
Mas nem isso ela consegue ser aqui no Brasil. Eu conhe�o uma pessoa que
disse pra mim com todas as letras que era muito melhor programador antes
de entrar na universidade, pois l� dentro ele adquiriu uma s�rie de
v�cios.
> Isto n�o tem nada a ver com licen�as de software ou modelos de produ��o.
> Tem a
> ver com a postura da empresa. Este tipo de postura � praticamente
> imposs�vel
> no paradigma do Software Livre. Mas plenamente implement�vel no
> paradigma do
> Software Propriet�rio.
Ser� mesmo? Eu tenho minhas d�vidas. Antes eu nao gostava quando pessoas
fora da �rea t�cnica envolviam-se em aspectos tecnicos de implementacao,
agora *odeio* e me aparecem brotoejas quando isso acontece. Pq? Deixa eu
te contar a minha hist�ria:
At� julho eu era analista de redes de uma consultoria de inform�tica
daqui. Era bem legal, dava pra conhecer um monte de gente e implementar
coisas muito loucas em ambiente de produ��o. S� que de repente uma pessoa
muito pr�xima me apareceu com uma proposta numa empresa grande daqui. A
maior do estado. Portar o sistema antigo, em Microfocus Cobol com dez anos
de estrada para plataforma Oracle. E o melhor, sal�rio ordens de grandeza
maior e treinamento por conta da firma. O c�u. Era no interior, entao eu
tive que reformular toda minha vidinha: arranjar AP, me acostumar com a
cidade, sair da casa dos meus pais etc etc... desnecess�rio dizer que me
dediquei de corpo e alma � Causa.
A solu��o proposta envolvia o banco de dados Oracle e as ferramentas de
desenvolvimento do fabricante: Forms, Reports, Designer, Developer, etc
etc. Acontece que com duas semanas de empresa, circulando por l� e me
informando sobre como ela operava (grupo economico, v�rias empresas
diferentes), descobri que aquilo podia ser mais facilmente implementado em
um sistema multicamadas, separando l�gica de neg�cios, dados e interface
de usuario. A minha id�ia era desenvolver um �nico m�dulo independente de
base de dados e de plataforma que podia ser acessado por v�rias interfaces
de usu�rio (Delphi/Win32, Kylix/Linux, Web/[PHP|ASP|Perl], Java
[applets|applications] em PDA|Desktop|Browser) usando uma API padr�o,
enviava as solicitacoes requisitadas para o modulo principal, que continha
chamadas para stored procedures, querys jah prontas, a parte chata etc e
repassava para um terceiro modulo que por sua vez para manter a
independencia de banco de dados se conectava ao mesmo com uma API tambem
padr�o. Desnecess�rio dizer que minha vontade era q isso fosse feito em
Java + JDBC e RMI, mas se fosse o caso a id�ia podia ser perfeitamente
implementada em qualquer linguagem que pudesse mexer com sockets, pois o
trabalho de criar uma segunda camada de abstra��o para isso seria trivial,
e em todas as alternativas acima descritas j� existiam
componentes/modulos/classes prontas ou q podiam ser implementadas em uma
tarde.
Do ponto de vista t�cnico, IMNSHO era COM ABSOLUTA CERTEZA uma solu��o
muito mais pr�tica, port�vel, vers�til, f�cil e l�gica do que o projeto
anterior, pois te permitia escolher o front-end que quisesse e, mais
importante, n�o te prendia absolutamente ao banco de dados, enquanto a
anterior fechava todas as opcoes em cima do Oracle e suas ferramentas de
desenvolvimento, que quem conhece sabe que tem uma tendencia ainda pior do
que o VB para gerar c�digo macarr�nico. Eu n�o tenho d�vidas quanto a
excelencia do banco de dados da Oracle, mas naquela situa��o aposto minha
m�o direita que Sybase, Interbase ou at� PostgreSQL davam conta do recado
muit�ssimo bem sem precisar vender a alma para pagar a licen�a do banco,
que como todo mundo sabe � cobrado por frequencia de clock do seu
processador e mem�ria q vc tem.
E do ponto de vista financeiro? Aha! O custo total de banco + ferramentas
+ consultoria e treinamento da solucao anterior ia ficar na faixa de 200 a
300 mil reais (contas minhas), enquanto a minha proposta, incluindo
treinamento, com ferramentas gr�tis/livres ia ficar em estourando 30 mil
reais. L�gico que o bobo aqui fez uma s�rie de gr�ficos e juntou um
monte de material para apresentar ao pessoal do CPD, e todo mundo
demonstrou interesse. At� o consultor, que tem plenos poderes na firma,
assistir meu arrazoado e me perguntar se eu tinha inten��o de levar aquilo
� gerencia j� que reduziria os custos em 90%. O que a besta quadrada
falou? "Sim, t�o r�pido quanto poss�vel". E o que ele respondeu: "nao faz
isso, o investimento j� est� feito e o pessoal ja t� vindo pra dar o
treinamento".
Poucos dias depois, recebi o bilhete azul da mao desse consultor. Disse
que a equipe nao se adaptou a mim, apesar de ter dois l� que eu j�
conhecia h� s�culos de outros carnavais :). S� depois descobri que a
solucao 100% Oracle tinha vindo dele, depois de uma quebra de bra�o de
meses com a gerencia.
Pq contei toda essa hist�ria aqui? Pra te mostrar como politica (ou
politicagem) pode influir numa decis�o de ambito puramente t�cnico e gerar
preju�zo. E software livre pode estar nos dois lados da decisao (nesse
caso, eu me lasquei por sugerir software livre). Se a decisao tivesse
permanecido nos c�rculos t�cnicos ou, cof cof, dept. financeiro, talvez eu
nao estivesse procurando emprego hj. E tamb�m pode ser entendido como um
efeito do poder da informa�ao, pois ele tinha uma informacao q eu nao
tinha e garantiu seu real por causa disso. Por isso, muito cuidado. Agora
que a inform�tica virou um po�o de marketeiros e lit�gio, at� a solucao
mais barata e tecnicamente correta pode te levar � fila do desemprego.
Thiago
--
He who fights and run away lives to fight another day. (Bob Marley)
Assinantes em 23/09/2001: 2376
Mensagens recebidas desde 07/01/1999: 133539
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]