ti-enxame.com

Por que todas as empresas não compram os desenvolvedores com o melhor hardware?

Eu devo estar esquecendo alguma coisa.

O custo de empregar um programador na minha área é de US $ 50 a US $ 100 por hora. Uma máquina topo de linha custa apenas US $ 3.000, portanto, o custo de comprar um computador realmente excelente a cada três anos chega a US $ 0,50/hora. (US $ 3000/(150 semanas * 40 horas))

Você precisa uma máquina de ponta ? Não, os US $ 3000 aqui devem representar o máximo que poderia ser gasto não o valor que eu esperaria. Esse é aproximadamente o custo de um iMac ou MacBook de última geração (17 polegadas).

Então, suponha que você possa economizar US $ 2.000 a cada três anos comprando computadores mais baratos, e seu desenvolvedor médio ganha US $ 60. (Esses são os números mais caridosos que posso oferecer aos contadores de feijão. Se você economizar US $ 1000 ou US $ 750, isso só reforça meu argumento.) Se esses computadores mais baratos custarem apenas 10 minutos de produtividade por dia. (Nem um pouco, tenho certeza de que minha máquina me custa mais do que isso). Em três anos, as 125 horas perdidas resultariam em uma perda de US $ 7500. Uma perda de 1 minuto por dia (US $ 750) daria um ganho líquido de US $ 1.250, o que dificilmente compensaria o custo do moral insuficiente.

É um caso de "tostão e insensato" ou simplifiquei demais a pergunta? Por que não existe um acordo universal (mesmo na 'empresa') de que os desenvolvedores de software devem ter um ótimo hardware?

Edit: Eu devo esclarecer que não estou falando de um desejo de desempenho rápido e estridente que deixaria meus amigos invejosos e/ou um SSD. Estou falando de máquinas com muito pouco RAM para lidar com sua carga de trabalho regular, o que leva ao congelamento, reinicialização e (sem exagero)) aproximadamente 20 minutos para inicializar e abrir os aplicativos típicos normalmente Segunda-feira (não desligo, exceto nos finais de semana).

Na verdade, estou programado para adquirir uma nova máquina em breve e isso melhorará um pouco as coisas. (Vou passar de 2 GB para 3 GB de RAM, aqui em 2011.) Mas como a nova máquina é medíocre pelos padrões atuais, é razoável esperar que ela também seja inaceitável antes da data da aposentadoria.

Espere! Antes de responder ou comentar:

  1. $ 3000 não importa. Se a máquina que você deseja custa menos que isso, é mais uma razão pela qual ela deveria ter sido comprada.
  2. Não estou pedindo atualizações mais frequentes. Apenas hardware melhor no mesmo horário. Portanto, não há custo oculto de instalação, etc.
  3. Por favor, não discuta a diferença entre o hardware Edge que está sangrando e o hardware muito bom. Estou fazendo lobby por um hardware muito bom, como em uma máquina que é, na pior das hipóteses, uma das melhores máquinas fabricadas há três anos.
  4. $ 50 - $ 100/hora é uma estimativa do custo do emprego - não do salário. Se você trabalha como contratado, seria a taxa de cobrança usada pela agência contratante que inclui suas despesas e lucros, o Social Secs dos empregadores. contribuição, contribuição para a saúde dos empregadores, etc. Por favor, não comente esse número, a menos que você saiba que não é realista.
  5. Verifique se você está fornecendo novo conteúdo. Leia todas as respostas antes de fornecer outra.
287
Eric Wilson

Muitas empresas são comprovadamente insanas em relação a isso.

A sério. Se você perguntasse a 10.000 gerentes de tecnologia: "Digamos que você pagou US $ 100.000.000 à Danica Patrick. Você acha que ela poderia ganhar o Indianapolis 500 andando de bicicleta?", Tenho certeza que nenhum deles diria "Sim".

E, no entanto, uma boa porcentagem desses mesmos gerentes parece pensar que os desenvolvedores de software muito bem pagos devem ser tão produtivos com ferramentas ruins e condições de trabalho quanto as boas - porque, é claro, esses programadores preguiçosos e imprudentes estão sendo pagos muito dinheiro e deveria poder pedalar aquela bicicleta mais rápido.

Agora, o que consistem exatamente em boas ferramentas e condições de trabalho depende do trabalho a ser feito. As pessoas que codificam o kernel do Linux precisam de diferentes tipos de hardware que os designers de sites. Mas se a empresa puder pagar, é uma loucura não conseguir que as pessoas o que elas precisam sejam o mais produtivas possível.

Uma empresa em que trabalhei tinha uma base de código fonte de 9 GB, principalmente em C, e o que mais precisávamos era de compilações rápidas. Infelizmente, estávamos trabalhando principalmente com hardware medíocre cinco anos antes, então as pessoas estavam compreensivelmente relutantes em construir muito além daquilo em que estavam trabalhando no momento, e isso causou danos através de baixa produtividade, problemas de qualidade e construções quebradas . A empresa tinha dinheiro para atualizar o hardware, mas era estranhamente avarenta. Eles fecharam os negócios no último verão, depois de gastar mais de US $ 100 milhões porque seus dois maiores clientes os abandonaram após repetidamente cumprir prazos. Fomos solicitados uma vez a sugerir maneiras de melhorar a produtividade; Apresentei o mesmo tipo de análise de custo-benefício do OP. Foi rejeitado porque a gerência disse: "Isso deve estar errado - não podemos ser tão estúpidos", mas os números não mentiram.

Outra empresa em que trabalhei tinha bons computadores para os programadores, mas insistia que todo mundo trabalhasse em pequenas mesas pequenas em um grande cercado lotado, sem partições. Isso foi um problema, porque muitos de nós trabalhamos com delicados protótipos de hardware. Havia pouco espaço para colocá-lo em nossas mesas, e as pessoas passavam, escovavam e batiam no chão. Eles também gastaram US $ 47 milhões em dinheiro VC e não tinham nada para mostrar.

Não estou dizendo que más ferramentas e condições de trabalho mataram essas empresas. Mas estou dizendo que pagar muito dinheiro a alguém e esperar que ele seja produtivo com más ferramentas e condições de trabalho é um "canário na mina de carvão" para uma abordagem basicamente irracional aos negócios que provavelmente acabará em lágrimas.


Na minha experiência, o maior assassino de produtividade dos programadores é se distrair. Para pessoas como eu, que trabalham principalmente com linguagens compiladas, uma enorme tentação disso é a construção lenta.

Quando clico no botão "construir e executar", se eu souber que testarei em cinco segundos, posso sair da zona. Se eu sei que serão cinco minutos, posso definir um cronômetro para mim e fazer outra coisa, e quando o cronômetro disparar, posso começar a testar.

Mas em algum lugar no meio está a vala do mal das atividades de tédio que levam ao desperdício de tempo, como ler blogs e P.SE. Nas taxas que cobro como consultor, vale a pena jogar dinheiro em hardware com especificações prodigiosas para me manter fora dessa vala. E eu acho que valeria a pena para muitas empresas também. É apenas a natureza humana, e acho muito mais útil aceitar e adaptar-se às fraquezas normais comuns a todos os primatas do que esperar o autocontrole sobre-humano.

224
Bob Murphy

Eu sugeriria que, na realidade, um custo é visível e quantificável, enquanto o outro custo não é.

Se a falha na atualização do hardware sangra até US $ 1000 por desenvolvedor por semana a partir do orçamento, ninguém do lado de fora (leia-se acima) o departamento de tecnologia vê isso. O trabalho ainda é realizado, apenas a um ritmo mais lento. Mesmo no departamento de tecnologia, o cálculo desse número é baseado em inúmeras suposições improváveis.

Mas se um gerente de desenvolvimento pede US $ 3000 por desenvolvedor, principalmente em uma empresa com mais de 50 desenvolvedores, isso exige muita justificativa. Como ele faz aquilo?

170
pdr

Vou colocar meus 2 centavos aqui do lado do empregador ... que também é desenvolvedor.

Concordo que máquinas de baixo custo são inúteis, mas máquinas de alto desempenho são um exagero.

Existem várias razões pelas quais você não obtém as melhores máquinas:

  1. O fluxo de caixa é um problema real, não apenas uma teoria. Você pode receber US $ 60 mil a US $ 80 mil por ano, mas este mês temos um valor total no banco que deve ser dividido entre todas as coisas concorrentes naquele mês.
  2. Existe uma escala variável de preço e benefício. Máquinas de gama baixa são, no geral, bastante inúteis ... se você está adquirindo um chip celeron ou de baixa potência, então se afasta ... as máquinas de gama média têm um bom desempenho geral, uma vez que você entra no topo, está começando a sintonizar um determinado objetivo (CAD, jogos, codificação de vídeo etc.) ... e os custos de ajuste extras.
  3. As peças gerais geralmente são mais baratas, substituições, garantias e seguros desempenham um papel nos custos gerais de operação e no tempo de inatividade enquanto você compra uma substituição.
  4. As máquinas topo de gama depreciam apenas mais rapidamente do que as 1/3 do preço.
  5. Se você estiver fazendo programação gráfica de ponta ou CAD funciona, o grunhido extra é válido; se você está apenas escrevendo um software comercial padrão, executando o visual studio ou o Eclipse e navegando pelo Stackoverflow para obter respostas, então o energia extra é um direito legal de se gabar, mas, realisticamente, uma máquina de médio alcance não maximiza a CPU ou a memória em uma caixa padrão hoje.
  6. Máquinas de gama média fabricadas hoje martelam e em 2 anos elas serão duas vezes mais rápidas (mais ou menos). Sério, eles estão iluminando rapidamente.
  7. No final do dia, quase tudo o que você faz é digitar texto não processado em arquivos de texto e enviá-lo ao compilador ... esse bit realmente não mudou desde o VI na década de 1970 e as máquinas de baixo custo hoje são milhões de vezes mais rápidas do que os da época ... seu ritmo de codificação não é tão diferente assim.

Portanto, para resumir, você deve ter bons equipamentos e ferramentas, isso faz uma grande diferença, mas as máquinas de ponta não são realmente justificáveis ​​para o "desenvolvedor geral".

... ah, e agora eu li você editar e é disso que você está falando, vou deixar o que foi dito acima porque eu escrevi agora ... Sim, sua máquina está subespecificada para as ferramentas.

Para esclarecer, uma máquina de médio alcance deve ter

  • 2 núcleos mínimos, 4 núcleos mais bons nesse estágio é um exagero.
  • 4GB é um mínimo, 8GB é bom e mais é bom ter.
  • O SSD deve ser padrão, mas realmente uma unidade de 10 KRPM WD ou Seagate de 80 a 100 GB deve funcionar bem.
  • Os monitores de 2 x 19 "são no mínimo uma placa de vídeo razoável.
95
Robin Vessey

A diferença de produtividade entre as máquinas "de ponta" e as máquinas "quase de ponta" é insignificante. A diferença de preço é significativa.

Sem mencionar o suporte de TI para máquinas diferentes, em vez de ter todos os desenvolvedores usando as mesmas imagens HW e SW (o que você não pode fazer se estiver comprando uma máquina de ponta para cada nova contratação, a ponta de ponta será diferente toda vez). Além disso, as pessoas que obtiveram o melhor desempenho do ano passado vão querer atualizar porque esse novo cubo para iniciantes tem uma máquina "melhor" que elas, e elas são muito mais importantes, não são?

A menos que você realmente precise a máquina de ponta para o seu trabalho, não vejo razão para jogar fora o dinheiro.

56
littleadv

Porque a maioria dos empregadores não entende como os desenvolvedores pensam, agem ou trabalham. Ou como as melhores ferramentas podem economizar dinheiro da empresa e aumentar a produtividade. Isso leva à perda de um ponto no teste Joel, falha ao fornecer "as melhores ferramentas que o dinheiro pode comprar". Isso também leva à perda de produtividade e satisfação no trabalho. É assim que é. Talvez um dia você possa começar sua própria empresa e marcar 13/13. Até lá, faça perguntas com seu empregador, para que você saiba o que esperar antes de assumir o cargo.

No que diz respeito à sua situação atual, se você sentir que eles ouvem e confiam em você, acione a discussão. Veja se eles oferecem uma atualização. Sei que trabalharia um pouco mais se tivesse um equipamento topo de linha com dois monitores de 50 "para trabalhar. Coloque-me na matriz.

Mesmo motivo pelas quais as pessoas querem um Mercedes CLS quando um Toyota Camry o leva até lá da mesma forma. Claro, você pode espremer apenas mais alguns segundos do tempo de compilação com uma nova máquina, mas as aparências são importantes.

27
P.Brian.Mackey

Sua matemática parece não incluir o tempo necessário para gerenciar o fluxo constante de hardware para dentro e fora da empresa - seria necessário um ou dois caras de TI adicionais, dependendo do tamanho da sua empresa, então adote outros US $ 50 a US $ 100 mil/ano além dos seus números. Além disso, você perde produtividade no dia em que eles trocam o computador. Se eles economizam na equipe de TI dedicada, você terá que fazer os backups e restaurar a si mesmo, possivelmente perdendo um dia ou dois no processo. Em outras palavras, acho que é um pouco mais complicado do que você pensa.

12
Bryan Oakley

Um problema com seu argumento é o fluxo de caixa. Se eles não têm dinheiro, o ponto é discutível. O outro é o retorno do investimento.

Isso pode não se aplicar às empresas em que você trabalhou. Algumas empresas são altamente alavancadas e/ou têm pouco dinheiro. Eles preferem gastar as economias que você descreve em algo que venderá mais widgets ou software. Você precisa mostrar que seu ganho na produção supera um investimento igual em outras áreas.

Se uma empresa de software estiver no modo de manutenção e precisar de mais vendas, pode haver um retorno melhor do gasto com vendas e marketing.

Eu acho que você precisa abordar o fato de que, no seu caso, o dinheiro é melhor gasto em um programador do que em outra área da empresa.

Tenha cuidado com esse argumento se você estiver recebendo salário. Eles só querem que você trabalhe mais para compensar a diferença;)

9
JeffO

Argumentei esse argumento no meu trabalho para mudar de laptops para desktops. Eu disse que todos deveriam estar em uma área de trabalho e, se precisarem de um computador em casa - leve-os para lá também.

As vantagens de velocidade de um bom computador não são desprezíveis, especialmente se você remover as falhas de hardware realmente antigo.

Em relação a "topo da linha" e "próximo ao topo da linha" - eu diria que perto do topo da linha está sempre onde você deveria estar. No "topo da linha", você pode atualizar a cada 2 anos em vez de e terminar com um hardware melhor, em média.

Eu recomendei o cyberpowerpc.com e minha empresa me deixou comprar um PC deles (profissional de marketing), mas eles compraram todos os computadores dos programadores da Dell porque o suporte valia o custo extra. Pense nisso ... é 1,5-2x para comprar um PC da Dell, mas todos apreciam se o PC cair e você não conseguir consertá-lo rapidamente, perde dinheiro.

m PC lento é como um PC quebrado que você não está consertando.

8
Chris Kluis

Há também uma questão de orçamentos - geralmente os desenvolvedores são pagos com um orçamento diferente do hardware para esses desenvolvedores, e eles podem simplesmente não ter dinheiro suficiente disponível no orçamento de hardware.

6
Timo Geusch

Primeiro, para responder à pergunta:

Eles não podem fazer a matemática ou, se o fazem, de alguma forma acreditam que isso não se aplica a eles. O orçamento e a contabilidade de hardware e pessoal são separados. As pessoas em posição de tomada de decisão nunca ouviram falar do assunto e não sabem que existe algum problema.

Agora, para a verdadeira questão: "Como faço para lidar com esta situação?"

É essencialmente um problema de comunicação. Você explica o problema e o interlocutor ouve "bla bla bla, queremos brinquedos novos e brilhantes". Eles simplesmente não entendem.

Se eu estivesse na sua posição, faria um rápido vídeo intitulado "Podemos comprar computadores antigos?": Fotos de uma estação de trabalho típica. No lado direito, uma área em branco intitulada "custo".

Ainda está no botão liga/desliga. Abaixo: "Iniciando o computador. 20 minutos". Na área em branco, "Iniciando o computador = $ 40". "Abertura IDE = $ 5", "Congelamento do computador = $ 80", "criação do produto = $ 600"

Avance rapidamente e continue adicionando os números, compare com o custo de um computador novo e não se esqueça de terminar com "Este vídeo foi produzido em casa em um laptop comprado em uma loja de US $ 500 que supera todo o desenvolvimento" profissional " máquinas atualmente disponíveis.

Se você estiver preocupado com o fato de que levantar o problema causará problemas para você, você também pode trazer seu próprio laptop para funcionar.

Se não há como transmitir esse problema, talvez você deva procurar outro emprego.

6
Sylverdrag

Os descontos também desempenham um papel importante no processo de compra.

Bola de cuspe (números não reais): 100 máquinas a 1000 w/15% de desconto = 85.000

90 máquinas com 1000% de desconto/10% = 81.000 + 10 máquinas com 2000% de desconto de 5% = 19.000 => 100.000

Como já foi mencionado, o custo extra no suporte às máquinas "especiais" precisa ser adicionado à mistura.

4
bart

Pessoalmente, eu sempre tive pelo menos um computador de desenvolvimento OK quando trabalhei para uma empresa 'pequena', mas quando se trata de grandes empresas, programadores são uma moeda de dez centavos em comparação com um gerente de projeto com orçamento.

Especialmente se ele/ela é um daqueles que têm ótimas idéias, leia: orçamento aprovado.

Qualquer que seja a idéia 'boa', essa pessoa precisará de bons programadores para realmente implementar o "Novo 'melhor' produto" ", para que pague ao programador o preço necessário.

A obtenção do novo computador de desenvolvimento, no que me diz respeito, não passa pelo mesmo 'departamento' que o outro orçamento, portanto, espere trabalhar em más condições se você receber bem :-) Meu último trabalho: Dell E5xxx + Um LCD 1280x1024 ...

4
Valmond

Me pediram para especificar a máquina que eu queria usar aqui, dentro de um orçamento bastante apertado. Consegui criar um sistema meio decente que funcione, apesar de não ser pesado demais.

Originalmente, eu estava pensando na mesma direção do OP aqui, o tempo em que estou sentado aqui esperando compilações ou cargas é dinheiro pela janela. À medida que avança, também reconheço que o tempo que gasto para tomar um café ou caminhar até a impressora também custa dinheiro pela janela.

Em vez de me preocupar com as pequenas quantidades de tempo que eu tenho que esperar, porque adotamos um sistema de desenvolvimento mais barato, observei meus próprios hábitos e aprimorei as maiores quantidades de tempo que gasto sem fazer nada particularmente útil (ahem. .. stackexchange é útil e produtivo para inicializar, e estou aderindo a isso !! :-)) É claro que precisamos de intervalos, mas esse é outro momento que não "intervalos".

Portanto, de uma maneira geral, essa questão poderia ser a "otimização prematura" da eficiência do trabalho. Muitos pontos importantes sobre custos de migração, perda de volume de compras etc.

Na sua situação específica, em que você está perdendo tempo na ordem de uma pausa para reiniciar/abrir programas, sim, faz muito sentido atualizar para equipamentos decentes, pois sua produtividade é seriamente prejudicada, um sistema i3 meio decente com 4 GB RAM é da ordem de $ 500 ... Tenho certeza de que não demorará muito para recuperar esse custo.

3
Stephen

Um grande fator é o tipo de bloatware que a TI em uma grande empresa típica tende a colocar no laptop. Se você tiver uma máquina Windows 7 em casa e apenas alguns antivírus, um sistema SSD-3GB-Quad-core padrão será inicializado em menos de 10 segundos. Compare isso com o bloatware que minha empresa usa e leva uma eternidade para inicializar. Eu já vi algumas pessoas usando zapping o sistema operacional completamente e instalando suas próprias para acelerar as coisas. Eu acho que isso resolve um problema até certo ponto, embora seja uma enorme violação da InfoSec. Mas falando sério - 10 minutos ?!

3
Sudipta Chatterjee

A compra de novo hardware envolve dinheiro, o dinheiro envolve tomadores de decisão e, geralmente, não são desenvolvedores se a sua empresa é grande o suficiente. Claro que temos exceções ...

Como o @Rob explicou, há muitas razões pelas quais você não obterá o hardware melhor. Sua empresa pode ter uma política definindo que tipo de hardware é comprado, como sempre na burocracia é difícil ter uma política de ponta. Muitos gerentes não se importam em adaptá-lo às suas necessidades pessoais, etc.

Má comunicação, aversão ao risco e outras falhas:

Vamos considerar que você tem um hardware realmente ruim, não é mais possível trabalhar nessas condições e você deseja fazer algo sobre isso.

Agora você precisa convencer seu gerente. Bem, geralmente você terá que convencer o gerente de projeto que diz ao gerente que se reporta ao chefe dele e você precisa garantir que esse cara realmente entenda seus problemas.
Envolve habilidades de comunicação e o entendimento técnico da gerência .

Segundo passo, se você tiver sorte o suficiente, a gerência pensará nisso. O que eles recebem?

  • Você trabalhará mais rápido com algumas incertezas (elas não recebem dinheiro diretamente, como você tentará explicar).
  • Custará dinheiro, agora .

Isso significa que eles terão que negociar dinheiro e o planejamento real do seu trabalho, para uma eventual oportunidade de permitir que você faça outra coisa no futuro; isso é um investimento, mas também um risco .
Infelizmente, muitos gerentes são avessos ao risco . Sem mencionar que quanto mais pobre o entendimento do seu problema, mais arriscado ele parece. Alguns também podem ter dificuldade em reconhecer que alguém não comprou o hardware adequado em primeiro lugar.

Além disso, a gerência geralmente possui uma definição mais curta do que longo prazo significa. Se lhes for pedido para fazer algum tipo de otimização mensal do orçamento, eles podem até ter incentivos financeiros diretos não para comprar um novo hardware! E eles não se importarão com as duas semanas que você poderá economizar seis meses depois ..

Claro que você nem sempre precisa esperar tanto tempo para fazer coisas maravilhosas em um dia !

Isso funciona melhor se você tiver gerentes inteligentes e de mente aberta que escutam, entendem seus problemas, estão prontos para assumir riscos razoáveis ​​e confiam em você o suficiente para permitir que você explore maneiras criativas de usar o tempo livre.

Nem sempre é esse o caso: esperei 3 meses para obter uma placa gráfica para conectar minha segunda tela enquanto era proibido comprá-la (30 €), perdi 3 dias por não ter um disco rígido de 500 GB extra, tive que esperar várias horas regularmente quando preparando dados para o cliente devido à lenta rede de 100 Mbps. Depois de pedir várias vezes 2 GB de memória RAM, disseram-me para comprá-lo pessoalmente e parar de incomodar o gerenciamento com esses problemas técnicos. E nós estávamos fazendo computação científica para um grande cliente industrial que estava pronto para pagar o preço.

3
Maxime R.

Nas grandes organizações corporativas, a escolha do hardware é predefinida e bloqueada devido ao fato de que essas organizações têm especificações e configurações fixas e gerenciadas de desktop e laptop. As especificações para estas serão ditadas de forma esmagadora por uma combinação de considerações de "aquisição" e "suporte". A empresa em que estou trabalhando, por exemplo, tem mais de 100.000 funcionários e trabalha com base no fato de que "tamanho único" serve para todos, e esse tamanho será impulsionado principalmente por comerciais. Quando essas políticas são implementadas, elas são bloqueadas porque os serviços de suporte geralmente investem uma quantidade considerável de tempo em testes e implantação do software com essa especificação de máquina "padrão". Argumentos em torno da produtividade do "desenvolvedor", em tais ambientes, simplesmente caem em ouvidos surdos; os serviços de produção não abrirão uma exceção para um pequeno grupo, pois podem ser mais produtivos; se o fizessem, seriam rapidamente inundados de pedidos de desvios e, em qualquer caso, eles (suporte à produção) são incentivados a manter o custo do suporte o mais baixo possível. > 1 configuração de desktop/laptop aumenta o custo de suporte. Em uma organização em que o "produto" principal é o resultado da engenharia de software, esses argumentos são inválidos, mas a realidade é que a maioria das organizações NÃO é, e o principal fator é manter baixos os custos de suporte.

3
grumblestiltskin

Além da matemática, é improvável que todos os usuários tenham máquinas de última geração. Desenvolver em uma máquina que é especificada mais de perto com algo de preço médio familiarizará o desenvolvedor com a experiência (e as dores!) De seus usuários.

Seu departamento de controle de qualidade pode ter uma máquina com especificações mínimas, mas com que frequência é usada? O desenvolvimento de uma máquina que é um ambiente-alvo realista expõe problemas desde o início (falta de resposta, desempenho ruim, condições de corrida por causa do desempenho lento, etc.), o que leva as equipes a corrigi-las mais rapidamente.

3
Justin Johnson

Simplesmente porque, o melhor hardware não é o melhor desenvolvedor! Dito isto, a empresa é responsável se estiver dificultando o trabalho do programador.

No entanto, se o hardware é suficiente para o desenvolvedor funcionar, ele não tem do que reclamar.

Além disso, não faz sentido ter o 'melhor' hardware e usar apenas um IDE para codificar - desperdício de recursos dessa maneira.

2
Sterex

"Nós encontramos o inimigo e ele somos nós." - Pogo

De qualquer maneira, você divide esta questão - o grupo coletivo "programadores" tem responsabilidade direta por qualquer falha em comprar as melhores ferramentas em o local de trabalho.

  1. O financiamento das empresas é incrivelmente complicado, com inúmeras motivações e alavancas conflitantes. Sem o conhecimento concreto do que o departamento financeiro está rastreando (evasão fiscal, gerenciamento de despesas trimestrais, aumento de despesas de capital futuras, maximização do EBITDA ou qualquer outra coisa que esteja em seu radar), qualquer discussão sobre custos reais é irrelevante. Como você reagiria a uma pessoa de marketing que o incomodava sobre otimizações do compilador para código que você sabe que está prestes a ser transferido para uma linguagem interpretada? Se os programadores não puderem demonstrar em termos específicos como as ferramentas que eles possuem não contribuem diretamente para os resultados, a empresa está correta em gastar o mínimo possível. Também precisamos aprender a ouvir o financiamento das empresas para entender as realidades enfrentadas pela alocação de recursos.

  2. Como grupo, votamos com a nossa presença no local de trabalho muito mais alto do que pedindo ferramentas melhores, enviando o mais impressionante white paper para nossos gerentes ou até postando na internet. Existem organizações que criaram uma cultura de garantir que seus funcionários tenham as ferramentas de que precisam de maneira justificável ou entendam o caso de por que não no momento. Até que a pressão competitiva exija isso da maioria dos empregadores, só podemos votar buscando empregadores nos quais acreditamos.

Cada um de nós deve fazer disso algo que importa para o núcleo ou deixar para lá.

2
bmike

Lado do CFO.

A empresa tem muitas despesas. Todo departamento precisa de mais dólares para fazer melhor e em todos os departamentos a despesa é uma obrigação.

quando você escolhe a melhor maneira de usar os $ disponíveis, leva em consideração:

  • quanto eles precisam? somas menores são mais fáceis de aprovar.
  • vai aumentar as vendas? PCs melhores geralmente não contribuem diretamente para o aumento das vendas
  • o departamento gosta de gastar US $ ou entende o fluxo de caixa? A maioria dos departamentos de P&D que vi têm uma abordagem arrogante "nós merecemos o melhor". Isso é compreensível, pois eles ganham muitos dólares e, quando você acha que merece as melhores coisas da vida. Geralmente, as necessidades das equipes de pesquisa e desenvolvimento dão a sensação de uma criança mimada solicitando mais brinquedos enquanto seus pais estão lutando. "Um gênio delicado".

O desperdício de 10 minutos por dia não é um raciocínio que funcionaria com a maioria dos departamentos financeiros. A maioria das equipes de pesquisa e desenvolvimento desperdiça muito mais com todas as atividades de programação que desfruta durante o dia. Permite mapear todo o desperdício em seu departamento e ver o que pode ser feito para melhorar a produtividade.

2
3seconds

Eu costumava ser desenvolvedor de uma grande empresa e depois uma startup. Aqui estão meus dois centavos:

  1. DIMM DDR3 de 8 GB (2x $ 4 GB) custa entre US $ 50 e US $ 55 hoje (por volta de julho de 2011)
  2. 21 "LCD O monitor custa US $ 200 (cerca de julho de 2011)

Se a sua empresa permitir que você traga seu próprio equipamento, basta usar seu próprio $ e atualizar o monitor RAM e LCD. Monitor. Por que você pergunta?

  • sua produtividade não é algo que você valoriza?
  • seus olhos não valem US $ 200?

Você sempre pode levar o monitor com você ao sair do trabalho (lembre-se de identificá-lo claramente como sua propriedade pessoal). Eu fiz a receita acima (atualizando RAM e usando o meu próprio LCD monitor)) nos meus trabalhos anteriores - e no meu trabalho atual.

2
Init Fini

Não vejo como você pode agrupar todos os empregadores em uma cesta. Trabalhei para alguns empregadores como funcionário e como consultor e sempre obtive hardware que era mais do que suficiente para minhas necessidades - para o trabalho atual, recebi um novo e brilhante HP quad core, com 4 GB de ram e Win64 no primeiro day - não top de linha, mas muito suficiente - (eu uso o Delphi XE e XMLSpy como minhas principais ferramentas de desenvolvimento) - de fato, então Nice eu fui e comprei a mesma máquina para mim em casa. (Talvez eu não seja tão produtivo! LOL.)

Se você não obtiver um bom hardware, tente solicitá-lo - e se achar que não pode solicitá-lo, provavelmente não estará trabalhando no lugar certo, porque eles não veem os desenvolvedores como um recurso, mas como um responsabilidade.

Portanto, acho que a resposta para sua pergunta é: aquelas empresas que não se recusam e/ou se recusam a fornecer hardware suficiente para um desenvolvedor são empresas que consideram seus desenvolvedores um passivo - trabalhos que eles preferem terceirizar e nem lidam.

2
Vector

Tudo se resume a quem lida com o dinheiro. Em organizações maiores, a TI recebe um orçamento de, digamos, US $ 1 milhão para o ano. Isso inclui salários de suporte, servidores, etc. Eles precisam distribuí-lo entre todos os seus recursos. Eles fecham acordos com fornecedores como Dell ou IBM para obter um número x do mesmo tipo de computador. Eles dão a todos, do suporte ao cliente aos programadores. Eles também recebem acordos de suporte etc., quando precisam apenas manter um conjunto limitado de modelos. Eles também não são programadores, tive vários argumentos com não-programadores sobre computadores. Quando examinei meus gerentes de TI em busca de um novo HD uma vez, o CEO disse que comprá-los e prosperar, todo mundo finalmente tinha espaço em disco suficiente para executar máquinas virtuais.

Na verdade, eu explodi e xinguei meu chefe porque a TI iria tirar meu segundo monitor de 19 "porque eu tinha um laptop. Eles me enrijeceram também, me dando um modelo de 13" quando outros estavam com 15 ". Isso remonta a à política em TI, que é outro problema, é um tipo de nós versus eles pensando algumas vezes.

1
Bill Leeper

Da perspectiva descrita pelo solicitante, a pergunta faz todo sentido. No entanto, existem mais custos envolvidos para manter o hardware atualizado.

Aqui estão alguns dos custos que também precisam ser considerados:

  • custo da requisição (pesquisa e detalhes que entram na compra)
  • custo de instalação e configuração
  • custo de suporte e manutenção
  • custo de licenciamento de software
  • custo de descarte/atualização

Em alguns casos, eles podem ser 2-5x maiores que o custo do próprio hardware. Ainda mais se houver um sofisticado licenciamento de software envolvido.

Em geral, a escala desses custos depende do tamanho da empresa ou da complexidade da estrutura organizacional. Equipes menores com acesso direto ao poder de compra podem manter esses custos baixos, enquanto em uma organização maior esses custos podem ficar muito altos.

1
Joshua

Simplificando, as decisões de compra geralmente são tomadas pelos contadores de feijão (contadores e gerentes de nível intermediário) e não pelos gerentes de projeto.

Muitas pessoas deram razões potenciais, e todas elas são um fator em uma situação ou outra, portanto, não existe uma situação única que substitua. A compra de equipamentos em grande escala pode significar que eles perdem algum dinheiro em produtividade para programadores, mas ganham dinheiro em outras áreas.

Ainda assim, muitas vezes se resume a um orçamento. Você precisa se encaixar no orçamento, e isso é tudo.

1
Erik Funkenbusch

Na minha opinião, existem apenas duas objeções defensáveis ​​que uma empresa poderia levantar para manter os desenvolvedores configurados com estações de trabalho sólidas. A primeira é que eles estão passando por uma crise de caixa. É melhor ter vida curta, ou a empresa não será uma preocupação permanente por muito tempo. Se você trabalha para uma empresa como essa, deve manter seu currículo atualizado.

A outra é que a organização deles simplesmente não está comprometida com a capacidade de desenvolvimento de software. Ou seja, um aumento na qualidade ou velocidade da saída do desenvolvimento de software não melhoraria os resultados. Se o principal negócio da empresa é vender software, isso será praticamente impossível. Se o software não é o seu principal negócio, e eles não estão empolgados, eles devem tentar reduzir sua força de trabalho, transferindo ou deixando de lado os membros mais fracos da equipe. O fornecimento de equipamentos ruins reduzirá o tamanho de sua equipe do lado oposto, receio.

1
PeterAllenWebb

Porque muitas empresas fora das startups de tecnologia típicas não estão interessadas em contratar estrelas do rock. Eles estão investindo em alguém que pode simplesmente fazer o trabalho. Portanto, se eles não se importam com o modo como você trabalha, por que eles se importam com o equipamento que você usa? Já trabalhei em locais que ainda usam CRTs de 15 polegadas e todo mundo se sai bem. Às vezes, quando leio perguntas como essa, fico imaginando se as pessoas percebem que nem todos no mundo trabalham para uma boa partida.

1
Sergei

Eu trabalhei para empresas que economizavam em hardware no passado. É péssimo, e se eles precisam convencer a batalha provavelmente será interminável.

Acontece que as empresas comprometidas com o uso das melhores ferramentas disponíveis são raras, mas elas existem; Eu trabalho para um. Eu tenho um quad-core de 17 "2011 MBP, 8 GB de RAM, Vertex 3 SSD, 2 x 24" monitores externos, além de um desktop quad-core e uma fatia de 4 GB Xen; bem como escritórios silenciosos.

Eu poderia sobreviver com menos hardware? Certo. Mas acho que todos preferimos nos gabar do que reclamar.

1
Erik Peterson

Eu costumava trabalhar para uma empresa de rede onde eles atualizaram o RAM de 512 MB para 1 GB no ano passado. Estávamos trabalhando com monitores CR ** da f ** king em 2010. A parte mais engraçada foi que o hardware dos gerentes foi atualizado para 2 GB de RAM. Por que diabos alguém iria querer 2 GB para criar malditos PPTs e como alguém desenvolveria aplicativos com 1 GB de RAM, eu nunca saberia.

1
arun kumar

2 GB em uma máquina de desenvolvimento é obviamente vergonhoso, no entanto, resolver esse problema não deve custar US $ 3000 ... mais como US $ 100 (conservadoramente). Por que defender a atualização de tudo de uma só vez? Os departamentos de TI inteligentes estão atualizando continuamente as máquinas ao longo da vida. Eventualmente, você precisa de uma máquina totalmente nova, mas sua máquina não está executando especificações de hardware para o Windows 95; poderia ser atualizado de US $ 300 a US $ 500 para uma máquina típica de médio porte, e essas atualizações poderiam ocorrer durante vários meses, para que não houvesse um problema de fluxo de caixa. Você provavelmente não precisa de uma nova placa gráfica, placa de som, portas USB, gravador de DVD, etc., então por que pagar por elas agora? É como comprar um carro novo porque seu ar condicionado está quebrado.

0
Morgan Herlocker

Novas máquinas, novas tecnologias significam novos problemas. Nem todo mundo em toda empresa é especialista em tecnologia e nem toda empresa possui recursos de TI para treinar pessoas e lidar com problemas 24 horas por dia, 7 dias por semana.

Sim, talvez se você é um programador freelancer trabalhando em seu próprio desktop pessoal, vale a pena gastar US $ 1000 em uma plataforma para extrair 10 minutos de produtividade extra todos os dias. No entanto, quando você está implantando centenas dessas máquinas para pessoas que podem perder produtividade devido a novos equipamentos, a perspectiva parece um pouco mais sombria.

0
tskuzzy

Eu acho que as ferramentas "certas" são necessárias para os trabalhos certos. Se você não possui as ferramentas "certas" (hardware, software ou outras), acredito que isso se deva a um mal-entendido ou falta de comunicação das expectativas entre um funcionário e seus chefes. Isso é responsabilidade dos desenvolvedores e da empresa. Quanto maiores as expectativas, mais próximo deve ser o "requisito".

Dito isto, conheço vários desenvolvedores que "precisam" de 8 GB de RAM) para sua máquina quando venci com menos em cenários mais difíceis. Mas, novamente, acho que é entender os requisitos.

0
Steve

Na minha empresa atual, os desenvolvedores estão bem no topo do totem de hardware. Imagino que o hardware esteja dentro do orçamento normal da empresa, como qualquer outra coisa, e a necessidade supere a necessidade.

Na minha opinião, um desenvolvedor deve ser responsável por seu próprio hardware, mas isso depende inteiramente da situação. Se você for solicitado a escrever um aplicativo simples para um site simples, talvez não seja necessário um equipamento sofisticado para se sentar em um editor de texto. Por outro lado, se você gosta de programação de contratos e deseja fazer alguns shows paralelos, considere comprar seu próprio hardware e software básico e solicitar que a empresa adquira licenças de API individuais conforme necessário por essa empresa específica.

De qualquer forma, é tudo uma questão de freios e contrapesos, e se você estiver preocupado com a produtividade, provavelmente gastará melhor seus dólares em monitorar a quantidade de código que um desenvolvedor está disponibilizando para o seu tempo. Se levar 10 horas para executar um projeto e 5 horas para executar um projeto semelhante, pode ser um problema relacionado ao funcionário e não tanto ao desenvolvedor.

0
Mike Calvert

Uma vez eu tentei argumentar com a empresa (largish) para nos comprar desenvolvedores de sistemas decentes para o consumidor. Essencialmente, as especificações de desempenho nelas eram comparáveis ​​à versão Enterprisey, mas a 1/2 do preço. Meu argumento era que esses preços eram essencialmente descartáveis; portanto, se ele quebrasse, basta comprar um novo (supondo que melhor que 75% duraria 24 meses). Sugeri que, em troca da compra de um desses laptops, o desenvolvedor tivesse que assinar um contrato (ou algo assim) de que seria responsável pela carga/configuração do SW e o suporte técnico não ajudaria a corrigi-lo.

Ele não voou, mas achei que a premissa básica do argumento era razoável, considerando que fizemos o windows dev e todos nós éramos administradores locais.

0
Ken Henderson

Por que não? Porque não é responsável. Não podemos combinar com precisão cada hora de trabalho com uma margem de lucro.

Uma solução simples para isso seria reembolsando quem paga por suas próprias atualizações de máquina. Se a sua contagem for verdadeira, deve ser fácil provar seu próprio lucro com a melhoria da produção comparando os dois últimos períodos (semana, mês, semestre, ano ou o que for) no mesmo trabalho/projeto.

Se os desenvolvedores foram capazes de quantificar quanto estão gerando ao longo de um período, o problema desaparece. A maioria dos desenvolvedores não pode. Nem seus gerentes e muito menos o pessoal das finanças. Porque o trabalho é muito subjetivo.

Mas se você pode mostrar esses números de alguma forma (sei que não posso), então você já está pronto para a sua máquina de sonho econômica, sem auto-inicialização!

0
cregox

Eu devo ter perdido a perspectiva do autor.

Primeiro, o Google, por exemplo, foi fundado usando discos rígidos "descartáveis" baratos, conectados a servidores mais antigos, executados como um farm. OK, que pode ser exagero, mas veja: http://en.wikipedia.org/wiki/Google_platform#Original_hardware

Segundo, não é preciso muito CPU ou recursos gráficos para executar o gvim. Talvez a sua escolha de ambiente de desenvolvimento seja o problema.

Terceiro, existem dezenas, senão centenas, de maneiras de reduzir a intensidade da CPU para aumentar a produtividade, que têm pouco a ver com o fato de você ter ou não 2 GB de RAM RAM ou 3 GB de RAM). programador médio por cima do ombro para ver isso: por exemplo, usando um leitor leve PDF vs. suíte Adobe para a documentação; usando uma instalação mínima de um VM para testar aplicativos em vez de uma instalação completa; remover todos os daemons de inicialização incluídos nas máquinas Win Dell (usando o regedit); usar um navegador leve para o webmail em vez de manter o Outlook em execução; não abrir 50 gazilhões de guias no firefox, perseguindo soluções para problemas de implementação do MSFT em a web; etc etc etc .. Portanto, este ponto se resume ao seguinte: Prove que você precisa de mais memória e Mhz para resolver esse problema de design de software mais rapidamente.

0
Jonathan Cline IEEE

As empresas tomam decisões de maneira bem diferente dos desenvolvedores. A maioria possui mecanismos que fornecem hardware apropriado para a tarefa, tendo canais de compra aprovados, grupos responsáveis ​​por instalações, testes, conformidade com segurança e outras medidas. Portanto, as perguntas que alteram as especificações de hardware podem ser complicadas.

Por outro lado, digamos que você veio ao CEO com uma sugestão de gastar o equivalente a 1% do salário na atualização de equipamentos. Ele pedirá ao CFO que avalie o impacto que teriam nas margens e na receita, digamos que são 5%. Agora, faltando as estimativas, isso pode ter um efeito amplificado no preço das ações da empresa, digamos 10%, e a alta administração perde seus bônus de um milhão de dólares. A menos que haja boas razões para esperar que a atualização melhore os resultados da empresa, essa sugestão seria DOA. As empresas sempre procuram aumentar as despesas apenas se melhorar a receita. Isso significa que, na maioria dos casos, equipamentos de ponta e baixa são sub-ideais.

Uma solução para satisfazer os desenvolvedores e a gerência da empresa seria permitir que os desenvolvedores pagassem o aluguel do equipamento, um sistema típico custaria US $ 20-200/mês se alugado por 2 anos. Uma empresa pode ter uma variedade de hardwares aprovados e oferecer aos desenvolvedores uma configuração padrão ou escolher uma configuração atualizada e deduzir o aluguel adicional do salário.

0
Gene Bushuyev

Novos programas funcionam muito bem - no computador do desenvolvedor. Compre para um desenvolvedor uma caixa de 4 GHz e 8 núcleos e o aplicativo que ele criar funcionará bem - em qualquer computador de 4 GHz e 8 núcleos. Mas no computador de um cliente típico com 2 GHz e 1 núcleo, ele funciona como um caracol morto.

Os desenvolvedores naturalmente continuam adicionando recursos, códigos e níveis de indireção até que as coisas desacelerem nas máquinas de desenvolvimento. Se você está desenvolvendo apenas hardware novo, compre o mais recente. Mas é um perigo se você vender software para pessoas com hardware existente.

O computador de um desenvolvedor deve ter o mesmo nível de potência que o computador do cliente alvo, talvez com um pouco mais para o depurador. Mas não mais rápido.

0
Andy Canfield