Fábricas de Software se tornaram uma nova 'modinha' de pouco mais de um ano prá cá. Gerou filhotes no mínimo estranhos, como Fábricas de Código/Programas e Fábricas de Projeto (!). A 'modinha' pode ser reflexo da indústria indiana. Suas atribuições e diferenças ainda são confusas. Aquelas de 'software' e 'programas' trabalhariam exclusivamente com programadores, no sentido clássico do termo. Já as fábricas de 'Projetos' assumiriam mais responsabilidades, como a arquitetura e modelagem das soluções.
Fábrica e Projeto são conceitos antagônicos. Por fábrica entendemos esforço repetitivo, contínuo. Já um Projeto é único por natureza. Nunca existem 2 projetos idênticos. Provavelmente o termo (conceito) foi criado (numa forçação de barra daquelas) prá forçar "projetos mais ágeis".
Todas as organizações, principalmente aquelas de médio e grande portes, já possuem uma infra-estrutura de aplicações. ERP's, CRM's, SCM's, PLC's e afins formam os 'stacks' default de soluções corporativas. Abaixo delas existe a infra básica: servidores de bancos de dados, de aplicações, web, conteúdo, e-mail, etc.
80% da demanda por "desenvolvimento" tem a ver com manutenção/correção/adequação das aplicações. Forçando um pouco a barra, dá prá imaginar tal serviço sendo executado em uma "Fábrica". Dependendo da tecnologia, tem trabalho pesado e repetitivo prá ser realizado (o exemplo mais notável foi a demanda gerada pelo bug do milênio).
Mas os novos projetos não tem nada a ver com "fábricas"! Tem gente chamando esse tipo de solução de "meta-aplicações" ou "composite applications". Normalmente elas se inserem em um dos 3 grupos abaixo:
a. Atualizam e/ou Extendem uma aplicação legada;
b. Integram e/ou Extendem um pacote;
c. Nova aplicação que usa a camada inferior (ERP, CRM, SCM, ...) como infra.
Normalmente são projetos de pequeno porte, que devem durar um máximo de 6 meses. Caracterizam-se também pelo seu "alinhamento" com uma estratégia de negócio. Demandadas (na maior parte das vezes) por uma unidade de negócio (e não pela área de TI), sempre têm um cunho "estratégico" e são, como sempre, "para ontem".
Tecnologicamente falando também representam um desafio. As "extensões e integrações" citadas devem demandar tecnologia web (mais simples), SOA e web services (complexidade alta), wireless... e por aí vai.
É o que podemos chamar de projeto "filé". Desafiadores, significam a aquisição de novos e desejados conhecimentos. $$ falando, são também aqueles que podem representar as maiores margens de lucro.
Pergunto: dá prá desenvolver "meta-aplicação" em uma fábrica? Lógico que não!
Quem anda dando muita atenção (e $$) prá fábricas deve desconhecer MDA (Model Driven Architecture) e toda a revolução que está acontecendo no mundo dos IDE's (Integrated Development Environment). Pior: não tá percebendo corretamente o perfil dos novos projetos.
Entrevista legal do Grady Booch falando sobre o MDA.
Material básico sobre SOA e derivados do ZapThink.
As tais fábricas de software estão ficando parecidas com as primeiras linhas de montagem arquitetadas por Ford. Pô! Nossa indústria e nosso tempo não merece algo "mais moderno"? Só agora a MS anuncia um IDE, o Visual Studio Team System, que 'facilitaria' o trabalho numa fábrica. No mundo Java a situação não é muito diferente.
Se olharmos os "processos" (particularmente RUP e MSF), perceberemos um considerável gap também.
Mesmo assim, dá uma sacada no portfolio de todo mundo que um dia se apresentou como "software house" (um nome mais simpático e moderno). Pois é... Vai entender nossa "indústria"...
0 responses to "Fábricas de Software - Algumas Considerações"
Leave a Reply