¿Debería un desarrollador de software obtener un presupuesto anual de equipos? [cerrado]

51

Estoy buscando un nuevo puesto en una nueva empresa. He hablado con algunas personas en el pasado (en general, no en esta compañía) que se les había dado un presupuesto anual para comprar nuevas cosas de computadora para mantenerse al día.

Ahora, por qué siento que vale la pena hacer esta pregunta es que Joel sale y dice que un empleador debe pagar por el mejor equipo que el dinero puede comprar ... dentro de lo razonable, por supuesto.

De la prueba de Joel: 12 pasos para mejorar el código

9. ¿Utiliza las mejores herramientas que el dinero puede comprar?

Escribir código en un lenguaje compilado es una de las últimas cosas que aún no se puede hacer instantáneamente en una computadora hogareña de jardín ...

Los equipos de desarrollo de primer nivel no torturan a sus programadores. Incluso las frustraciones menores causadas por el uso de herramientas de poca potencia se suman, lo que hace que los programadores estén gruñones e infelices. Y un programador gruñón es un programador improductivo ...

¿Alguien sabe si la industria tiene un estándar para ofrecer una asignación o presupuesto?

Nunca he trabajado para una empresa como esta, pero creo que debería lanzar esto al ring para las negociaciones. Parece razonable. ¿Cómo manejan esto las compañías más grandes como MS, Google y Apple? Si dice que sí, dé un rango ... Me han dicho números desde $ 5k hasta $ 10k. Me parece alto, pero bueno, con gusto lo tomaría.

CrazyDart
fuente
44
El ciclo de actualización para los no desarrolladores también es importante. Si sus usuarios internos aún deben usar XP e IE6, eso limitará su capacidad de introducir nuevas funciones.
mhoran_psprep
2
No hay un estándar, algunas compañías proporcionan presupuestos que otras no. He trabajado para ambos, actualmente estoy en un lugar que le comprará una computadora portátil nueva y cubrirá hasta $ 1000 y sacará el resto de su cheque de pago durante los próximos 12 meses para pagar el resto.
Alan Barber
3
@AlanBarber: ¿su empleador le hace pagar por su propio equipo? Supongo que eso significa que cuando te vayas, puedes quedarte con él, ¿verdad?
warren
12
En uno de los lugares más recientes en los que trabajé, recibí una computadora portátil Dell de $ 300 para estudiantes con el i3 más barato y 8 GB de RAM como mi máquina principal como Director de Desarrollo de Aplicaciones. Esto era "estándar" para los desarrolladores hasta que me quejé y conseguí que todos, al menos, máquinas i5 de nivel medio con 16 GB de RAM, no creyeran cuánto mejoró la moral y, por supuesto, la productividad aumentó 10 veces.
3
No se trata de la "experiencia del usuario" sino de la productividad del desarrollador . No tener la máquina buscando constantemente cada vez que inicias una compilación, o vuelves a implementar una aplicación en un servidor de aplicaciones local, o reinicias un servidor de aplicaciones local, o eres capaz de ejecutar 2 máquinas de Virtual Box para realizar pruebas de navegador cruzado. Simplemente poder patear una compilación y luego volver a la codificación es fundamental. Todas estas cosas conducen a una productividad 10X o más en el transcurso de un día, incluso. Las personas de QA y UX deberían estar haciendo pruebas de aceptación en hardware y navegadores antiguos. Los desarrolladores deberían producir el producto de la manera más eficiente posible.

Respuestas:

102

Personalmente, me gustaría que la compañía clasifique el equipo que necesito, no me dé un presupuesto y me obligue a ocuparme de toda la investigación, negociación y otros problemas que conlleva la compra e instalación de hardware corporativo.

Al final, todo lo que quiero hacer sobre el hardware es establecer mis pocos requisitos y que alguien más haga todo ese trabajo, para que pueda seguir con los míos.

Más importante y apropiado (en mi humilde opinión) es un presupuesto de capacitación personal, con el que puede comprar libros y asistir a cursos y conferencias.

Carnicero paul
fuente
20
divertido, personalmente, siento lo contrario: realmente odio venir a una empresa y que me ofrezcan hardware no tan avanzado con basura preinstalada o funciones limitadas. Prefiero mucho más tener el presupuesto y elegir el hardware que conozco y luego instalar solo lo que necesito. Al final seré más productivo. +1 aunque para el presupuesto de capacitación
stijn
25
@stijn Entiendo lo que quieres decir, pero ¿no se trata más de la competencia de las personas que aprovisionan el hardware que de si tú mismo lo aprovisionas?
Paul Butcher
55
eso ciertamente es un factor, sí. Otro es que soy un fanático del control cuando se trata de organizar mi lugar de trabajo:]
stijn
55
Tener una asignación de presupuesto para hardware no implica necesariamente tener que resolver los detalles usted mismo. Hacerlo de esa manera es simplemente la salida fácil para la empresa.
un CVn
66
Personalmente me parece útil construir mi propia máquina. Puedo mantenerme actualizado sobre las últimas tecnologías en el mundo del software, pero es bueno verse obligado a buscar hardware de vez en cuando. Cada vez que tengo que actualizar, encuentro nuevos desarrollos en hardware que de otro modo no habría sabido si alguien más construyera mis máquinas por mí.
Phil
23

¿Debería un desarrollador de software obtener un presupuesto anual de equipos?

Definitivamente es bueno tenerlo y algo que mencionaría para discutir o incluso como parte de sus fichas de negociación para la negociación salarial. La pregunta es más sobre si es un "debería" o un "must" .

¿Alguien sabe si la industria tiene un estándar para ofrecer una asignación o presupuesto?

Desafortunadamente, la industria definitivamente no lo tiene como una práctica estándar, pero afortunadamente algunas compañías son un poco menos codiciosas y están más en contacto con las necesidades de sus desarrolladores (y empleados en general).

Esta será una respuesta bastante amplia, y por presupuesto no hago una distinción entre un presupuesto que se le ha asignado para comprar o realizar un pedido, o como algo transparente cuando solicita una actualización administrada por el personal de su empresa . En sus libros, de todos modos es lo mismo.


Es práctico

El problema es que esto obviamente puede representar rápidamente un gran presupuesto para una empresa, si alcanza una cierta masa crítica. Sin embargo, estoy de acuerdo contigo y con Joel en que puede valer la pena.

No tiene absolutamente ningún sentido frustrar a los empleados.

No te eches a perder

Dicho esto, también debe mantener a los empleados en línea y hacer que se den cuenta de que a veces el mal rendimiento o el hardware ligeramente desactualizado es solo una realidad . No querrás que todos se conviertan en niños mimados que quieran un nuevo SSD, el último procesador iN, el GB extra de ram, etc.

No quiero que las personas se obsesionen con la eterna juventud, y eso también se aplica al hardware.
(Sin embargo, con los proyectos de software, tiendo a presionar para mantenerme lo más cerca posible de la última versión ... Las analogías no siempre son válidas :))

Necesidades específicas para hardware específico

Creo que hay que hacer una distinción entre:

  • el equipo básico que definitivamente se requiere para tu trabajo cuando comienzas,
  • y el equipo más avanzado donde la necesidad proviene de requisitos específicos.

Paquete base

Por ejemplo, las siguientes son cosas bastante estándar que tendría derecho a esperar, y para las cuales no veo una necesidad (fuerte) de pedidos especiales:

  • una computadora portátil + teléfono celular (si usted es un consultor in situ),
  • una estación de trabajo si trabaja fuera del sitio y permanece en la nave nodriza,
  • Además, tal vez algunas cosas no controvertidas como:
    • dispositivos de entrada decentes (teclado, mouse, quizás trackballs ...)
    • silla decente

Estos pueden ser los mismos para toda la empresa, excepto para casos especiales como empleados con discapacidades. Los empleados con discapacidades o lesiones obviamente deben ser acomodados.

Bonos

Entonces, si obviamente necesita hacer muchas videoconferencias y presentaciones, es posible que desee algunos dispositivos como bluetooth, tabletas y stylus. Lo que en realidad se puede compartir entre los departamentos mediante el uso de un sistema de reservas, para no terminar con todo el mundo solicitando algunos (y perdiéndolos), mientras se reduce el espacio para quejarse.

Si eres un diseñador, necesitarás tu tableta de dibujo, tu trackball, etc. Lo hago de vez en cuando para ver al desarrollador que pide un trackball en lugar de un mouse. Personalmente, probé ambos, y veo que ambos son casi igualmente idénticos, por lo que nunca he aceptado esta afirmación, si no tiene una necesidad específica que no sea "Me gusta más". Puede vivir con un mouse en lugar de una bola de seguimiento sin desarrollar un RSI en 8 horas si aún no tiene problemas y tiene los hábitos de uso correctos. Es un problema diferente cuando obtienes un mouse, una bola de seguimiento o un teclado mal, pero no veo una victoria clara para uno u otro.

Si es un desarrollador que necesita ejecutar 4 servidores de aplicaciones simultáneamente, crear proyectos y mantener abiertas 3 instancias de Eclipse o Visual Studio en todo momento, obviamente necesitará una estación de trabajo bastante competitiva. Consideraría estas "necesidades básicas" para los desarrolladores , por lo que no significa que los tipos de marketing necesariamente tengan que estar alineados con eso.


Desarrolle su caso: datos duros para la victoria

Por experiencia, la mayoría de las empresas comprenden sus necesidades si puede demostrar que son legítimas. Si puedes defender la justificación de ello, te darán el dinero o intentarán acomodarte. Te están pagando para que trabajes , así que realmente no quieren que pierdas el tiempo.
(Es decir, si les importa un poco tu trabajo ... si eres irrelevante, me temo que no tienes suerte allí ...)

Muestra la ganancia para ti

Entonces, en el pasado, mis compañeros de trabajo y yo obtuvimos actualizaciones para RAM, dispositivos de entrada, sillas, discos duros y estaciones de trabajo completas o incluso granjas de servidores basadas en requisitos claramente recopilados y detallados. Se necesita un poco de tiempo para construir su caso, así que discútalo primero con su gerente de línea, pero probablemente estará bien. O pase las horas adicionales una semana en la oficina para construir el caso, puede valer la pena y su gerente de línea le confiará más con tales decisiones en el futuro.

Muestre la ganancia para ellos (el dinero es la raíz de todo mal ...)

Con respecto al ejemplo anterior, calculamos, por ejemplo, los tiempos de construcción y la reducción que pudimos obtener, e hicimos comparaciones entre las diferentes configuraciones presentes en la empresa, calculando el promedio del tiempo perdido por desarrollador por día y luego haciéndolos darse cuenta que fue equivalente durante un año a aproximadamente 20 días completos por persona de no poder hacer nada (ya que la computadora básicamente no respondería si no tuviera al menos un quad-core y 8GB de RAM para esta compilación). Veces la cantidad de desarrolladores, esa es una cantidad considerable de horas que le pagan a la gente para quedarse sin hacer nada, lo que fue mucho más alto que actualizar al menos algunas de las estaciones.

Más recientemente, un compañero de trabajo ha estado haciendo una evaluación similar para convencerlos de que consideren las unidades SSD, y está en el proceso de recopilar datos muy detallados sobre cuánto tiempo se ahorraría para cada cuerpo, de manera similar.

Para consultas relacionadas con la salud, una simple recomendación de su médico, incluso informal, podría ser suficiente.

Para el software personalizado, es posible que solo necesite presentar las ventajas de la herramienta y sus impactos cuando se integre en su proceso. Por ejemplo, logré que mis últimas 3 compañías compraran licencias para herramientas de enmarcado después de usar una versión demo para una presentación para captar su interés, y luego usarlas más ampliamente en uno o dos proyectos de corta duración que involucran a algunas personas. Estos eran bastante baratos, pero originalmente no querían comprar las licencias sin ver la necesidad. Cuando se dieron cuenta de que claramente ayudaba a visualizar prototipos y tomar decisiones informadas antes, dieron luz verde rápidamente.

Plan

  • Definir un plan de actualización.
  • Defina puntos de referencia y métricas para medir la ganancia.
  • Proporcionar resultados claros.
  • Saque conclusiones sobre estos resultados.
  • Tal vez haga un trabajo preliminar inicial sobre los cálculos de costos y ahorros (también discuta con el gerente de línea, o haga esto en una segunda revisión de su propuesta).
  • Haga que los compañeros de trabajo firmen su solicitud, posiblemente con cada uno escribiendo una declaración sobre cómo se sienten acerca de la actualización, ya sea positiva o negativa (el punto no es hacer un discurso de marketing completamente sesgado para extorsionar algo de su empresa, también es para Realmente investigue esto y vea si es realmente necesario).

Una nota rápida sobre grandes actualizaciones para todo un equipo

Sugiera lanzamientos continuos si solicita actualizaciones para todo un equipo:

  • que distribuye el costo durante un período más largo ,
  • se da tiempo para limar cuestiones de transición ( "gritos, simplemente darse cuenta de que esta CPU combinado con esta versión del sistema operativo cuestiones en realidad presenta cuando compilación cruzada nuestro producto X para otra plataforma X"),
  • se evita que todo el equipo de estar atrapado en el infierno de mantenimiento con la reinstalación del sistema, actualizaciones del sistema y los problemas habituales pizarra limpia, o los contratiempos ocasionales ( 'chillidos, borrado esa copia de seguridad importante ...').

Admitir derrota: no siempre funciona para todo ...

Y con razón. No todo es aceptable. Y las cosas que son aceptables pueden estar fuera del alcance de su empresa. Desarrolle su caso, llévelo al gerente de línea, discuta sobre un almuerzo en equipo o algo más amigable y en equipo que en el calor de la revisión financiera de este año.

Además, si tiene dificultades para construir su caso :

  • admitir que probablemente no lo necesites ,
  • admite que probablemente te equivocaste y la actualización X no te compra lo que pensabas que sería.

Si no puede construir un caso y comenzar a estar a la defensiva sobre su solicitud, significa que será mejor que haga otra cosa.

haylem
fuente
2
+10 para una respuesta clara y bien definida, con un encantador plan de justificación robable. Bien razonado, especialmente. con la porción de Admitir Derrota.
Jennifer S
@ Jennifer: Gracias. Me alegro si es de utilidad para alguien.
haylem
Sentí que recibía RSI hace unos dos años (trabajo de manera regular 50/60 horas semanales), obtuve un trackball (Kensington) y no he sentido nada desde entonces. El mouse es ergonómicamente muy extraño. ¡Otro invento horrible de Apple! Es curioso que el teclado dividido de Microsoft sea tan agradable de usar ... solo el producto MS que recomendaría.
Bryan Hunt
Aquí hay algo de reflexión. ¿Cómo es que puedo gastar mi propio dinero privado en software o hardware que mi empresa no está dispuesta a pagar? Gastar mi propio dinero significa que estoy realmente convencido de que la pieza de hardware o software me ayudará a hacer mejor mi trabajo. No creo que se trate de ser mimado, creo que los programadores y gerentes deben tomar nuestra profesión más en serio. Y actuar como verdaderos profesionales al respecto.
Saab
@BryanHunt: Creo (no me cites al respecto) que Apple fue la primera en tratar de dividir el teclado, así que no los culpes demasiado. Y (puedes citarme sobre eso) tampoco inventaron realmente el mouse. Hubo modelos anteriores, pero generalmente consideramos que Douglas Engelbart en Stanford creó el primer mouse moderno, y que luego se desarrolló más en Xerox PARC (que los chicos de Apple vinieron a visitar). Estoy de acuerdo en que el mouse no es perfecto (y tuve algunos problemas el año pasado), pero puede mitigarse si no tienes uno totalmente malo. (Lo que da miedo, ese RSI. Me alegra que el tuyo esté bien).
haylem
8

Una asignación anual de equipo individual es un camino peligroso a seguir:

  • El gerente esperará un tiempo de compilación insignificante, por lo tanto, mayor productividad.
  • Tendrá que lidiar con todas las molestias asociadas con el mantenimiento de un equipo profesional, desde comprar hasta deshacerse de las muchas fallas que eventualmente ocurrirán.
  • ¿Qué pasa con los equipos comunes? servidores, enrutadores, administradores de sistemas, software con licencia / corporativo ... Si yo fuera el jefe, vendería estos servicios como una parte adicional de la asignación.

  • ¿Qué hay de ir más allá? subsidio telefónico, escritorio, oficina, cafetera, energía eléctrica, aire acondicionado ...

Mouviciel
fuente
77
Tener una asignación o presupuesto de equipo individual no implica necesariamente los puntos que enumera. Si establece un requisito como, por ejemplo, "el desarrollo IDE X que utilizamos necesita 4 GB de RAM para funcionar realmente rápido; quiero poder ejecutar tres instancias con algo de espacio libre, por lo tanto, un mínimo de 16 GB de RAM", entonces todavía puede resolver los detalles, ordenar el hardware, instalarlo y mantenerlo, etc.
un CVn
Mientras que "Tener una asignación o presupuesto de equipo individual no implica necesariamente los puntos que usted enumera". es verdad. Los gerentes que no entiendan supondrán que, dado que usted tomó las decisiones y gastó el dinero, todo funcionará a la perfección y no hay ninguna razón por la que no pueda ofrecer un X% más de productividad.
cdkMoose
2
Todo lo que solicite puede ser un arma utilizada en su contra por la gerencia. Escoge tus batallas.
JeffO
5

Los salarios anuales de los ingenieros son altos, por lo tanto, invertir en equipos es bueno. 5-10k $ no es nada, si se va a usar bien.

Para citar al autor de la biblioteca boost MSM :

Tiempos de compilación de máquinas de estado con> 80 transiciones que lo harán asaltar la oficina del CFO y asegurarse de obtener un brillante octocore con 12GB de RAM la próxima semana, a menos que esté interesado en pagarle ver cómo el compilador agoniza durante horas ... ( Asegúrese de pedir doble 24 "también, no duele).

Sin embargo, si el equipo actual sigue siendo bueno, no veo ningún punto en desperdiciar dinero.

BЈовић
fuente
4

Supongo que depende del entorno en el que esté trabajando. Tome Delphi, por ejemplo, tiempos de compilación increíblemente rápidos para que la velocidad de la computadora sea menos importante. Pantalla inmobiliaria hace.

Además, aunque dar nuevas herramientas es bueno, no subestimes el tiempo perdido al configurar una nueva computadora, configurando tus ajustes como antes. Las cosas simplemente no funcionan.

Pieter B
fuente
4

Digamos que está trabajando en un proyecto que hace una docena de compilaciones o compilaciones de prueba al día, y cada una toma diez minutos.

Si tuviera una máquina mejor, tal vez solo le tomarían ocho minutos. O cinco minutos. Y su máquina aún puede ser lo suficientemente ágil como para hacer otras cosas para que pueda seguir trabajando mientras se está construyendo.

Calcule cuánto tiempo ahorraría todos los días, sume todo el año. Conviértalo a un valor en dólares utilizando su tarifa por hora.

Sorprendido todavía?

sevenseacat
fuente
3

Creo que hay pros y contras (como de costumbre). Tener presupuestos de equipos individuales puede significar una amplia variedad de hardware, bueno para la depuración, malo para el mantenimiento.

¿Los individuos también rastrean las garantías en el equipo? Tiempo perdido si lo hacen, problema administrativo si no lo hacen.

Puede depender de su situación. Una empresa pequeña / mediana que vende software en el mercado general, entonces un presupuesto individual puede ser algo bueno (bueno para la depuración). Una gran corporación trabajando en software interno, entonces los presupuestos individuales pueden ser algo malo (todos tienen el mismo hardware).

También existe el argumento de que los desarrolladores deberían tener que probar en máquinas que son aproximadamente promedio, para que obtengan el mismo rendimiento que el usuario objetivo.

Jaydee
fuente
1

Creo que un presupuesto anual es una pérdida de dinero: el equipo no se vuelve obsoleto tan rápido. Creo que es mejor actualizar cuando el rendimiento avanza hacia donde vale la pena hacer el cambio, por ejemplo, cuando los procesadores de doble núcleo se reemplazaron por cuatro o seis núcleos, cuando Windows 7 reemplazó a Windows Vista y XP, cuando el terabyte fue duro las unidades reemplazaron las unidades de 200 o 300 MB, y cuando salieron las unidades SSD. Todas estas fueron mejoras significativas.

Pero después de obtener el mejor y más reciente escritorio con algunas o todas las características mencionadas anteriormente, no tiene sentido gastar otros $ 5K al año siguiente para una mejora incremental.

Además, creo que todos los desarrolladores de un grupo deben actualizarse juntos y también obtener el mismo equipo, ya que el soporte será más fácil de esa manera.

tcrosley
fuente
¿Por qué el voto negativo? Estaba respondiendo la pregunta. Quien haya votado negativamente puede no estar de acuerdo conmigo, pero eso no merece un voto negativo.
tcrosley
¿Quién decide cuándo un aumento tecnológico es significativo en este caso?
Zoot
2
@Zoot Eso normalmente sería el gerente del grupo (con aportes de los desarrolladores), o el CTO (Director de Tecnología si existe) o, en el caso de una pequeña empresa para la que trabajé, el CEO (que tenía un título de CS, entonces él estaba calificado para tomar tales decisiones). La decisión debe ser tomada por alguien que pueda sopesar el beneficio para los programadores frente al costo general para la empresa. Si está trabajando para una empresa que produce software donde la alta gerencia no está calificada para reconocer un cambio de tecnología, me gustaría abandonar. Probablemente tampoco estén calificados para administrar proyectos de software.
tcrosley
0

Un presupuesto anual sería bueno, pero puedo ver algunos desperdicios si tiene que "usarlos o perderlos". Por ejemplo, algunos años puede que necesite aprovisionar y gastar más de lo que le asignan, pero otros años puede que no necesite gastar mucho. Por lo tanto, permitir que el presupuesto se transfiera al próximo año sería esencial para la política.

Otra opción sería combinar el presupuesto de hardware con la capacitación, para que pueda optar por poner una parte de la misma en capacitación y una parte en el hardware. Por supuesto, un buen empleador lo colocaría en cursos de capacitación todos los años de todos modos, pero en mi experiencia esto rara vez sucede.

dodgy_coder
fuente
0

Nunca me he encontrado con tal presupuesto. En los contratos a largo plazo, las corporaciones proporcionan el material informático y les importa si algo se rompe. Es más racional que darles dinero a los empleados y esperar que compren por ellos lo que quieran. ¿Qué pasa cuando la computadora portátil de alguien se descompone? Se desperdician unos días antes de que lo repare o compre piezas nuevas, etc. Cuando la empresa gestione el hardware, recibirá un reemplazo para el portátil roto en unas pocas horas.

Otro caso son los contratistas / autónomos, que son contratados a corto plazo, y administran sus cosas ellos mismos. Ellos se encargan de las reparaciones ellos mismos y simplemente esperan que el pago sea lo suficientemente bueno como para que les sea rentable.

Marinero danubiano
fuente
0

Cuando la empresa para la que trabajo comenzó, teníamos una asignación de hardware personal de $ 1500. Los empleados pueden comprar equipo para trabajar en casa y gastarlo. A medida que la compañía fue comprada y vendida, hemos perdido este agradable beneficio. Nuestro departamento de TI actual proporcionará a los desarrolladores equipos de primera línea, pero es de uno de los grandes proveedores (HP, Dell, Lenovo, etc.).

Brad Patton
fuente
Tanto Dell como HP hacen un kit horrible en estos días. Increíblemente barato y muy a menudo solo Windows (inalámbrico, módem, gráficos). No es ideal para un desarrollador que utiliza el sistema operativo Linux como su escritorio de desarrollo diario.
Bryan Hunt
-1

Una actualización anual no es necesaria. Depende del rendimiento del sistema Vs de las herramientas.

Prefiero que el sistema del desarrollador se actualice ya que necesitan un sistema más potente para ejecutar todas las herramientas de desarrollo.

Básicamente es bueno para la organización, ya que reduce el tiempo de desarrollo.

Además, cada organización debería considerar el uso de un servidor centralizado como un sistema que se puede usar para instalar software que se puede usar con fines de prueba y reducir la utilización de recursos en el sistema del desarrollador.

usuario583726
fuente
-1

Los desarrolladores deben obtener un presupuesto anual de capacitación + equipo, pero cuando las cosas van realmente bien, se deben poner a disposición clases / conferencias / capacitación / equipos / libros / camisetas / comidas adicionales.

Por lo general, vale más para el desarrollador que el efectivo.

Tim Spann
fuente