Fábrica de Sofware

[quote=marcosalex]
Bom, se você acha que um trabalho de interfaces é mais comparável com quem trabalha na regra de negócios, ótimo. Sobre o artigo, ele vai muito em direção ao que falei: gerenciar o processo não é só caso de uso e uml, tem de ser gerenciado de perto analisando caso a caso as atividades. O que sai caro na grande maioria das vezes é deixar tudo andar com a maré.[/quote]

Marcos,

Especializar papéis entre análise e programação já é sofrível. Fazer isso ao nível de camadas e tentar gerenciar essa dinâmica é uma aberração.

Pelas conversas que tivemos nesse fórum dá pra ver que você é bem fã da visão do PMBOK com relação ao gerenciamento de projetos (WBS, escopo detalhado, controle de tarefas e etc…). Atualmente tenho desenvolvido softwares para a área de engenharia (mecânica, elétrica e civil) e vejo que essa visão casa bem com esses tipos de projetos. São projetos que envolvem mais de 10 equipes e centenas de pessoas que muitas vezes não são profissionais do conhecimento (aka peão de obra). Outro ponto: esses projetos tem uma segurança com relação à sua previsibilidade. É um tipo de projeto que a soma das tarefas dá o resultado esperado.

Para projetos de software as tarefas não são importantes para o gerenciamento. O que é importante são os objetivos. São histórias implementadas e não tarefas cumpridas (como o pcalcado explicou). Nosso earned value cresce só com casos de uso funcionando. Escrever casos de uso, fazer modelos, fazer planos, codificar, testes não agregam valor. Como sempre digo, o escopo de um projeto de software é resolver problemas de negócios e não implementar requisitos. É um processo empírico.

"

"

[quote=marcosalex][quote=pcalcado]
Tudo é possível mas eu, autores de metodologias e Brooks discordamos de que seja em muitas situações.
[/quote]
Nunca disse em muitas, mas “quando possível”.
[/quote]

Sim, você disse que em muitas situações:

O CHAOS Report discorda de você. Pode ser sua opinião mas dadas as estatísticas tanto do relatório quanto das pessoas que postaram nesta thread eu creio que voc6e está enganado.

[quote=marcosalex]Você está analisando o pior caso. Será que a maioria dos gerentes de software ainda pensam assim? A grande maioria não, a realidade tem mudado bastante. Novamente eu tomaria cuidado com a palavra “sempre” e generalizações.
[/quote]

Novamente: confira as estatísticas antes de falar em maioria.

[quote=marcosalex]
Todos os trabalhos citados falam de uma abordagem comum para todos os projetos, a famosa “receita de bolo para o sucesso”. Gerenciamento nunca foi isso. E nesses trabalhos eles mesmo citam que não estão falando para não usar as metolodias, mas para não adotá-las como regra geral, eu concordo com isso. Gerenciamento é saber quando, onde e em que ponto usar. NESSE PONTO, fábricas de software podem ter um sucesso maior.[/quote]

Nenhum dos trabalhos citados ala sobre receita de bolo ou sequer descreve metodologias. Antes de criticar algo é sempre bom saber do que se trata.

Cite apenas um exemplo real de uma empresa conceituada que conseguiu isso dessa maneira que vc descreve tanto nessa thread!

Agora se quiser exemplos de empresas que não conseguem, podemos fazer uma lista aqui de pelo menos 10 páginas.

Parece que vc esta se esforçando para “vender” um brinquedo quebrado, que todos estão carecas de saber que não da certo, que não funciona, o Phillip cansa de citar autores e mais autores mostrando isso, relatos e mais relatos comprovando a grande porcaria que é trabalhar dessa maneira, mas como sempre, continuam tentando meter isso goela abaixo, vendendo idéias falidas há vários anos, tentando achar meios de justificar os erros para fazer acreditar que se tivesse sido feito corretamente, funcionaria.
Desculpe, mas estamos em 2008, acho pouco provável alguém (que seja do meio, geralmente o cliente não é) ver os fatos, analisar o cenário (como toda hora alguém faz mostrando dados, autores e etc) ainda dar crédito a toda essa maneira fálida de se pensar em software.

"

Ótimo, então cite e vamos continuar o debate.

[quote=marcosalex]
O estranho é achar que não vale a pena gerenciar um projeto ou ter métricas pra avaliar a qualidade do software.[/quote]

Essa parte tá meio chata. Já foram umas duas ou três vezes que falei aqui que não é sobre não gerenciar ou ter métricas mas sim qual tipo de gerência e métrica é usada, como por exemplo na página anterior:

A conversa estava interessante mas peço que leia as respostas, do contrário fica bem difícil mantêr um diálogo sadio.

"

Hmm… interessante. Você sabe de onde surgiu a frase “No Silver Bullet”?

De qualquer forma, favor mostrar onde eu falei que algo sempre falha para que entenda melhor o que está dizendo.

[quote=marcosalex]
O que você chama de cronograma completo? Se for ter um cronograma no início do projeto e se ater a ele, não é só pra software que não funciona, mas em qualquer projeto que o escopo vai se definindo a medida que for caminhando. O problema é achar que por causa disso pode desenvolver sem nenhuma previsão e sem nenhum acompanhamento por acreditar que “como vai furar, não adianta acompanhar, no dia que ficar pronto, eu entrego”.[/quote]

Eu não vou nem entrar no cronograma, só vou perguntar quem falou “pode desenvolver sem nenhuma previsão e sem nenhum acompanhamento por acreditar que ‘como vai furar, não adianta acompanhar, no dia que ficar pronto, eu entrego’”.

Me parece que você está implicando que se não se usa os métodos que você defende para gerência de projetos (por exemplo um cronograma de tarefas) não há gerência. Se isso for verdade então sinto muito mas você está completamente enganado.

"

Pois é, o autor deste artigo chama-se Fred Brooks e é o autor que eu estou recomendando que você leia há duas páginas -o livro que fala sobre como novas pessoas atrasam um projeto.

O que eu não entendi até agora é onde você acha que eu discordei disso. O tópico é sobre Fábrica de Software e não sobre se um projeto deve ou não ser acompanhado. O meu ponto é que os métodos usados pelas fábricas -e não necessariamente os princípios- falham e existem meios melhores.

[quote=marcosalex]Bom, organizando as idéias:
1 A empresa está com um determinado problema e chegou a conclusão internamente que o desenvolvimento de um software resolveria esse problema.
2 Por questão de limitação de recursos (humanos, financeiros, tempo, cronológico, etc) decidiu terceirizar
3 Poderia escolher uma das várias opções: comprar software pronto, contratar uma empresa de software normal pra desenvolver ou contratar uma fábrica de software

Até aí a gente concordou que terceirizar poderia ser uma opção dependendo do caso. A discordância foi que a metodologia de uma fábrica de software poderia ser melhor do que outras já existentes, certo? Você citou que já teve experiências que no final o produto demorou mais tempo, custou mais e não saiu com a qualidade esperada.[/quote]

Exato e por isso eu não entendi seu pontos nos últimos dois ou três posts antes deste.

O assunto está andando em círculos, então vou tentar concluir:

Gerenciar um projeto é importante. Existem milhões de formas de fazer isso. Uma fábrica se baseia no modelo de linha de montagem, linha de montagem não funciona para software. Claro que pode funcionar num caso X ou Y mas como regra geral não funciona e as estatísticas mostram isso.

"

Bom, uma rápida procura na wikipedia mostra um artigo que resume o pensamento nacional sobre o que é uma fábrica de software:

[editado]
Deixando mais claro:

[/editado]

Marcos vc esta enganado amigo, pois é exatamente por se basear nesse modelo de linha de montagem que se usa essa terminologia “fábrica de software”, ou seja, entra (requisitos), processamento (desenvolvimento, teste, homologação) e saída (produto final).

TODAS as empresas que se intitulam/rotual/vangloriam “fábricas de software” que eu conheço aqui em São Paulo trabalham exatamente assim, se existir alguma que trabalhe diferente (o que eu dúvido) nos fale para temos um exemplo real pelo menos.

[quote=marcosalex]
Concordo exatamente com você. Mas pelo que eu entendi de fábricas de software até hoje, elas não se baseiam em linha de montagem e produção em série da forma que você está falando, pelo menos o que eu interpretei dos modelos de fábricas de software que conheço[/quote]

Geralemten seguem o seguinte modelo: Analista de requisitos se reune com o cliente, o cliente inventa um milhão de coisas para o software, o analista faz um documento de requisitos, faz o cliente assinar os requisitos com o sangue, passa os requisitos para o arquiteto\projetista, que faz um monte de diagrama UML e passa para um programador que traduz aquele UML em código, compila, faz a build, passa para um testador que faz meia duzia de cliques nas telas do sistema, encontra N erros, e passa os Change Requests para o programador, que corrige os N erros, fazendo referencia do Change Request na alteração que ele teve que fazer, aí o tester fala para o gerentinho do projeto “OK”, o gerentinho do projeto entrega o projeto pro cliente, o cliente homologa, passa para o usuário e ele ve que aquela joça não presta.

Ficou meio confuso (propositalmente), mas é mais ou menos assim.

Olá amigo marcosalex.

Tome cuidado com essa necessidade exacerbada de gerenciamento de projetos. Como nossos colegas aqui do forum disseram, precisamos sim gerenciar, basta verificar como isso está sendo feito e como pode ser feito. Cuidado para não cair no “Comando Controle”… Desenvolvimento de software é arte, ao menos para mim, arquitetura também vai além da arquitetura e contrução civil no qual o nosso velho modelo cascata baseou-se. Fábricas de software, como todos disseram, seguiram o modelo industrial também, todos numa tentativa desesperada de se “moldar” o desenvolvimento de software.
Convido-o a participar de alguma palestra que fale do manifesto ágil ou mesmo sobre Scrum. Leia alguns artigos, blogs como o do nosso colega “Shoes”.
Recomendo o link: http://www.scrumalliance.org/

Abra a mente meu camarada…

Forte abraço,
Dany Gregory.

"

Peço desculpas se lhe passei esta idéia meu caro, de forma alguma foi minha intenção atacá-lo.

Como nosso colega disse que desenterrei um assunto jurássico, vamos por o dinossauro de volta porque não queremos um Rex solto por aí certo? Se é que vale o trocadilho.

Grande abraço!
Dany Gregory.

cara acabei de entra, me da dicas, pois tenho muita expriencia com eletronicos…

Acho que a culpa da decadência do trabalhador nas fábricas de software é por causa da administração.

Sim, os administradores, que inspirados em seus ídolos austeros como Frederic Taylor e até mesmo Henry Ford, implantam processos oriundos das linhas de produção, segmentando o trabalho, fazendo com que cada programador faça uma pequena parte do produto final. Já vi lugares em que um programador fazia o orçamentário, outro fazia o financeiro e assim por diante. O resultado final era que cada um dos coitados não conhecia o produto que fabricava.

Existem fábricas de software em que os administradores levam tão a sério o modelo Taylorista que dividem tanto o trabalho que cada profissional faz somente a mesma coisa todos os dias: um só trabalha com css, outro só trabalha com javascript, outro só mexe com php, outro só mexe com arquitetura e assim por diante. O resultado é desatroso para o trabalhador, que sai inápto para fazer um produto inteiro, já que só sabe fazer uma pequena parte de um software.

Já vi programadores que sairam de fábricas de software reclamando que não conseguiam fazer um software por inteiro, desde a análise até a implantação… Eram ináptos pois as fábricas de onde sairam segmentava o trabalho. Como dizia o grandíssimo filósofo Proudhoun: “o trabalho parcelar embrutece a inteligência”. No caso, torna os programadores ináptos para fazerem outras partes de um sistema, então ficam na mesmisse e sempre serão explorados e humilhados por essas fábricas e consultorias.

O mesmo aconteceu com a Atari. A Atari foi fundada pelos próprios programadores e foi gerenciada por eles próprios até um dia ser comprada pela Warner, com isso veio a adminstração e implantou uma linha de produção lá, transformando a Atari em uma fábrica de jogos. Os programadores revoltados, recusaram essa humilhação e deixaram a Atari para formar outra empresa, a Activision.

Qualquer um que pense bem percebe que essas linhas de produção são humilhantes para quem está trabalhando nelas, e eu diria que seus inventores Taylor, Ford e corja do tipo, são malignos em fazer algo que visa somente o lucro em detrimento do bem estar e brio do trabalhador. Se você tiver alguma noção de brio e compaixão pelo próximo, vai concordar. Parece até exageiro dizer que são maligos, mas qualquer um que tenha um pouco de tendência de falar ou fazer o mau são malignos, e, esse tipo de gente são a maioria em nossa sociedade.

Henry Ford apoio e financiou o terceiro reich de Hitler, não me foi surpresa quando descobri isso, pois há mesmo algo maligno em alguém que inventa uma linha de produção com o intento de aumentar a produtividade e lucro reduzindo o ser humano a engrenagens de máquina, humilhando-os em toda suas faculdades mentais e desrespeitando tudo aquilo que há de elevado no ser humano. Alguém que trabalhe nisso se embrutece, atrofia todas suas qualidade morais e intelectuais. Não há brio, e o serviço se aproxima mais ao sentindo original da palavra “trabalho”, que é castigo.

Fábricas de software são as linhas de produção de trabalho parcelar dos tempos modernos. É o mesmo modelo Taylorista implantado na Atari que humilhou e indignou seus programadores forçando os mesmos a montarem outra empresa. Acho que qualquer um com um pouco de amor próprio e sentimento de dignidade e respeito próprio foge desses lixões e consultorias que se auto denominam fábricas.