La mayoría de los problemas / desafíos que trato a diario se dividen en algunas categorías:
- Problemas de producción. El servidor web está generando 500 errores, el tiempo de respuesta para ciertas páginas está subiendo, los niveles de carga están subiendo en una de las bases de datos, el equilibrador de carga acaba de reiniciarse, etc. Por lo general, hay una locura por solucionarlos cuando suceden.
- Ajustes de producción. No es un gran problema como el n. ° 1, pero queremos ajustar un algoritmo un poco, o agregar algunos registros, o cambiar algo de texto en una página. Por lo general, estos no son un gran problema, pero siempre debe tener cuidado al cambiar el código en vivo y asegurarse de no haber introducido accidentalmente algún problema que resulte en la categoría de problema # 1.
- Desarrollo de nuevas características. Aclaración de requisitos, esquemas de datos de diseño, escritura de código, refactorización, revisión de diseños y código con colegas, etc.
- Comprender e integrar software de terceros. Buscando una biblioteca de código abierto que proporcione la funcionalidad que necesita. Lectura a través de la API de un servicio, como Twitter o Facebook o un procesador de pagos. Mirando a través de los documentos o el código de alguna biblioteca que intentas integrar.
- Manejo de sistemas complicados. Los aspectos a considerar de la experiencia del usuario incluyen: su navegador web, bibliotecas Javascript, conexiones de red, topologías de red de centros de datos, hardware y sistema operativo de sus servidores, bases de datos, almacenes de valores clave como memcache, software de servidor web (por ejemplo, Apache), qué versión de bibliotecas que ha instalado, el código PHP / Ruby / Python / Java real que escribió, etc.
- Hacer juicios sobre cómo utilizar mejor los recursos. ¿Cuánto tiempo debemos pasar escribiendo pruebas exhaustivas? ¿Para qué escala de datos o tráfico diseñamos nuestro sistema? ¿Pasamos tiempo optimizando nuestro sistema ahora, o tratamos de obtener características frente a usuarios reales más rápido?
- Comunicación. Reuniones, stand-ups, correos electrónicos, documentación, presentación de ideas / características a colegas para comentarios, intercambio de conocimientos, seguimiento de problemas, etc.
De acuerdo, supongo que son más categorías de las que pensaba originalmente. 🙂
Es similar a mucho desarrollo de software. La principal diferencia que veo en comparación con otros trabajos que he tenido es la velocidad de iteración. Puede actualizar / cambiar / corregir su software y brindar a sus usuarios una experiencia diferente en cuestión de horas, en lugar de tener que esperar meses hasta que se lance la próxima versión del software.
- ¿Alguien sabe de literatura académica que vincule el valor del Diseño Centrado en el Usuario con la Estrategia: AKA Mejorar el UCD de una aplicación / producto permitiría que sea más ampliamente adoptado?
- ¿Qué debo saber antes de hacer una aplicación web súper rápida?
- ¿Puedo hacer una aplicación web si solo conozco Ruby on Rails?
- ¿Cuánto tiempo le tomaría a un principiante de programación aprender a escribir una aplicación de una sola página con backend?
- ¿Reemplazarán las herramientas de creación de aplicaciones en línea la aplicación / desarrollo web en el futuro?