Programadores ótimos X médios - Último artigo do Joel Spolsky

Rapaz, no dia que programar for mecânico, as ferramentas de UML vão gerar o programa, o programador não vai mais existir. Mas isso parece meio longe de acontecer… :lol:

[quote=tRuNkSnEt ]
Quem sou eu para dizer alguma coisa mas reformulanda a ideia do grandioso resulmidamente seria:

Melhores condiçoes de trabalho (foco nas pessoas não na tarefa) — melhores analistas ---- melhor software (qualidade, menor custo) ----- mais lucro. [/quote]

O analista que não consegue (ou não quer, por se sentir “superior”) se comunicar com a equipe de desenvolvimento já deu o primeiro vacilo. A análize deveria congregar todos os envolvidos se possível até o cliente. Melhor ainda, todos deveriam ter contato com tudo o tempo todo, a análize não deveria acontecer apenas uma vez, ela deveria ser diária.

A parte mais importante de um projeto de software é aquela que resolve o problema do cliente, o resto é penduricalho de árvore de natal 8)

Se o projeto conseguisse definir tudo isso, até a Microsoft fazia software de qualidade, barato e sem bug. Você acha que é melhor que os caras que trabalham lá? Tenta fazer uma entrevista.

Pergunta ao teu sobrinho de 12 anos se ele sabe utilizar uma ferramenta de indexação como o Lucene (é só utilizar, não precisa fazer uma não.

Assim, nunca ouvi falar que “começar do nada” funcionasse, mas pode ser que funcione né. Em XP o pessoal fala em “começar com o mínimo necessário”. Se só você não conseguiu fazer, se perdeu, deixou o programa cheio de erros e não conseguia fazer a manutenção, é porque você não sabe fazer, simples assim.

Programar tem um limite? Rapaz, acho que você realmente não é programador, o pessoal que faz a biblioteca GTK conseguiu fazer C ficar “meio” orientado a objetos, C é orientado a objetos? Os criadores do C imaginavam a orientação a objetos?

Você realmente precisa ler mais e programar mais.

[quote=rodrigousp]Minha experiência:

Recebi de um analista um documento de Word (que o analista chamou de pré-análise) que continha um desenhinho de uma tela e uma especificação viajante do que deveria ser feito. Prazo estimado pelo analista: 1 semana.
Falei para ele que pela especificação eu levaria 2 meses para fazer aquilo.

(…)

O cliente me chamou para uma reunião. Compreendendo a verdadeira necessidade do cliente e retirando toda a perfumaria e deixando outras coisas de lado, especifiquei o que eu serei uma proposta factível e cheguei a conclusão que poderia fazer o requerimento em duas semanas (levei um dia para fazer este levantamento).

20:00 horas da noite recebo um telefonema do meu chefe falando que eu precisava ler meu email… O cliente tinha falado (por email) com o gerente fabril sobre a solicitação que levou 2 semanas do nosso analista e que ele havia garantido que em 1 semana o projeto estaria em fase de aceitação; que eu revisei os documentos de pré-análise e conclui que seria preciso 2 semanas e que isto era inaceitável! etc, etc…

Conclusão: Fiz o projeto em uma semana … das 9:00 às 21:00 todos os dias e … louco para quebrar a cara daquele analista que não fez droga de especificação que prestasse.

Ao invés do cara desenhar uma solução para o problema (coisa que ele não tinha a menor idéia do que estava dizendo) por que simplesmente ele não escreveu a necessidade do ciente ???
Em resumo, isto foi uma grande cirurgia definida por um cara que nunca fez uma.

[/quote]

Ficar “brigado” com o analista não resolve o seu problema, vocês deveriam sentar e conversar sobre o que deve ou não ser feito. Esse tipo de atitude só vai piorar o relacionamento, o seu trabalho, o trabalho dele e o resultado final.

Isso não é concorrência, estamos todos tentando fazer software de qualidade!

[quote=Maurício Linhares]
Ficar “brigado” com o analista não resolve o seu problema, vocês deveriam sentar e conversar sobre o que deve ou não ser feito. Esse tipo de atitude só vai piorar o relacionamento, o seu trabalho, o trabalho dele e o resultado final.

Isso não é concorrência, estamos todos tentando fazer software de qualidade![/quote]

Sim!!! Este é um ponto chave … acho que alguém da área técnica (com bons conhecimentos) deve participar da DEFINIÇÃO da solução!!! Ele deve ser envolvido no começo do processo e não no final (construção em diante).

Quantas vezes um arquiteto (ou desenvolvedor mais experiente) você já viu ser envolvido no começo do processo ?

[quote=rodrigousp]Quantas vezes um arquiteto (ou desenvolvedor mais experiente) você já viu ser envolvido no começo do processo ?
[/quote]

Se ele não tá querendo se envolver durante todo o projeto, XP nele:

http://en.wikipedia.org/wiki/Extreme_Programming

Se mesmo assim ele não quer cooperar, o ego dele é grande demais pra trabalhar em grupo, é melhor ele ir virar ermitão numa montanha do Himalaia :mrgreen:

Quando ouço o título “Analista de Sistemas” a primeira coisa que me vem à cabeça é um cara de óculos de aros grossos, camisa branca e gravata preta, sentado à frente de um terminal IBM 3270 com tela de fósforo verde numa sala ultra-iluminada e gelada, numa empresa com organização taylorista da década de 1970.

O que é, afinal, um “Analista de Sistemas”?

  • Muito bem, Sistema, deite-se ali no divã e conte-me todos os seu bugs…

[quote=Umlauf]O que é, afinal, um “Analista de Sistemas”?

  • Muito bem, Sistema, deite-se ali no divã e conte-me todos os seu bugs…[/quote]

Essa foi d+ :lol:

Balela,

Excelentes programadores sempre serão necessários. E excelentes analistas também.

Se fosse assim era só mandar o Zé fazer um curso técnico que tudo estaria resolvido.

Wander

Olá

Você leu os artigos que justamente dizem que muitas empresas preferem não pagar muito por um cara excelente? A maioria das empresas que trabalhei é assim e acabam se ferrando.

E viu como este tópico mudou de rumo quando o trunk disse que analista só analisa e programador só programa? Eu, como desenvolvo sistemas desde 1969, acho que isto não existe mais. Com os programadores vindo de cursos superiores com boa base, não vejo ninguém mais contratando programador só para escrever código.

Qual tema achou balela?

[]s
Luca

Imagina só:gastar 10-20 horas para fazer um programa de milhares de linhas, apenas adaptando templates de outros programas/projetos já feitos e cobrar como se tivesse demorado 160, ainda inventar a necessidade de gasto extra com suporte e etc.E, por outro lado, demorar
200 horas em um algoritmo de criptografia(Tah, não é beem assim mas “façamos de conta”) mas q no final após árduo estudo/refactoring ficou com menos de 1000 linhas e se obrigado a cobrar um preço de 10?
:roll:

CMM é apenas mais uma sigla para onerar o tempo de quem projeta software e “adubar” o curriculum e o salário.É como EJB.A diferença é que EJB´s tem 1% comprovado de utilidade… :twisted:

Acho engraçado essa discussão…o que é um bom programador/analista?
Para mim é o que consegue entregar o que o cliente pediu…(ou o que consegue convencer ao cliente que o que ele fez é o que ele-o cliente- pediu.Mesmo não sendo!)

Pô, na minha CLT está escrito “Analista Programador”. E agora, o quê eu sou?

Humm… entaum há quem defenda que programador deve programar e analista deve projetar…

legal…

O analista vai lá, faz um projeto perfeito, e ai, o programador meia boca implementa um pedaço de código, e sai dando control C e control V pra tudo quanto é lado!

Acho que este é um bom motivo para que uma empresa contrate um bom programador, e nao vários programadores medianos! Digo por exepriência própria. Num tenho nem um ano e meio de experiência em desenvolvimento e já enjoei de corrigir bugs intermináveis por causa desses copias e colas!

Acho que tem profissional pra tudo quanto é gosto. Tem tanto programador ruim tão bém empregado. Vão lá, falam de OO super bém e blá blá blá, mas na hora H, é só anti boas práticas! Um desastre!

Quanto aos analista, sei lá se realmente precisamos deles! Talvez, analista seja últil para alguns projetos de empresas que pensam que software pode ser contruído da mesma forma que se contrói um carro! Nestes tipos de empresa eles são úteis.

Mas a realidade não é essa. Percebo claramente que os profissionais que vem se destacando são aqueles que buscam boas práticas de programação, buscam ter uma boa gama de conhecimento tecnológico e de suas artimanhas, e que ainda assim, buscam conhecer profundamente ou o suficiente o problema do cliente.

Thiago

Uma conclusão pode-se tirar disso tudo:
Vc tem nascer da barriga da sua mãe como
"ANALISTA SENIOR" para trabalhar e dar bons resultados p a empresa.E para ganhar bem tb.Acho q pelas opiniões é isso…rssss…
Bom mas deixando um pouco de lado a brincadeira acho q a tendência é existir analista programador.Vc tem q entender bem das coisas p programar…Eu tenho trabalhado como “programador” e como n são esclarecido bem as coisas nas empresas e vários problemas nascem no caminho tenho q me comportar como analista muitas vezes…
A realidade é q desenvolvimento de software n é sempre numa fábrica,num lugar lindo e com tudo programado.E a analise, os processos são definidos não como deveriam e no tempo q deveriam.
Enfim, infelizmente o caminho é um programador ser analista também.
E discordo q programador deveria ser “estagiário”.
Este tem seu valor…

[quote=Umlauf]
O que é, afinal, um “Analista de Sistemas”?

  • Muito bem, Sistema, deite-se ali no divã e conte-me todos os seu bugs…[/quote]

-Bom, eu preciso de um sistema bem simples de processamento de imagens com redes neurais junto com cálculos de pesquisa operacional e usando também cadeias de Markov.
-Tranquilo… uma semana dá pra fazer. Hum, acho melhor duas pois o nosso estagiário estuda na parte da manhã.
-Há, preciso que a aplicação funcione no desktop, na internet e no meu palm. Vai precisar aumentar o tempo?
-Claro que não, esses detalhes o programador faz no final de semana!

:mrgreen:

Olá

Leandro, na verdade isto foi uma brincadeira (de gosto duvidoso) pois o que tenho visto nas empresas é estagiário trabalhando 8 horas por dia desenvolvendo produtivamente igual a qualquer um. Isto é mais uma maneira do patrão economizar. Muitas vezes no fim do estágio, o cara que fez a faculdade meia boca, se sacrificando pensando que no fim iria ser efetivado, leva um pontapé na bunda. Resultado: nem aprende na faculdade e nem fica com o emprego.

[]s
Luca

[quote=pcalcado]Isso é ilusão.

Analistas como pregados na faculdade não existem. Esse papo de entregar tudo pronto pro programadornunca foi verdade.

No papel tudo funciona. Olhando um documento de requisito de uma página ou mais, o cliente acha que está tudo bem. Quando se percebe que a implementação não pode ser feita como o “analista” ou o “arquiteto” ou o “projetista” especificou, quando o cliente v~e depois de meses que o sistema não faz o que ele quer, aí sim você entra no mundo real.

Esse carinha da palestra ou não conhece o mercado ou quis passar uma visão romântica e obsoleta.[/quote]

tirou as palavras da minha boca… esse cara com certeza nao conhece o mercado ou vive outra realidade… se algum dia algum programador pegar uma especificação perfeita vai virar feriado! A verdade que sempre vi foi: quem realmente FAZ é o programador, que pega um monte de ideias que sequer pode ser feitas e faz milagre.

Então lá vai uma outra frase contra analistas:
"Um software não se constroi, se converge"
para quem não entendeu, não adianta tentar prever tudo antes, imaginar, especificar se no momento em que vai desenvolver percebe-se que não pode ser feito e ai sim, começa a convergir para outras opções.

esse ideia teoricamente e no papel são lindas, na prática…

este é o típíco tópico que deveria ser transformado em PDF e imortalizado em algum lugar :smiley:

[quote=Luca]Olá

Leandro, na verdade isto foi uma brincadeira (de gosto duvidoso) pois o que tenho visto nas empresas é estagiário trabalhando 8 horas por dia desenvolvendo produtivamente igual a qualquer um. Isto é mais uma maneira do patrão economizar. Muitas vezes no fim do estágio, o cara que fez a faculdade meia boca, se sacrificando pensando que no fim iria ser efetivado, leva um pontapé na bunda. Resultado: nem aprende na faculdade e nem fica com o emprego.

[]s
Luca[/quote]

Discordo!
Se ele tem produtividade igual a qualquer um, é porque ele é um bom programador.
Então, na teoria, ele terá facilidade de conseguir emprego, pois é um bom profissional, só precisa achar alguem que queira pagar o valor dele ao invés de contratar outro estagiário e lhe ensinar tudo de novo.

concordo em string, numero, data!

Analista é um ex-programador que não acompanhou a evolução tecnológica.

Acho que hoje o conceito de Analista Programador(ou Desenvolvedor) é o típico profissional que conhece um pouco da tecnologia, consegue entender o negócio e aplicar a tecnologia para resolver aquele problema.
Por mais que gastemos horas e horas de análise e projeto, se os desenvolvedores não entenderem o contexto, dificilmente teremos um bom sofware.
O papel do Analista é absorver os requisitos do Cliente e formatá-los de modo que o projetista possa transforma-los em funcionalidades computacionais, criando o projeto para que o Desenvolvedor possa implementá-lo.
A separação destas etapas não é desculpa para que o Analista não entenda de tecnologia nem o Desenvolvedor não entenda o negócio.

[quote=noelrocha]Acho que “Analista Programador” se encaixa perfeitamente nesse cenario, um cenario real.

Acho engraçado essa briga entre analista e programador, tenho amigos na faculdade que odeiam analistas pelo fato de serem analistas. Essa briga vem de tempos em que muitas dessas pessoas não estavam nem em projeto de nascer. Quando o analista não sabia escrever uma linha de código, trocaram de tecnologia e ele não se preocupou em se atualizar e passou a somente fazer analise, e em função disso os programadores tinham que ficar “arrumando” os furos de analise fora que a comunicação era zero, a hierarquia era algo que incomodava e por ai vai.[/quote]Talvez o maior problema quanto ao estipular os prazos nem seje o analista, e sim o vendedor de software… :stuck_out_tongue:
O maior problema em estipular o tempo é que normalmente as pessoas pegam a melhor pessoa como métrica ou então a média, quando na verdade deveriam pegar o pior…
Como diria um amigo meu:
Uma mulher tem um filho em 9 meses, mas 9 mulheres não tem 1 filho em 1 mes!
hehehehe
Falou

[quote=lgr]Uma conclusão pode-se tirar disso tudo:
Vc tem nascer da barriga da sua mãe como
"ANALISTA SENIOR" para trabalhar e dar bons resultados p a empresa.E para ganhar bem tb.Acho q pelas opiniões é isso…rssss…
Bom mas deixando um pouco de lado a brincadeira acho q a tendência é existir analista programador.Vc tem q entender bem das coisas p programar…Eu tenho trabalhado como “programador” e como n são esclarecido bem as coisas nas empresas e vários problemas nascem no caminho tenho q me comportar como analista muitas vezes…
A realidade é q desenvolvimento de software n é sempre numa fábrica,num lugar lindo e com tudo programado.E a analise, os processos são definidos não como deveriam e no tempo q deveriam.
Enfim, infelizmente o caminho é um programador ser analista também.
E discordo q programador deveria ser “estagiário”.
Este tem seu valor…[/quote]