¿Cómo han cambiado las aplicaciones móviles / web el proceso de desarrollo de software?

El gran cambio fue alejarse del software retractilado entregado en discos de plástico. Debido a que esos discos debían fabricarse en cantidad, colocarse en cajas y luego retractilarse, el costo de impulsar un nuevo lanzamiento era considerable y, por lo tanto, tomaría al menos un año entre lanzamientos. El ciclo de software de Adobe refleja esta realidad, ya que aún se entregan en discos de plástico.

Una vez que puede empujar o rebobinar un lanzamiento en cuestión de unas pocas horas, el costo de hacer un nuevo lanzamiento cada semana o cada día es bajo. Como resultado, es posible hacer un desarrollo incremental y lanzarlo con frecuencia. De todos modos, esto sigue las mejores prácticas para la industria, y la jerga de la industria es el “modelo de tren” del desarrollo de software, donde si su función pierde el tren actual, siempre puede obtener el siguiente, por lo que no hay presión de horario, no hay anuncio, y no hay razón para lanzar con defectos graves conocidos.

Es posible un ciclo de lanzamiento mucho más corto y rápido (desarrollo -> implementación), como se menciona en la respuesta de Neel Hajare. Eso solo tiene muchas implicaciones:

La línea entre el desarrollador y el ingeniero de operaciones / sistemas se ha vuelto cada vez más borrosa, incluso se convirtieron en una palabra: DevOps.

Por lo tanto, el ciclo de retroalimentación (desde la solicitud de características / informe de errores, hasta la codificación, las pruebas y la implementación en línea) es mucho más rápido, por lo tanto, la Integración Continua (CI) y la Entrega Continua.

Por lo tanto, las pruebas A / B se vuelven más fáciles y efectivas.

Otro aspecto importante de la ingeniería de software que se ha visto afectado es el modelo de estimación de costos y precios, distribución de contenido, ancho de banda, almacenamiento con / por servicios en la nube, etc.

Además, el diseño de la interfaz de usuario, especialmente la experiencia del usuario (UX) y la accesibilidad, se vuelven mucho más importantes. En los días previos a la web, los proveedores de software como Microsoft, SUN y Apple tienen sus propias pautas de diseño de interfaz de usuario.

Un gran cambio provocado con el desarrollo web fue la eliminación de “versiones” o “lanzamientos” de productos de software. Por ejemplo, no usa Google 2009 o Facebook 4.1, usa Google o Facebook, y no hay forma posible de que un usuario retroceda en el tiempo y use ninguno de estos productos tal como existían en 2009.

Esto se debe a que (y me doy cuenta de que estoy simplificando un poco aquí) el software “se ejecuta” en las computadoras mantenidas por el proveedor, por lo que en cualquier momento pueden “actualizar” a todos. En lugar de lanzarse cada año o cada dos años, ahora se lanzan nuevas versiones todos los días (Facebook (compañía) hace esto) o incluso varias veces al día (Quora (compañía) hace esto). Esto significa que no tiene que correr para terminar algo para obtenerlo antes de la fecha límite cuando se imprimen los CD, y si se libera un error, no tiene que esperar un año para poder solucionarlo.

Entre muchas otras cosas, tener esta capacidad ha permitido a las compañías de software experimentar más e incorporar comentarios de los usuarios. Por ejemplo, Facebook podría cambiar el algoritmo de News Feed un día e incluso al día siguiente tener suficientes datos para ver si las personas hacen clic en las historias con más o menos frecuencia y actuar en consecuencia (ya sea mantener el nuevo cambio o volver al anterior) .

La industria del software se ha centrado en la web. Muchas aplicaciones ahora están disponibles a través del navegador, con bases de datos y procesamiento completado en servidores en otros lugares. Eso ha dado lugar a máquinas de ‘cliente ligero’ en las que se necesita muy poco procesamiento, la mayor parte de esas tareas ahora se llevan a cabo en los servidores y se comunican a los clientes a través de la web.

Para pequeñas tareas especializadas necesarias en las aplicaciones móviles, las aplicaciones son lo suficientemente pequeñas como para que toda la aplicación se pueda entregar a través de la web. Es por eso que muchas aplicaciones reciben actualizaciones constantes y se entregan al original comprado a través de la tienda de aplicaciones, por ejemplo. Añadiendo más funcionalidades y corrigiendo errores.