¿Cómo elegimos un Framework de JavaScript?

¿Qué debemos preguntarnos antes de seleccionar alguno?

Los últimos cinco años, ha habido una explosión de innovación, tanto en tecnologías web y nativas. Con la rápida liberación de frameworks y herramientas, los desarrolladores ahora tienen muchas opciones para crear aplicaciones para este nuevo mundo. Pero la que elijas, ¿realmente tienen el valor, patrones de diseño y capacidades suficientes para sumar valor productivo para el desarrollo de empresas web a gran escala?

Con la evolución de los Frameworks populares (pero limitados) como AngularJS, Ember y otros, los desarrolladores de hoy en día tienen un número increíble de herramientas para elegir, y a menudo, la "solución" resultante no suele ser la más óptima.

Si bien estas bibliotecas individuales resultan ser muy potentes en las manos de expertos, la triste realidad es que una gran parte de la funcionalidad debe ser reunida de fuentes diversas, escritas en diferentes condiciones requiriendo un dedicado equipo de desarrolladores para programarlo y darle mantenimiento.

Los programadores de JavaScript han reconocido desde hace tiempo el poder de HTML5, y ahora encontramos una línea de productos totalmente integrados y altamente relacionados con las mismas características de desarrollo para crear aplicaciones web de gran alcance en las empresas. Como el mejor Framework de JavaScript y todas las características modernas, Ext JS es cuidadosamente diseñado para satisfacer las necesidades más importantes de las aplicaciones web empresariales, sin necesidad de crear muchas extensiones UX.

Antes de empezar a trabajar en su próximo proyecto, hágase estas cuatro preguntas:

¿Cómo puede hacer que sus equipos de desarrollo sean más productivos?
¿Puede estimar con precisión el esfuerzo de desarrollo que participan en la toma de las decisiones para crear el software?
¿Pueden sus desarrolladores reutilizar fácilmente el código a través de funcionalidades existentes de otras aplicaciones previas, sin importar el dispositivo del usuario final o de la plataforma?
¿Puedes predecir con precisión los requisitos de mantenimiento a largo plazo de una aplicación a través de todo su ciclo de vida y las plataformas posibles de entrega de punto final?

Vamos a abordar cada una de estas cuestiones en detalle y examinar por qué Ext JS es la mejor opción para la construcción de aplicaciones web empresariales en comparación con otras soluciones de JavaScript como AngularJS.

¿Cómo se puede hacer que sus equipos de desarrollo sean más productivos?
Cada empresa quiere saber cómo pueden ayudar a sus empleados a ser más productivos, y esto es particularmente cierto en el desarrollo de software.

Uno de los beneficios más importantes de HTML5 es que los desarrolladores web comparten un conjunto de habilidades comunes, que les permite construir poderosas aplicaciones interactivas en una variedad de entornos. Pero a pesar de que HTML5 es un conjunto de habilidades comunes, la realidad es que existen múltiples diferencias entre estas bibliotecas populares y herramientas, y es difícil de entrenar a los desarrolladores constantemente.

Frameworks de JavaScript como AngularJS, pueden no implementar todas las funcionalidades requeridas para la construcción de su Aplicación, por ejemplo los LayoutsManagers o el control sobre los Efectos visuales, puede sólo implementar un subconjunto de importantes características, lo que se transforma al desarrollador (y por ende a la empresa), en la necesidad de buscar esas soluciones con terceros (y sus dependencias) para cubrir las características faltantes, a menos que se desarrollen y mantengan dentro de la empresa.

Con este enfoque, también es importante tener en cuenta que cada una de estos Frameworks de terceros se distribuyen de forma independiente, cada uno con sus propios ciclos de lanzamiento y sus "mejores prácticas". La combinación de muchas bibliotecas diferentes unidas en un mismo propósito para un Software a menudo pone dolores de cabeza para integrarlos y sobre todo mantenerlos, sin mencionar que la documentación también puede ser incompleta.

Además, ¿qué sucede si necesita ayuda? Google podría estar impulsando el desarrollo de AngularJS, pero no ofrece el apoyo de ningún tipo, y mucho menos el apoyo de la empresa a tiempo completo. Lo mismo sucede con otros Frameworks de JavaScript.

Es evidente que los desafíos que enfrentan las empresas con este enfoque incluyen:

* Entrenar adecuadamente a sus desarrolladores
* Actualizaciones de versiones de Frameworks que ya se esten usando
* Encontrar apoyo a nivel de empresa. Un experto en el equipo.
* La división de los equipos en las empresas regularmente en dos, el equipo que hace la actualización, la documentación y el mantenimiento del software y el equipo haciendo el desarrollo de la aplicación real y el levantamiento de los requerimientos.

ExtJS es un Framework muy robusto en las funcionalidades consideradas para el desarrollo de apicaciones Web, ayudando a sus desarrolladores a diseñar, desarrollar y desplegar aplicaciones de forma coherente.

¿Puede estimar con precisión el esfuerzo de desarrollo que participan en la toma de las decisiones para crear el software?

No es ningún secreto que la causa de fracaso más común de los proyectos de software regularmente esta relacionada con la pobre estimación de esfuerzo. Una gran parte de este problema es cómo definimos los alcances, pero también con frecuencia la decisión de las herramientas para la construcción del.

Ningún Framework es perfecto, y es ciertamente poco realista esperar que alguién sepa el 100% de las herramientas que se están utilizando. Cuando se aplica este hecho, la estimación de qué es lo que se esta haciendo puede estar comprometida.

Mediante la aplicación de algunas fórmulas matemáticas simples, comenzamos a entender las consecuencias reales de tener demasiadas dependencias. Suponiendo un dominio de 90% por cada una de los frameworks que utilizamos, es como disminuir el control sobre el desarrollo y el mantenimiento en proporcion de diferentes tecnologías que estemos usando, y esto es restar estabiliadad y confianza a la arquitectura

Control = (Dependencia A = 0,9) x (Dependencia B = 0,9) = 0,81 // o
Control = (Dependencia A = 0,9) (Dependencia B = 0,9) x (Dependencia C = 0,9) = 0,729 // etc

Aunque el 90% es un promedio (y tal vez una métrica un tanto arbitraria), la premisa matemática permanece intacta. Se puede ver claramente cómo la adición de más dependencias reduce la fiabilidad de un sistema de manera exponencial, y que la reducción de la fiabilidad se traducirá en problemas como retrasos en la entrega de características, mantenimiento adicional y el tiempo de prueba, o la necesidad de asignar recursos adicionales de desarrollo. Esto nos lleva directamente al aumento de los costos y un montón de "atención y ayuda", soporte al cliente, algo que la mayoría de los desarrolladores no disfrutan.

Por ejemplo, al elejir un Framework como AngularJS, su equipo de desarrollo asume de inmediato una serie de dependencias externas. Puede implicar jQuery, Bootstrap y otros, sin contar cualquier código desarrollado y mantenido dentro de la empresa. Si bien esto puede ser indiferente para los proyectos pequeños y los equipos que crean aplicaciones relativamente cortos o sitios web, los posibles riesgos y consecuencias llegan a ser muy pronunciados en la empresa, donde los equipos son más grandes, geográficamente diversos, y mantienen una gran base de código común para muchas aplicaciones.

¿Pueden sus desarrolladores reutilizar fácilmente el código a través de funcionalidades existentes de otras aplicaciones previas, sin importar el dispositivo del usuario final o de la plataforma?

Dos son las siglas populares que a menudo se utilizan en el desarrollo de software son DRY (Do not Repeat Yourself) y KISS (Keep It Simple, Stupid). Y mientras la mayoría de los desarrolladores y administradores de aplicaciones entienden esos términos, es también claro que no todo el mundo sigue este consejo.

Por ejemplo, la mayoría de los desarrolladores senior entienden cómo extraer patrones de código comunes en una abstracción de alto nivel que se utilizará en varios lugares, y por lo tanto el problema de la reutilización en la pequeña está bastante bien resuelto. ¿Pero qué sucede en las empresas, donde puede haber varios equipos de software, donde gestionan muchas aplicaciones a través de una variedad de dispositivos y plataformas?

La realidad del desarrollo de software en las empresas es que el código reutilizable a gran escala es principalmente un problema no resuelto. Modificación del código reutilizado es particularmente propenso a errores en estas situaciones, debido a que puede causar problemas como módulos individuales, desarrollados por diferentes equipos con ciclos de lanzamiento no coordinados, y que posteriormente necesitan ser actualizados o sustituidos .

Hablando de esto, Ext JS resuelve este problema mediante la aplicación de un proceso de desarrollo de aplicaciones estándar, la organización del código en sí mismo y proporciona una metodología consistente. Combinando Ext JS con Sencha Cmd, hace que sea sencillo para compartir código entre equipos y aplicaciones en diferentes etapas del desarrollo.

¿Puedes predecir con precisión los requisitos de mantenimiento a largo plazo de una aplicación a través de todo su ciclo de vida y las plataformas posibles de entrega de punto final?

Se ha dicho que el mantenimiento del software es en gran parte la adición de nuevas capacidades de software en etapas donde la aplicación ya es productiva. El mantenimiento de las aplicaciones existentes consume típicamente entre 40 y 80 por ciento de los costes de software.

Un buen Software debe estar diseñado para permanecer producción durante un periodo de cinco a diez años, a veces más tiempo. Por ello, es importante considerar que la mayoría de las bibliotecas de JavaScript sólo están comenzando a ser diseñados para "navegadores modernos". Tenga en cuenta que los navegadores antiguos (como IE8) todavía mantienen una parte considerable de la cuota de mercado de los navegadores, y sin embargo AngularJS y otras bibliotecas han caído por completo en el soporte de la misma .

Con ese tipo de números, es absolutamente fundamental que los equipos de desarrollo comprendan realmente las herramientas que se utilizan para construir el producto. Simplemente leer y comprender el código existente consume hasta un 30 por ciento del tiempo total en mantenimiento. Se puede concluir entonces que el mantenimiento de aplicaciones puede ser más difícil que el desarrollo inicial. Este problema sólo empeora cuando los equipos de mantenimiento de las aplicaciones cambian inevitablemente con el tiempo.

Conclusión
Frameworks populares de JavaScript como AngularJS ciertamente tienen su lugar en el mundo del desarrollo web. El increíble crecimiento de código fuente abierto ha permitido a HTML5 ser explotada como una plataforma de distribución de aplicaciones y asegurado su futuro como la tecnología Web del futuro. Pero la empresa tiene necesidades muy específicas a largo plazo, que simplemente no están contempladas en los inicios y juntas de decisión de requerimientos y herramientas a utilizar.

Hasta el día de hoy, Ext JS es un Framework claramente posicionado para hacer frente a estas preocupaciones, y lo hace a través de un conjunto robusto y altamente integrado de características.


Porqué es importante aprender a programar? ...
El éxito de las estimaciones de recursos en el Software ...
La programación dirigida por eventos también es un paradigma de programación
Consideraciones a tomar para llamarlo el mejor

Danos tus comentarios

Danos tu comentario