Cómo configurar una estación para un equipo de desarrolladores

Si aún es real, solo una cosa: no seas barato. Unos cientos de dólares más o menos por estación de trabajo pueden traducirse en una diferencia del 10% o más del tiempo dedicado a ejecutar pruebas, compilar u otras operaciones típicas intensivas en cómputo, que pueden traducirse en una diferencia del 1% o más para la productividad del desarrollador. Solo calcule cuánto significa una pérdida de productividad de desarrollo del 1% por año, dado el costo anual de un desarrollo, entonces verá que un mejor hardware siempre vale la pena. Las máquinas más rápidas también ayudan a reducir el estrés: como desarrollador, estás más estresado y cansado mientras esperas que mientras usas tu cerebro para programar.

Qué mejor hardware significa para los desarrolladores: SSD para el sistema operativo, además de un disco magnético grande y rápido para datos que se escriben con más frecuencia, más y más RAM, CPU más rápida, más y más monitores, mayor ancho de banda a Internet, LAN Gigabit Ethernet , placas base rápidas, etc., cualquier cosa que pueda reducir el tiempo dedicado a cosas como ejecutar pruebas, compilar, cambiar aplicaciones, desplazamiento excesivo debido a pequeños monitores, etc.

Hay algunas consideraciones específicas sobre los monitores:

– los estudios muestran que a partir de 27 “ya no hay beneficio en aumentar el tamaño del monitor
– dependiendo del tipo de desarrollo, dos monitores pueden no ser suficientes – si realiza un desarrollo completo de la pila para la web, tres monitores son un mínimo para un trabajo eficiente: IDE, consola del servidor y navegador
– También es útil uno adicional para chat, correo y similares, si se espera que las personas respondan rápidamente a las interrupciones, que a menudo es el caso en una configuración de DevOps
– más de cuatro monitores comienzan a dañar la capacidad de enfoque, al igual que el cambio constante de aplicación causado por muy pocos monitores – ya no puede enfocarse en la cantidad suficiente de todos los bienes inmuebles de monitores que tiene a su disposición, y comenzar a moverse de un monitor a otro representando cambios de contexto (tan caros en humanos como lo son para los procesadores; comienza a tener dificultades para ingresar al flujo, que es el estado en el que un desarrollador debe pasar la mayor parte de su tiempo)

Si su servicio / producto está destinado a ejecutarse en Linux (que es el caso de la mayoría de las aplicaciones web en la actualidad), preferiría Linux como SO de escritorio, pero no lo impondría. Le ahorra dinero en costos de licencias del sistema operativo (que puede usar para hardware más rápido), es más económico de mantener, en términos de trabajo manual requerido para actualizaciones de software y configuración general del sistema, limpieza y mantenimiento, e inherentemente más seguro (simplemente porque no hay hay mucho malware por ahí capaz de infectar Linux; lo hay, pero por mucho, no tanto como para Windows). Además, si su plataforma de producción de destino es Linux, el desarrollo en la misma plataforma elimina los problemas causados ​​por las diferencias de plataforma de desarrollo y producción, lo que también ahorra tiempo de desarrollo. Sin embargo, no lo aplicaría, ya que algunos desarrolladores pueden no sentirse cómodos con Linux en el escritorio.

Hablando de seguridad, OSX y Linux demostraron repetidamente ser más seguros que Windows con el tiempo es un gran problema para una startup. Como startup, probablemente no pueda permitirse el lujo de contratar a un profesional de seguridad calificado para fortalecer y asegurar su red al mismo nivel de precios al que puede hacerlo una corporación. Pero si bien es probable que una corporación sobreviva a una violación de seguridad grave (vea Sony, sobrevivieron a varias), dicha violación puede matar a una startup. Por lo tanto, ir con una plataforma inherentemente (y probada) más segura es algo inteligente que hacer.

Si opta por Linux, asegúrese de obtener hardware comprobadamente compatible: busque en Google la lista de compatibilidad de hardware de Linux antes de comprar. Puede que le cueste un poco de tiempo investigar, pero esta vez se compensará por completo al no tener que devolver / cambiar piezas o máquinas enteras cuando realice la compra real. No suele ser un problema: la única pieza de hardware incompatible que he encontrado en los últimos tres años es una impresora láser HP más pequeña y antigua, pero en ocasiones ocurre con tarjetas gráficas de gama alta, impresoras de uso menos frecuente, adaptadores USB inalámbricos, auriculares USB etc. y no es una experiencia agradable (o útil) diagnosticar el problema cuando ocurre.

Deje que el desarrollador elija lo que funcione mejor para él. Lo más probable es que lo que los hace más efectivos ni siquiera está en su idea de lo que necesitan. Escritorios de pie? Ergo teclados y bandejas? ¿Trackballs, matrices de monitores con algo de retrato y algo de paisaje? monitores super grandes? Escritorios de cinta de correr?

No puedo trabajar en el cuaderno en absoluto, pero algunos lo encuentran preferible. Una suposición por adelantado asegura que pierdas la configuración óptima para un desarrollador.

Mark Richman hace un punto válido de que su equipo debería ayudarlo con esas decisiones. Dado que se sentirá consumido por el descubrimiento de clientes, estableciendo la visión del producto y guiando al equipo a través de una marcha iterativa hacia un modelo comercial viable, probablemente sea una buena decisión contratar a personas de su confianza para tomar todas las decisiones tecnológicas y ambientales.

Dicho esto, la mayoría de los desarrolladores que conozco solo funcionarán con MacBook Pros de 15 pulgadas con pantallas Retina. Como contratista, me contrataron para un inicio en el que proporcioné mi propio MacBook Pro, mientras que los fundadores establecieron un laboratorio colaborativo con una gran mesa comunitaria rodeada de cómodas sillas Herman Miller y 5 de esas enormes pantallas Thunderbolt de Apple (27). -inch) en que nuestro equipo de desarrollo podría conectarse.

Supongo que no necesitará servidores en el sitio porque cualquier equipo de desarrollo que valga la pena va a configurar todo el shizz en la nube, incluido el repositorio de código fuente, un servicio de CI / CD como Codeship y su desarrollo, prueba, y entornos de producción en un host como Heroku Cloud Application Platform.

More Interesting

Cómo crear un complemento jQuery

Cómo hacer animación en un diagrama de flujo en una página web

Dirijo un equipo de productores web / gestores de proyectos. Estoy usando Smartsheet ahora para rastrear y medir el rendimiento del equipo. ¿Qué otras herramientas existen que puedan agregar valor a la gestión de equipos y sus proyectos?

Estoy tratando de construir una página web y he llegado a la parte de elegir un servidor web. Estoy abrumado ahora. ¿Cómo elijo un proveedor de alojamiento web? No lo entiendo

¿Es necesario aprender Angular 2 o 4 y JavaScript para el desarrollo web?

¿Podría una sola persona hacer su propio navegador web si tuviera un título en Informática?

Estoy tratando de seguir una carrera en desarrollo web front-end. Ya estudié HTML y CSS. ¿Es un buen camino para aprender Dreamweaver y WordPress?

Si alojo un sitio HTML simple, sencillo, de una página y codificado a mano en un servidor en casa que no requiere que los usuarios inicien sesión, ¿es probable que mi sitio web pueda ser pirateado?

No sé nada sobre desarrollo web / codificación. Dicho esto, tengo una idea para una tienda en línea basada en negocios / sitios web. ¿Cómo puedo progresar?

Cómo mover cada elemento individualmente unos pocos píxeles usando CSS

No estoy alcanzando ningún hito en el aprendizaje del desarrollo web. ¿Estoy en el camino equivocado?

¿Qué debo esperar en mi primer trabajo como único desarrollador de full stack?

Cómo elegir el mejor complemento SEO de WordPress para mi sitio web

Todavía no he trabajado en Javascript, pero sé algunas cosas básicas en Javascript. Me gustaría aprender React JS, ¿puedo?

Cambié la URL del sitio en WordPress y ahora hay una gran sobrecarga de memoria que bloquea el servidor MYSQL. ¿Cómo puedo arreglar esto?