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

Olá

Segundo Joel Spolsky, o objetivo real de companhias desenvolvedoras de software deve ser converter capital em software que funciona e isto pode ser resumido pela seguinte trilha:

As melhores condições de trabalho --> os melhores programadores --> o melhor software --> lucro

Vale a pena dar uma olhada no último artigo do Joel Spolsky em http://www.joelonsoftware.com/articles/HighNotes.html

Ver também: http://jroller.com/page/cpurdy?entry=joel_s_semi_annual_post

[]s
Luca

E complementando este artigo: Software Team Turnover: Why Developers Leave (And What You Can Do About It)

E então, você contrataria 5 programadores médios ou 1 programador bom?

É o papel do analista?? Será que 1 analista bom e 5 programadores mediocres não resolveria o caso??

Eu acho que focar na analise deixa o trabalho mais interessante ao passo que os programadores precisam apenas ler um documento e fazer :).

Uma vez fui numa palestra de um individuo conceituado e ele disse:

Nessa sala com 50 pessoas se voce for focar na programação voce pode pegar as 45 dessas pessoas como programadores e os 5 como analise. Se voce for focar na analise voce pode pegar 15 dessas pessoas como analistas 5 como programadores e mandar o restante embora. :slight_smile:

Ai eu me perguntei … do que adiante ser O PROGRAMADOR se por traz não tem um grande analista. Programadores no meu modo de ver estão se tornando figuras mecanicas que de posse de um grande documento de analise não precisa de mais nada alem de fazer!

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.

Olá

Trunk, este ambiente onde o analista só faz análise e o programador apenas codifica está acabando. Hoje o analista programa e o programador que só codifica é o estagiário.

A questão se é melhor contratar mais gente barata do que um caro é abordada em seu blog pelo Cameron Purdy (JCache spec lead, founder of Tangosol).

[]s
Luca

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.

Separar analistas de programadores é , para mim, um erro. Acredito em desenvolvedores, com mais ou menos experiência.

Um grande analista que não programa é como um grande cirurgião que não faz cirurgia. Alguém conhece algum ? Alguém se submeteria a uma cirurgia definida por um grande cirurgião e realizada por “programadores” ?

Márcio

Posso falar por mim: eu sempre sou chamado pra resolver problemas provocados por essa abordagem de contratar um monte de gente barata, com pouca experiência.

No penúltimo projeto em que trabalhei o problema era o seguinte: a empresa que me contratou havia iniciado o projeto com uma equipe de 3 programadores júniores e 2 programadores plenos.

O projeto, que era pra durar 4 meses, já estava 3 meses atrasado. E quando eu assumi, juntamente com mais um analista sênior. Jogamos praticamente tudo fora e fizemos em 3 meses. Ou seja, o projeto acabou demorando 10 meses pra sair por conta de um estratégia inicial errada.

No meu projeto atual, iniciamos do zero, e entregamos a primeira fase no prazo e com qualidade.

Como o Luca disse, o papel do “analista” e do “programador” está sumindo. Atualmente, o cara tem que fazer as duas coisas.

Creio que, quando falamos em melhores programadores, estamos nos referindo a pessoas capazes de recolher uma série de informações e abstrair esse conjunto, transformando-o em software funcional. Pra isso, minha opinião é que não basta ser analista e não basta ser programador. E é isso que as empresas estão procurando agora, creio.

[]´s

Na boa, quantos professores de universidade vocês conhecem trabalham “na rua”?

Eu só conheço 3 por aqui.

[quote=marcioa1]Separar analistas de programadores é , para mim, um erro. Acredito em desenvolvedores, com mais ou menos experiência.

Um grande analista que não programa é como um grande cirurgião que não faz cirurgia. Alguém conhece algum ? Alguém se submeteria a uma cirurgia definida por um grande cirurgião e realizada por “programadores” ?

Márcio[/quote]

Lindo!!! Concordo plenamente… e Tipo quanto ao estagiario codifica (eu) é uma meia verdade, prq o analista sempre ajuda, se ele não programar que ajuda os estagiarios??

Fala galera,

Programo desde 90, quando comecei com clipper,é já pude desenvolver diversos sistemas em diferentes áreas de atuação, o que me deu um grande flexibilidade no tocante a analise/programação.

Acredito que um programador, por melhor que seja, se não conseguir entender o negócio do cliente não vai desenvolver um bom projeto, falo por experiência, pois já errei muito. Você acaba deixando o sistema funcional, rápido, tecnologicamente avançado, mas o danado não faz o que realmente o cliente queria.

Esse é um erro cometido por uma grande parte de programadores que já conheci, pois apesar de manjarem muito da linguagem, não conseguiam entender o que o cliente queria.

Conselho: se vc já é um programador médio, tente virar um analista médio, pois se tornar um ótimo programador sem sacar de analise não da muito resultado. :wink:

[]s

[quote=Maurício Linhares]Na boa, quantos professores de universidade vocês conhecem trabalham “na rua”?

Eu só conheço 3 por aqui.[/quote]
Eu não conheço nenhum, existem?! :expressionless:

\0/ Falou é disse!!!

Bom galera, o cara do artigo falou numa forma, que ele mesmo não sabe se funciona, de “ganhar dinheiro”. :lol:

Quem sou eu para tentar dar uma solução dessa, mas eu não culpo a oposição afinal de contas isso que eu falei não é para todos! Se fosse para todos seguir essa forma não existiria programadores pobres.

Existe um ISO que é dado a empresas de qualidade. Na epoca que estava atualizado com os dados tinha nada mais nada menos que 3 empresas na america latina que detinha um nivel de qualidade 5 (ultimo) - Tinha alguma relação com PMI. Por incrivel que pareça essas empresas seguem a linha de raciocinio que eu falei. Agora não intendi onde voces querem chegar porque até agora eu so vi falar de programadores e linha de codigo sendo que a parte mais essencial de um projeto é o seu projeto :).

Eu sei que doi, mas o projeto determina uma infinidade de coisas.
Determina se o projeto esta dentro do orçamento, se o projeto tem qualidade, se o projeto vai ser entregue a tempo, se o projeto está gastando os recursos esperados, etc… etc… ESSE É O DIFERENCIAL. Programar até meu sobrinho de 12 anos programa.

Eu sou analista, trabalho na area a algum tempo e por mais que o cara saiba de programação ele nunca sai com nada. Eu mesmo ja tentei fazer um programa assim do nada, o programa apresenta muito mais erros, o programador se perde completamente na hora de fazer manutenção, o programador leva muito muito mais tempo para entregar, e se algum dia outro alguem for mecher é preferível começar do zero. E incrivel como os programadores tem preguiça de ir no cliente e falar com ele.

Enquanto a essa ideia ser ultrapassada, acho que não afinal de contas o curso de sistema de informação esta nem a dois anos formando alunos em algumas faculdades do brasil.

Gente isso é obvio demais ??? Os filosofos ja definem isso a muitos anos atras. É o que eles chamam de Etica Profissional!!! Um profissional deve exercer bem sua profissão de forma a contribuir para a sociedade MAS nunca deve deixar de transitar pelas outras areas do conhecimento.

Um ultimo argumento definido por um outro grande amigo. Programar por mais que o cara saiba tem um limite. O seu limite é o limite que os cientistas que modelaram a linguagem tem, ou seja, os programadores são limitados. Os analistas não, eles lidam com pessoas, definem diferentes problemas e seu limite esta sendo superado a cada dia que passa. Para conferir isso é so olhar a faixa salarial dos profissionais de analise e de desenvolvimento.

So para constar… Um dos melhores profissionais da area que eu conheço e que hoje trabalha na borland ja cansou de me afirmar que o brasil tem serios problemas nessa area. Em uma de suas palestras ele me revelou um dado interessante. As empresas de desenvolvimento do brasil, as de melhor qualidade chegam a ficar no maximo no nivel 3. Existem empresas que fazem um software lindo e maravilhoso mas na hora de passar o preço vão pelo impulso. Alguns até utilizam linhas de programação como base na hora de dar o preço. UhuAuhAUh Do que adianta???

Cansei … numa proxima oportunidade eu escrevo mais … Desculpa pelo portugues eu penso mais rapido que escrevo ai erro muito…

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=tRuNkSnEt]Bom galera, o cara do artigo falou numa forma, que ele mesmo não sabe se funciona, de “ganhar dinheiro”. :lol:

Existe um ISO que é dado a empresas de qualidade. Na epoca que estava atualizado com os dados tinha nada mais nada menos que 3 empresas na america latina que detinha um nivel de qualidade 5 (ultimo) - Tinha alguma relação com PMI. Por incrivel que pareça essas empresas seguem a linha de raciocinio que eu falei. Agora não intendi onde voces querem chegar porque até agora eu so vi falar de programadores e linha de codigo sendo que a parte mais essencial de um projeto é o seu projeto :).[/quote]

Você está fora e muito fora de sintonia …

O cara do artigo é o Joel Spolsky, dono de uma empresa onde ele aplica esse conceito como está escrito no artigo (que você não deve ter lido ou entendido direito) e também está escrito que com esse modelo ele conseguiu ser rentável desde o início.

Outro ponto que você não pescou nos artigos é que não é qualquer programador, são os bons que merecem toda essa atenção e valem esse esforço. É por isso que existem programadores pobres, porque a grande maioria (também está nos artigos, leia de novo) é mediano pra baixo.

A ISO com nível 5 na verdade chama-se CMM (Capability Maturity Model) e não tem nada a ver com a ISO … é aplicável apenas em fábricas de software e afins que por definição atraem os programadores medianos que não são muito chegados em pensar e os analistas que não sabem programar. (claro que estou generalizando, mas esse modelo é um pé)

Não se engane, há várias empresas que tem esse pensamento (do artigo) e estão muito bem, obrigado!

Gente do Céu!! Ha analistas e ha analistas, ha programadores e ha programadores. O que vocês não podem e querer comparar gato com lebre. Eu acabei de mencionar que isso não e para qualquer quer um senão todo mundo estaria rico … sera que tem alguma dificulade nisso?

Se for assim … Fizemos um analise completissima demos para para o gerente da equipe de desenvolvimento. O gerente por sua vez dividiu a tarefa entre seu programadores. Dos 12 programadores apenas 2 conseguiram ler o documento e resolver o problema é os demais??? Eu vi um deles jogando futebol no campinho junto com seus amigos UAHuAUhA.

Outro caso … Fizemos uma analise e passamos para a equipe de desenvolvimento … os caras pegaram a analise e quiseram infeitar, acharam que o jeito deles era o correto. Resultado … o cliente reclamou porque o que eles não fizeram o que o cliente queria, reclamos porque tivemos de pagar a mais pq o cara quiz fazer a mais, o projeto foi entregue atrasado porque os cara falam que nao dava tempo!!!

Historias e mais historias!!

analista é um programador frustrado. :mrgreen: :mrgreen:

Você está confundindo análise e projeto de software.

Um analista de negócios é muito importante, alguém com muito conhecimento do domínio, tanto que metodologias ágeis extrapolam e mandam você colocar o cliente na sua equipe (quem melhor que ele?).

Ética profissional não é isso.

E se alguém acha que projeto de software e programação são coisas diferentes…deve ler e programar mais.

O programador está limitado pela linguagem. O que seu analista usa, UML? Sabia que ela é uma linguagem limitada?

Desenvovler software é resolver problemas. Um analsita se preocupa com processos, técnicos se preocupam com a implementação de processos em sistemas computacionais.

Nível 3 de que, CMM?

E desde quando isso define a qualidade (ah, esquece, CMM de novo não!)?

Realmente LoC não é boa métrica para nada, o que você sugere?

Programadores são limitados e os analistas não ??? Não te conheço, mas se vir alguém voando pelo céu com uma capa vermelha, concluo que pode ser o super-homem ou um analista !

Posso te dizer que sou um ótimo desenvolvedor com vinte e dois anos de estrada ( aprendi perfurando cartões ) e a cada dia meus limites ficam mais claros. E esta conciência contribui para o sucesso dos projetos nos quais participo.

Paz a todos,

Márcio

Olá

Trunk

O que você está dizendo me soa muito antigo. Parece ambiente de empresa pública ou no mínimo de economia mista com programador que programa e analista que analisa. Isto faz tempo que não vejo.

Quando eu falei estagiário que só programa quiz me referir a alguns estagiários porque conheço outros que vão ao cliente, analisam, modelam banco de dados, dialogam com a diretoria e outras coisas mais.

Que adianta a gente contratar um cara formado em uma universidade que aprendeu tudo o que disse acima para deixar o cara só codificando?

Me dá a impressão que a sua empresa agiu como citado no blog do Cameron Purdy onda a tal empresa preferiu quantidade a qualidade.

Em tempo: cuidado ao elogiar muito CMM aqui porque tem muita gente como eu que acredita em meios mais fáceis de atender requisitos de qualidade de serviços desenvolvendo software. Veja os links abaixo para contrapor com seu elogio ao CMM:

http://www.xp-rs.org/3oEncontro.htm
http://www.xp-rs.org/arquivos/3o_Encontro_XP-RS-16_10_2004.ppt

http://www.informit.com/articles/printerfriendly.asp?p=26057

[]s
Luca

Trunk, a quanto tempo você está na sua empresa atual?
Qual a área de atuação da sua empresa? (se disser que trabalha com o Richard tá tudo explicado)
(perguntas para desenvolver uma teoria sobre porque você tem essa posição tão simplista e distorcida do mundo do desenvolvimento)

A dificuldade que eu estou tendo é em entender porque cargas d’água você supõe que:

  1. O Analista é mais importante que o desenvolvedor;
  2. O Analista ganha mais que um desenvolvedor;
  3. O Analista é o programador que ficou esperto e parou de programar; e
  4. CMM diz alguma coisa.