Newsletter

Mantenha-se informado sobre as nossas novidades com nosso newsletter semanal, todas as segundas-feiras

Houve um feedback muito positivo sobre os posts relacionados a engenharia de software e projetos. É impressionate como as empresas e obviamente, as pessoas que fazem parte delas, continuam cometendo os mesmos erros. E mais, são erros tão comuns que não importa a tecnologia. Prazos muito curtos, estimativas completamente erradas, requisitos mutantes, gambiarra e fracassos, muitos fracassos.

O The Standish Group publica um relatório chamado The Chaos Report e mostra o cenário da indústria de software:

- Aproximadamente 18% do projetos são cancelados por atrasos e orçamento estourados.
- Aproximadamente 52% dos projetos estouram o orçamento e/ou o prazo.
- Aproximadamente 30% de todos os projetos de TI atingem seus objetivos dentro de prazo e custo estimados.

Se apenas 3 de cada 10 projetos dão certo, o que raios está havendo com os outros 7? A taxa de falhas é enorme e não há comparação com outros tipos de indústria e os motivos já foram descritos em inúmeros livros e um deles é: software é abstrato.

Quando alguém pede para colocar rodas de liga leve no carro, espera pagar por isso. O objeto “roda de liga leve” pode ter sua qualidade analisada imediatamente: menor peso, mais bonito, etc. A mesma lógica não funciona para software, já que ele não existe no mundo físico, é texto que magicamente faz alguma coisa acontecer dentro do computador.

“…colocar uns botões dinâmicos aqui, sem refresh… poderia ser em Flash ou quem sabe Silverlight. Hum… será que Flex seria vantajoso? Vamos fazer em Flex. Se ficar ruim, tentamos Flash e/ou Silverlight. Mas não pode atrasar!”

O que assusta muita gente é que não há linguagem, framework, ferramenta ou plataforma que resolvam problemas que estão além da tecnologia. As metodologias de desenvolvimento ágil como o Iconix, Scrum e XP tem o mantra “embrace change”, ou seja, não lute contra mudanças, mas integre-as ao seu dia a dia. Apesar disso parecer uma novidade, não é. Esse tipo de busca já havia sido objeto de pesquisa e análise nos anos 60 e 70 do século passado.

E o que é mais interessante. A lista que vou apresentar abaixo é antiga e muita gente lê e diz: nossa, verdade.

anatomia_fracasso

Agora, dos listagem acima, quantos deles o PHP, Ruby on Rails, Java ou .Net possuem influência?

Nenhum. São atividades que precedem a escrita do código e a escolha da tecnologia. Todas circulam em torno de Planejamento. Há um enorme vício em começar a trabalhar sem planejamento algum. É impressionante como o importante é sempre o mantra “começar o desenvolvimento o mais rápido possível”. É o velho pensamento de que se não há código, não há progresso.

Se traçarmos um paralelo com o mundo real, é como começar a construir um prédio, sem saber quantos andares ele vai ter.

Fonte: Bicalho’s Memory About Fraked Up Projects

5

Camargos's picture

Infelizmente este amadorismo é generalizado. Teoricamente alguém deveria sair de uma universidade sabendo gerenciar projetos, mas esta não é a verdade.

---------------------------------------------------------
Cesarcamarg0s.spaces.live.com

Quê? Que faculdade é essa? Os melhores gerentes de projeto (e acho que a maioria aqui concorda) são os que vieram da área técnica. Um recem formado não deve saber gerenciar, principalmente os da área técnica. A parte teórica de gerencia de projeto é assunto pra PMI, Pos-Graduação ou MBA. A parte prática só trabalhando na área técnica por pelo menos uns 5 anos.
O problema não tá nos recem formados. Normalmente os caras sabem mais de engenharia de software do que de programação em si (duvido que metade dos recem formados na área saibam implementar um FIFO sem pegar exemplos prontos).
Oque talvez aconteça é não saber aplicar a engenharia de software que se conhece, e ai a empresa é quem tem o papel de guiá-lo. Teria, já que é na empresa, particularmente na área de vendas, onde se percebe o início da bola de neve que viram muitos projetos.
Talvez o ideal seriam que os projetos tivessem seus requisitos muito bem levantados antes (e de repente o cliente poderia arcar com o custo inicial desse levantamento, mesmo que o projeto não fosse vendido) da venda em si. Isso diminuiria a abstração: o cliente saberia o que está comprando, o desenvolvedor saberia o que está desenvolvendo.

---------------
lero-lero

Se a questão do atraso é amadorismo a empresa que está na placa ao seu lado é amadora. Eye-wink

O problema não é saber gerenciar projetos, mas sim fechar o escopo em uma linguagem que seja entendível pelos dois lados (usuários e desenvolvedores) e o mais difícil, dimensionar o que nunca foi feito antes. É aí que a maioria dos projetos falha.

Peguem as tochas, foices e acendam as fogueiras!

Camargos's picture

Ubiratan quando você diz "fechar o escopo em uma linguagem que seja entendível pelos dois lados (usuários e desenvolvedores) e o mais difícil, dimensionar o que nunca foi feito antes", você esta definindo o que é Gerenciar projetos!

De uma olhada no PMbok que você verá estes itens lá.

---------------------------------------------------------
Cesarcamarg0s.spaces.live.com

Tenho o PMBOK, e sei que isso é um projeto, o que estou dizendo que um projeto de software é muito difícil definir o escopo, pois o entregável não é concreto, não é a mesma coisa que fazer um prédio de 10 andares com 2 elevadores com acabamento x nos andares. É muito mais etéreo, por isso é difícil definir na negociação do que é o produto final. Existem várias tentativas de linguagens comuns, UML é uma delas, mas nenhuma atende plenamente esse objetivo, por isso sempre o escopo vai ter uma certa dose de imponderabilidade.

Depois disso entra o problema de dimensionamento, quanto tempo vai levar para detalhar, programar e testar esse escopo? Existem ferramentas para isso como por exemplo pontos de função, mas somente com o escopo fechado (espera-se que esteja fechado) isso é muito difícil, conforme a definição vai sendo detalhada tem-se uma melhor idéia do tempo e dos recursos necessários para entregar o projeto, mas isso já é com o projeto em andamento.

Se você acha que só seguir o PMBOK é suficiente para levar um projeto de software, boa sorte.

Peguem as tochas, foices e acendam as fogueiras!

Jason Manchest's picture

Pontos de função?

Prefiro mais Pontos de Caso de Uso, mais simples de usar, dar maiores informações sobre custo e tempo, além de ser bem mais fácil de calcular.

Mas uma coisa é fato não adianta inciar algo sem saber o que está fazendo, sempre é bom analizar bem o que o cliente quer e se possível enumerar tais itens, se estiver usando OO isso pode ficar mais fácil, contudo caso esteja usando técnicas e tecnológias procedurais, então a coisa pode ter um alto grau de difículdade.

Não sou o Jonny Walker, mas walk mais que ele...

LeandroAlves's picture
Quote:

...e o mais difícil, dimensionar o que nunca foi feito antes. É aí que a maioria dos projetos falha.

Basta fazer o que os produtores de Hollywood fazem. Para dimensionar uma produção (que tão incógnita quanto um software), ele iniciam por um history-board.

A maioria dos profissionais são ruins de projeto e só serve como mão-de-obra. O problema é que muitos desses profissionais acabam liderando projetos por ser aquele cara com maior conhecimento técnico.

Jason Manchest's picture

Discordo um pouco, pois um filme segue uma linha única, por isso tem-se um storyboard que descreve as cenas do filme (que provavelmente é uma visualização de um roteiro), o que é bem mais fácil de analizar, além que o cliente em si geralmente aceita a forma como filme anda, raras as vezes existe alguma mudança de escopo do filme.

Contudo num software isso não funciona, pois o mesmo é realmente mutante, primeiro pois o próprio cliente nem sabe exatamente o que quer, geralmente faz referencia a outro software e caso seja algo que nunca foi antes feito antes ai vai a viagem na etena maionese.

Outro fator é a tecnologia, pois precisa escolher a tecnologia correta para uma determinada situação, no caso é como se tentasse usar .net em um microcontrolador de carro, coisa logicamente inviável, ou usar C++ (nativo) para a construção de um site que será visto nas mais diversas plataformas que também é inviável, ou ainda usar Java para aplicações Real Time. O que pode se considerar que nestes casos nenhuma tecnologia está sendo realmente bem empregada.

Outro fator que atrapalha muito são as excessivas metodologias milagrosas que todo mundo pensa que irão se encaixar nas mais diversas situações, ou mesmo padrões de software que dizem resolver problemas complexos usando idéias ainda mais complexas como é o caso do MVP, que apesar de simplificar muito a manutenção você acaba tendo que escrever o dobro de código que iria escrever normalmente, sem contar que a mudança de um dado componente de visão iria prejudicar toda sua área de eventos, lógico que isso seria inviável para projetos que possuem prazos muito curtos.

Mas o que muitas vezes é a alma de um bom projeto é a experiencia do desenvolvedor de contornar problemas (não realmente gambiarras) para que possam satisfazer com melhor qualidade um projeto.

Como disse uma vez o professor de Análise de Projetos: "Enquanto você puder contornar a montanha então contorne"

Não sou o Jonny Walker, mas walk mais que ele...

Decapattack's picture

Onde eu trabalhava passamos um ano discutindo isso. Sobre qual seria a melhor forma de planejamento sabendo que software é algo abstrato.

Não chegamos a uma conclusão satisfatória.

Deus Ex Machina

ASAFE's picture

Essa memória do Bicalho sobre projetos "ferrados" é longa...

_____________________________________________________________

Sempre programe como se seu cliente fosse um maníaco serial killer que sabe onde você mora.

ASAFE's picture

Eye-wink
_____________________________________________________________

Sempre programe como se seu cliente fosse um maníaco serial killer que sabe onde você mora.

xzerorj's picture

Ruim mesmo é quando o cliente acredita que o estamos "enrolando" porque o prazo está estourando por causa de uma "pequenina mudança" no escopo do projeto (ou seja, reanálise)

RodrigoCantarino's picture
xzerorj wrote:

Ruim mesmo é quando o cliente acredita que o estamos "enrolando" porque o prazo está estourando por causa de uma "pequenina mudança" no escopo do projeto (ou seja, reanálise)

O problema maior não é quando ele acredita, mas sim quando ele tem aquela certeza. Aí fu***....

trabanom's picture

Por estas e outras que eu aplicava PDCA (Please Dont Change Anything - por favor não mude nada) nos meu projetos porque o outro PDCA (Promete Depois Corre Atrás) eu vi que nunca funcionava.

--

A única coisa que realmente controlamos nessa vida é se somos bons ou maus!

AndreNunes's picture

Eu acredito que esta pesquisa é furada. Este índice de 30% de projetos concluídos com sucesso dentro do prazo e orçamentos é superestimado.

na verdade, não só com softwares o índice é tão elevado...
é costume atrasar...pelomenos por aqui

hamacker's picture

Minha experiência mostra que o fruto das desistências na maioria das vezes tem a ver com gerente inebriado de "superprodutividade". As vezes, o gerente entende de processos, mas não entende de sistemas e desenha um esquema que só funciona na cabeça dele, mas ninguem diz que não pode fazê-lo. Daí os programadores começam e depois de algum tempo percebem que algo melhor surgiu, o leadtime do processo aumentou, etc... para chegar a conclusão que o sistema naufragou.

Abandonar um sistema que tá naufragando é mole e fácil, duro é abandonar um sistema porque lhe empurram outro porque alguem disse "é só um sisteminha que você tira de letra".

--
Se não fosse pelo C, estaríamos usando BASI, PASAL e OBOL.

Luferat's picture

Acho que tudo se resume em "as pessoas acharem que computadores fazem mágica!"

________________________________________
"Viva como se fosse morrer amanhã.
Aprenda com se fosse viver para sempre."
Mahatma Gandhi

By CataBits

LeandroAlves's picture

O problema nem de longe é a etapa de planejamento. Por causa de um modismo bobo, tudo gira em torno do "planejamento".

A grande questão é o pré-planejamento. Antes de começar a burrocratizar tudo, é necessário envolver a equipe com a razão de existir do projeto. Todos sabemos que o maior problema de engenharia de software é a produtividade vs. qualidade. A única forma que existe de equilibrar essa equação é motivar. Gosto muito de observar pastores evangélicos, apresentadores de tv, políticos, entre outros para saber como eles fazem para cativar as pessoas, envolve-las numa causa e serem sinceras quando dizem "sim, farei minha parte!".

Do que adianta planejar se seu exército não sente amor pela pátria? Se estão lá só pelo soldo e não querem morrer?

Planejamento é básico. O problema é outro, e está nas ciências humanas.

My Memory About Freaked Up Projects Smiling

Jason Manchest's picture

O problema desta abordagem é que motivando demais um grupo, o mesmo grupo vai subestimar demais o projeto, de forma que deixarão muitos problemas passarem e quando estes problemas aparecerem toda motivação vai por água a baixo (juntamente com o projeto).

Então não adianta motivar demais e muitos menos superestimar demais, tem que ter um equilibrio, já que no caso de pastores a maioria das pessoas chegam a fazer coisas absurdas pois pensam que se não fizer o que o pastor está pensando então será condenado ao inferno, o que acaba gerando fanáticos, que também não é bom.

Não sou o Jonny Walker, mas walk mais que ele...

Klbr's picture

Ótima matéria! Infelizmente é assim, fazer nas coxas para entregar rápido e ter um volume de desenvolvimento bom, consecutivamente faturar mais. Mundo capitalista é assim, ja perdi as vezes que tive que fazer tudo nas coxas pela exigência do imediatismo e da imprudência de analises meia-boca.

Isso é um mal generalizado, acontece nas melhores famílias.
----
.\o>
. |
. \\

1berto's picture

Fazer um projeto, colocar documentação também
não garante nada, eu trabalho numa empresa
grande que tem todos os grupos criados para
isso, dezenas de analistas cuidando da gestão
de requisitos, a gerência tem mestrado na área.
E sabe o que o documento de requisito é?
Uma bela M..., é impressionante o quanto as
pessoas acham que requisito é coisa de tecnologia.
NÃO É, quem teria q aprender a fazer requisito
é o pessoal de negócio.
Eu passei meses batendo cabeça tentando passar
o projeto inteligente, q realmente dissesse
algo sobre o negócio, desisti, aprendi a fazer
o CRUD do jeito que eles queriam e fiz uma
planilha que gera o Crud (só coloco o nome
da entidade, a planilha gera tudo por conca-
tenação) e estou fazendo um documento de
verdade que vou usar para dar aceite no
código que o pessoal do código vai me
entregar.
Só o fato de quase todo livro de Análise
de software recomendar o CRUD já me dá
arrepios (Qual é o caminho feliz do CRUD?
A inserção? A alteração? Ou a exclusão?)

Quote:

Agora, dos listagem acima, quantos deles o PHP, Ruby on Rails, Java ou .Net possuem influência?

Me parece que o Eiffel tenta endereçar algumas dessas deficiências, principalmente a parte de requisitos, alguém tem alguma experiência prática com Eiffel?

Peguem as tochas, foices e acendam as fogueiras!

sricanesh's picture

Acredito que você esteja falando do "Design by Contract" que o Eiffel suporta. Mas isso outras linguagens também suportam, seja nativamente, seja através de frameworks.

De qualquer modo, antecede à programação em quaisquer dessas linguagens (incluindo o Eiffel), o levantamento correto dos requisitos de software, bem como o desenho de todos os relacionamentos entre os objetos.

Cassio R Eskelsen

Sei disso, mas o que estou perguntando é se o Eiffel cumpre o que diz.

Peguem as tochas, foices e acendam as fogueiras!

amarques's picture

O percentual de projetos fracassados é maior no geral. Tempo, custo e escopo ainda podem ser medidos, mas se o que você entrega para o cliente é o que ele quer ou precisa é outra história.
As boas práticas de gerência de projetos que o PMI, ITIL, COBIT pregam, nunca vi sendo implementadas. Mas já vi gerentes estufando o peito e tirando onde de bonzão só porque tem uma certificação PMP ou similar. Se não aplica ou não sabe aplicar o que aprendeu, do que adianta o título? Para pendurar na parede? Só se for.
Não se pode controlar o que não se pode medir e não vejo medições sérias. A falta de planejamento é um erro imperdoável. Planejam mal e por tempo insuficiente. Numa proporção de 2 semanas de planejamento para 2 anos de execução. No Japão um projeto de 2 anos tem 1,5 anos de planejamento e o restante para execução. “Qualquer diferença é mera incompetência.”
Estimativas são feitas assim: lambem o dedo e apontam para o alto, para onde o vento soprar é pra lá que vão. Requisito é balela e risco deve ser um traço de giz no quadro negro.

Quote:

Não se pode controlar o que não se pode medir e não vejo medições sérias.

Concordo plenamente. Geralmente é difícil descobrir o que deve ser medido, se você descobrir isso deve criar instrumentos para medir, e depois disso acumular um histórico de medidas de projeto para uso futuro.

Quote:

A falta de planejamento é um erro imperdoável. Planejam mal e por tempo insuficiente. Numa proporção de 2 semanas de planejamento para 2 anos de execução. No Japão um projeto de 2 anos tem 1,5 anos de planejamento e o restante para execução. “Qualquer diferença é mera incompetência.”

Acho que é da cultura do brasileiro o fazer sem planejar, existe uma cultura de entregar qualquer coisa rápido sem se importar com o que está sendo entregue e com a qualidade do mesmo. As pessoas acham que planejar é perda de tempo, que tem que produzir logo de cara.

Quote:

Estimativas são feitas assim: lambem o dedo e apontam para o alto, para onde o vento soprar é pra lá que vão. Requisito é balela e risco deve ser um traço de giz no quadro negro.

Já tentei vender o planejamento e a partir do resultado do mesmo a execução, com a liberdade do cliente escolher outro implementador, mas não gostam da idéia, daí você tem que dar um chute e rezar para errar por pouco. Quanto à gestão de riscos os clientes geralmente nem querem saber que existe.

Peguem as tochas, foices e acendam as fogueiras!

robson_franca's picture

Legal o artigo, Bicalho.

Só uma pergunta: depois de todas essas pesquisas e as conclusões que podemos tirar deles, será que ainda é adequado falar em Engenharia de Software? Ou, por outro ângulo: será que Engenharia de Software existe?

Abraços

Ricardo Bicalho's picture
robson_franca wrote:

...depois de todas essas pesquisas e as conclusões que podemos tirar deles, será que ainda é adequado falar em Engenharia de Software? Ou, por outro ângulo: será que Engenharia de Software existe?

Isso dá bastante pano pra manga. A engenharia de software existe, mas ela é aplicada somente por um punhado de empresas e instituições. Os líderes da área trabalham com tecnologia aeroespacial.

fpsgyn's picture

Planejar é uma situação complicada, até por que não faz parte da cultura do empresário brasileiro, dai, como disse um cliente uma vez: "Não é só escrever essas coisinhas ai no computador e o programa já está pronto !", bom, a empresa dele faliu, garanto para vocês que não foi culpa do sistema....

Engenharia de software? Isso até ofende a Engenharia.
O que existe hoje é DESENVOLVIMENTO de software, mas ENGENHARIA de software eu desconheçco. Isso é que nem papai noel, a gente brincando mas sabe que não existe.

jwjosefy's picture
Quote:

Engenharia de software? Isso até ofende a Engenharia.

Como assim 'ofende'? WTF? Vc ao menos sabe o que é Engenharia de Software e a diferença dela pra Arquitetura e Desenvolvimento de SW ?

______________________________________
und ihr werdet die Wahrheit erkennen,
und die Wahrheit wird euch frei machen

sricanesh's picture

Bom, tenho uma frase para tudo isso: It’s the Architecture, Stupid!

Muitos acham que Arquitetura de Software é responsável apenas por desenhar os diagramas que separam as várias layers do sistema. Mas a arquitetura vai muito além disso e é responsável também por alinhar as visões de todos os envolvidos no projeto e levantar todos os requisitos e mitigar os riscos.

Infelizmente, a maioria das empresas/desenvolvedores acham que essa parte é bobagem e/ou perda de tempo.

Cássio Rogério Eskelsen

jwjosefy's picture

Excelente post Bicalho !!!

Só gostaria de acrescentar um ponto: o que eu vejo acontecendo hoje no mercado é a unificação das diversas variações da profissão de 'Analista de Sistemas'.

Tive uma palestra na FATEC-SP essa semana onde o prof. mencionou o fato de que na década de 80/90 (quando + ou - se iniciou com mais força a profissão de TI) as atribuições eram bem separadas. Quer dizer, programador era só programador, analista só analista etc.

Hoje temos o 'Analista-Programador' e estamos evoluíndo para o 'Analista de Negócios', que é aquele que DEVE / PRECISA entender do Business, das regras de negócio da área em que atua.

Eu sinto isso na pele, uma vez que trabalho no ramo de comércio exterior, e para as funções de analista que exerço no meu dia=a=dia eu preciso conhecer a legislação e os processos de importação / exportação.

Outra tendência que vejo é a demanda cada vez maior por Business Inteligence. Ao mesmo tempo vejo que muitas vezes esse termo não é muito claro para as pessoas...

Enfim, vou parar por aqui pra não 'enrolar' muito kkkk. Espero ter acrescentado ao post Eye-wink

______________________________________
und ihr werdet die Wahrheit erkennen,
und die Wahrheit wird euch frei machen

davidkwast's picture

Com certeza, sem as regras de negócio, o software já pode começar errado. Já passei por alguns problemas quando não tinha muita idéia dessa conciliação. Agora estou sempre olhando para os lados antes de atravessar a "rua do desenvolvimento"...

[]s

robson_franca's picture

Oi jwjosefy, beleza?

Na verdade, o buraco é (como sempre) mais embaixo. Fui aluno da FATEC-SP de 1996 a 2000. Existiam duas correntes dentro da FATEC: um grupo (principalmente o pessoal da matemática) defendia que o curso de PD fosse mais direcionado para a Ciência da Computação. Outro grupo, contudo, fazia pressão para que o curso de PD virasse o de "Analista de Negócios".

O problema é que o empresário é quem deveria saber do negócio. Se não tem ninguém para por a mão na massa, de maneira ordenada e decente, o projeto não sai. Muitos desses "Analistas de Negócios" são como políticos: fazem mil e uma promessas, conseguem falar a língua do cliente, normalmente resumida em: mais barato, mais rápido e melhor (lembra-se do outro texto do Bicalho?). Pois é, aí na hora do "vamos ver", são os projetistas e o pessoal da área mais técnica é que tem que suar a camisa. E, quando o projeto atrasa ou falha em algum requisito, são os primeiros a serem responsabilizados.

Na minha opinião, o diferencial da FATEC era unir, no mesmo curso, as duas linhas: tanto o lado acadêmico (programação, estruturas de dados, sistemas operacionais) como o lado administrativo. Tive 4 disciplinas dedicadas à administração, ou seja, 2 anos de administração praticamente. Isso sem contar disciplinas como Economia e Finanças, Relações Interpessoais, etc.

No momento em que um dos lados "ganha", o curso perde um pouco do seu diferencial. Se ele é mais "acadêmico", ele não é acadêmico o suficiente em comparação a uma Unicamp ou USP por exemplo. Por outro lado, sendo mais administrativo ele compete com USP, GV, etc.

O grande desafio é reunir o melhor dos dois mundos. Um profissional de TI deve conhecer os modelos de negócios e a realidade empresarial. Porém, um pouco da academia vem sempre a calhar para trazer novos (e eficientes) resultados.

Abraços

Bullshico's picture

Off total, mas é por essa e outras que eu me afastei de desenvolvimento de softwares comerciais... Gente preocupada demais com os "business" e preocupada de menos com todo o resto: ciência e tecnologia mesmo, salvo raras excessões, são só detalhes que não importam muito...

Deixo isso para quem tem saco. Prefiro a idéia de ser pesquisador. Smiling

____________________
"Triste época! É mais fácil desintegrar um átomo do que um preconceito" (Albert Einstein).

Cara esse povo precisa refazer o curso de engenharia! a organização tá péssima!

http://culturaatual.blogspot.com/

É claro que esta discussão não termina aqui, mas quero acrescentar a ela algo que muitos desenvolvedores esquecem, por estar mais acostumada com computadores do que com pessoas: gerenciar um projeto é gerenciar pessoas, e esse bicho é complicado!
Já estive em projetos que naufragaram porque os programadores ficavam mudando de ideia o tempo todo sobre qual era a melhor forma de fazer as coisas, e o gerente de projeto não tinha pulso/habilidade para fazer com que a equipe caminhasse o tempo todo para o mesmo lado. O resultado era uma reengenharia total a cada 2 ou 3 meses. Isso também não dá certo.
Esse assunto está longe de ter uma solução, mas tenho plena convicção de que ela passa por uma melhora na valorização das relações pessoais e habilidades gerenciais dos envolvidos.

------------------------
Não entre em pânico! (O Guia do Mochileiro das Galáxias)

hamacker's picture

sem falar na vaidade de cada programador com respeito a sua ciência e código, alguns tem uma vaidade estratosférica.

--
Se não fosse pelo C, estaríamos usando BASI, PASAL e OBOL.

felipeaj's picture

"Se traçarmos um paralelo com o mundo real, é como começar a construir um prédio, sem saber quantos andares ele vai ter."

Pior: depois do prédio quase pronto, o designer quer a porta da garagem 1 metro mais a esquerda, justo no lugar onde hoje existe um pilar, e terá que ser removido. Como? É problema de outra pessoa, não dele!

Essa questão do planejamento, inexistente, é desesperadora!
"Vamos pensar neste problema mais pra frente, por enquanto, vai tocando", bem do jeitinho POG de programar.

Ufa... desabafei, eheuhau

_______________________________
Blog FelipeJ.Net

Só tome cuidado com essa comparação com engenharia civil.
Tudo bem que planejamento são necessários para os dois, mas um software é muito diferente de um prédio.
Existem outras analogia melhores Smiling Como por exemplo, a do pomar/jardim.

felipeaj's picture

Apesar de achar muito interessante, sei muito pouco sobre engenharia civil!
Por isso que talvez minha comparação tenha ficado meio infeliz

mas o que me referia era que, por simples falta de comunicação, uma regra de negócio básica no sistema ter que ser mudada (como o pilar de um prédio), que de fora nao vemos, mas (principalmente os engenheiros) sabem da importancia, e sabem que não é com "BOTA UM IF ALI" que se resolve tudo!

um dia um dos diretores resolve que o sistema não vai trabalhar A, vai trabalhar B.

falo isso porque trabalho em uma empresa sem o MI-NI-MO de preocupação com planejamento, documentação, treinamento, etc

Thats the problem! Eye-wink
_______________________________
Blog FelipeJ.Net

hamacker's picture

A unica diferença que vejo em arquitetar um prédio e um software é a matéria prima utilizada. Se um engenheiro calcular errado o concreto o prédio desaba da mesma forma que se eu calcular errado o numero de acessos, o servidor "abenda" (cai).

Estamos na época do relativismo, onde todos os termos dão certo de um jeito ou do outro.

--
Se não fosse pelo C, estaríamos usando BASI, PASAL e OBOL.

benpinto's picture

Não sei se esse problema demanda de pressão por parte de clientes que obrigam gerentes de projeto a atropelar as etapas de análise e projeto ou os próprios gerentes que superestimam a velocidade de conclusão do projeto e se vêem obrigados e "engolir" essas etapas.

O resultado é esse, muito bem explanado no post por sinal, que gera índices absurdos de falhas de softs.

Infelizmente, lamentável.

Benjamin Pinto
Cool

saitodisse's picture

Ricardo, Adorei o Post. Como sempre vc vem levantando uma polêmica positiva.

robson_franca: Na minha opinião, o diferencial da FATEC era unir, no mesmo curso, as duas linhas: tanto o lado acadêmico (programação, estruturas de dados, sistemas operacionais) como o lado administrativo.

Também fiz FATEC(2001) e também acho que esse é o principal diferencial dela, essa junção entre negócio/tecnico que se dá pela experiência de mercados dos professores que dão aula lá. As melhores aulas que tive eram as historinhas contadas pelos professores, tanto da época dos computadores operados a cartão, quanto aos contos sobre casos de sucesso/fracasso na área.

Ricardo Bicalho: Se traçarmos um paralelo com o mundo real, é como começar a construir um prédio, sem saber quantos andares ele vai ter.

Ricardo, essa frase é interessante e é exatamente isso o que as metodologias ágeis propõe com sucesso: construir um prédio, sem saber quantos andares ele vai ter. Parece estranho mas é isso mesmo. Significa que só será desenvolvido o que precisa ser desenvolvido no momento. As metodologia ágeis, como XP, colocam o usuário na equipe de DESENVOLVEDORES (Analista o escambal) como uma de suas práticas.

Pré-requisitos para se utilizar qualquer metodologia

  • - exige comprometimento de todos envolvidos
  • - baseia-se na honestidade mútua entre os cliente e os desenvolvedores
  • - precisa ter bons desenvolvedores, capazes de lidar com negocio e ter domínio sobre a linguagem de programação utilizada.

Existem muitos outras práticas interessantes, como testes automatizados e servidores para integração contínua.

Para quem quiser quebrar paradigmas:
Vejam: http://agilemanifesto.org/
Leiam: Programação Extrema ( XP ) Explicada - Kent Beck



Design Wenetus