En los viejos tiempos, las aplicaciones en las que estaba trabajando eran cosas como programadores que se escribían como aplicaciones de formularios de Windows. Lo que hizo que su desarrollo fuera eficiente fue que, como programador único, podía programar fácilmente toda la aplicación sin necesidad de comunicarme.
Gráficamente, había un conjunto limitado de formularios y propiedades y todo estaba contenido dentro de una sola computadora, por lo que no había ninguno de los problemas de red o de seguridad reales con los que tratamos hoy.
Hoy en día, en cualquier proyecto, más o menos como mínimo, un desarrollador front-end, un desarrollador back-end y un diseñador de UI / UX.
- ¿Alguien está estudiando Internet como una entidad, académicamente, con el fin de desarrollar modelos que hagan predicciones sobre su comportamiento y evolución? Y si es así, ¿qué están prediciendo?
- ¿Cuáles son las preguntas que comúnmente le hacen sobre internet?
- Cifrado: ¿Cuál es la mejor manera de almacenar nombre de usuario y contraseña en una base de datos?
- ¿Qué redes sociales están conquistando Internet últimamente y por qué?
- ¿Tiene que pagar para cargar un sitio web que ha diseñado en Internet?
Con la desaparición de las aplicaciones basadas en formularios, el gran énfasis que se ha puesto en que cada aplicación esté disponible en cada dispositivo, haciendo que las aplicaciones respondan, la ausencia de estándares para los navegadores, los desarrolladores que trabajan en sus propios sistemas operativos individuales con los que las herramientas de desarrollo y los paquetes de instalación puede o no ser compatible, la necesidad de reconstruir ocasionalmente bases de datos para instalar un nuevo marco, y la lista continúa, ha tomado mucho más tiempo de lo que había previsto desarrollar lo que es, por todos los derechos, una aplicación moderadamente sofisticada.
Sin embargo, la mayoría de los problemas parecen reducirse al hecho de que hay trabajo de front-end, y hay trabajo de back-end, y los desarrolladores se han especializado en estas líneas. El trabajo de back-end es inútil en nuestro caso sin una interfaz de front-end e igualmente una interfaz de front-end es inútil sin un back-end sólido que haga algo.
Desafortunadamente, con demasiada frecuencia en nuestra experiencia hay retrasos frecuentes cuando las dos partes tienen que trabajar juntas. Si bien el tiempo real para obtener el código de back-end puede ser solo de unos minutos a unas pocas horas, el tiempo transcurrido parece ser un día o, a menudo, más. Esto es para cualquier cambio en el back-end. Sé que cada lado está haciendo su mejor esfuerzo y, sinceramente, las cosas han mejorado mucho (lo suficiente como para finalmente estar dispuesto a publicar sobre este tema), pero el dolor al llegar aquí fue sustancial.
Tengo otro proyecto derivado que utiliza un solo desarrollador en este momento que está haciendo un gran momento. Estoy un poco preocupado por agregar un segundo desarrollador, ya que no quiero presentar estos problemas a ese proyecto de alto rendimiento. Al final lo haré porque el chico del front end produce un trabajo increíble, pero la idea de hacerlo todavía me preocupa un poco. De hecho, he dado instrucciones al desarrollador de back-end en este proyecto para que se desarrolle para una implementación posterior, pero que desarrolle la herramienta como una aplicación basada en formularios. Creo que con respecto al desarrollo rápido de aplicaciones, esta decisión es probablemente la mejor forma de evitar retrasos.
Hacer que nuestros desarrolladores se sienten uno al lado del otro o incluso compartir la pantalla no es una opción para nosotros, ya que nuestra gente está distribuida geográficamente en todo el mundo (Atlanta, Portland, Seattle, dos ubicaciones en Rusia separadas por medio día). En el pasado también hemos tenido otros lugares, Cambridge, Lyon y Tánger en particular. Así es como somos como empresa, muy distribuidos. Indudablemente, esto también es parte del problema.
Cualquier idea sobre esto, o cualquiera de los anteriores, sería muy apreciada.