Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Sistema de control de automatización

Automatización del desarrollo de software y aceleración de la innovación

El desarrollo de software tradicional es lento. Es solo para repensar.

Hace casi tres años, Satya Nadella de Microsoft acuñó la famosa frase de que “toda empresa será una empresa de software”. Hoy, el mercado global de software de $500 mil millones está en camino de duplicarse a $1 billón para 2030.

J.P. Morgan tiene constancia de tener 40.000 ingenieros de software (más que Alphabet) en su presentación más reciente. Todas las grandes empresas se apresuran a contratar ingenieros para superar a la competencia. El gran problema es que el desarrollo de software tradicional es lento, fragmentado y derrochador.

Por ejemplo, cada semana, el ingeniero de software promedio pasará 4 horas esperando que se completen las pruebas, 3,5 horas esperando las compilaciones y 3 horas en la gestión del entorno:más de una cuarta parte de su semana laboral en realidad no crea nada de valor. Cuando considera que los ingenieros son a menudo las personas mejor pagadas en las organizaciones, es claramente un gran problema. Sin embargo, las cosas están cambiando.

Una de las principales plataformas de desarrollo, CircleCI, apostó a que la inteligencia artificial y la automatización serían la clave para acelerar la innovación de software y liberar a los ingenieros para que realicen un trabajo importante. En el último año, la empresa introdujo una serie de mejoras de automatización y aprendizaje automático que redujeron la cantidad de tiempo que los ingenieros esperan en un 50 %. Es una de las muchas razones por las que más de 300 000 desarrolladores, incluidos los de Facebook, Spotify, GoPro, InstaCart y muchos otros, recurrieron a CircleCI para avanzar más rápido.

Al frente de la empresa está Jim Rose, seis veces fundador con inversiones anteriores de Google Ventures, Foundation Capital y Marc Andreessen. Desde que se unió a CircleCI hace poco más de cuatro años, Rose ha aumentado los ingresos en más de un 450 % y ha convertido a la empresa en una entidad verdaderamente emocionante.

Interesado en obtener más información sobre la automatización del desarrollo de software y la aceleración de la innovación, Information Age habló con Rose sobre el tema.

¿Cuál es el estado actual del mercado de software?

Por el momento, todavía hay muchas empresas y personas que realizan diferentes procesos manualmente. Cuando piensas en el proceso de transformación digital, en realidad se trata de fomentar un equipo de desarrollo de software.

Uno es intentar sacar el software de los centros de datos locales y llevarlos a entornos nativos de la nube, donde puede obtener acceso a la computación de manera instantánea.

La segunda es que el software, tradicionalmente o en muchos casos, se ha visto como una guía o un complemento del negocio principal. Ahora tiene todo tipo de empresas, desde bancos hasta fabricantes de automóviles y minoristas, que se dan cuenta de que el software es fundamental para lo que hacen. Por lo tanto, deben averiguar qué es lo que poseen y deben consolidar sus activos e integrarlos como un estándar.

Una vez que las empresas tienen este acceso instantáneo a la computación y tienen estructuras establecidas en las que los desarrolladores pueden trabajar, lo que se encuentra en el medio hoy en día suele ser una especie de mezcolanza de diferentes plataformas y procesos.

En la mayoría de los casos, tiene procesos de lanzamiento de software en cascada muy largos que tienen muchos pasos manuales y luego tienen muchos scripts manuales. En algunos casos, para talleres más avanzados, es posible que cuenten con la primera generación de soluciones de automatización, pero a medida que los equipos se aceleran, estas comienzan a fallar.

Y ahora eso es en lo que estamos entrando y ayudando a las empresas a navegar. A medida que sus equipos de software aceleran, crean más software y tratan de hacerlo más rápido; con el fin de responder a las oportunidades en el mercado y también a posibles cambios negativos. Las empresas solo necesitan repensar por completo cómo se ensamblan todas esas piezas.

¿Es esta velocidad a la que te refieres el principal obstáculo en el desarrollo de software?

Las empresas y los equipos de desarrollo intentan acelerar a medida que el mercado se acelera. Están tratando de descubrir cómo pueden trabajar rápidamente para poder aprovechar las oportunidades.

La única forma de llegar allí es automatizar realmente todos los pasos que no necesariamente necesitan la intervención humana, porque en lugar de hacerlo en el transcurso de minutos, horas y días, puede hacerlo en segundos.

A medida que los equipos se aceleran y el software es su escaparate principal para su cliente, debe asegurarse de que los niveles de calidad sean altos; debe asegurarse de que no se bloquee o de que no tenga vulnerabilidades de seguridad, por ejemplo.

Entonces, cuando piensas en ágil, se trata de tratar de volverte más ágil, tanto desde la perspectiva de la calidad como desde la perspectiva de la velocidad.

En los EE. UU., todo se trata de velocidad, pero al ir más rápido, integrar partes más pequeñas y poder lanzar software de manera más consistente, su software simplemente mejora de manera inherente. Todos esos temores sobre tener que implementar desaparecen cuando lo hace cinco, ocho, 15 veces a la semana y, en algunos casos, tenemos clientes que lo hacen 100 veces al día.

La implementación deja de ser un problema.

Por el lado de la calidad, uno de los grandes problemas para el desarrollo de software en el pasado es que si solo lanzas una vez por trimestre, te resulta muy difícil asegurarte de que todos los cambios que introduces en tu aplicación realmente funcionen juntos. A menudo, ves que las empresas hacen un gran lanzamiento y luego, después de hacer un gran lanzamiento, pasan los siguientes 60 o 90 días tratando de arreglar todas las cosas que retrocedieron y se rompieron. En este método, su ciclo de software se ralentiza, pero también sufre la calidad de la aplicación.

Desde una perspectiva ágil, eso es lo que la gente intenta abordar.

¿Cómo puede cambiar una organización para acomodar, apoyar y fomentar los equipos de desarrollo de software?

Hay algunas formas diferentes.

Una es que los desarrolladores son difíciles de contratar y, por lo tanto, desea asegurarse de que todo el tiempo dedicado desde una perspectiva de desarrollo se dedique a desarrollar su software especial, sea lo que sea; si es un banco, está creando una excelente aplicación bancaria, si es una aplicación de comercio electrónico, está creando una aplicación de comercio electrónico realmente excelente. Creo que una de las grandes áreas en las que la gente ha invertido poco es que los desarrolladores de software construían cosas históricamente. Eso es lo que hacen, construyen software. Por lo tanto, el ciclo de desarrollo no se ha invertido lo suficiente desde la perspectiva de una aplicación de terceros.

Hay cosas como, por ejemplo, la automatización de pruebas y la infraestructura de entrega continua que los equipos no deberían tener que construir por su cuenta. Es mucho mejor adquirirlo de otra persona que se especialice en esa área para que pueda concentrarse en lo que es bueno. Sería como decirle a alguien que necesita construir una cafetera y darle un montón de tubos de cobre, algunas soldaduras y algunas válvulas. Tú nunca harías eso. Pero históricamente, el desarrollo ha sido tratado de esa manera. Por lo tanto, definitivamente es fundamental implementar las herramientas y plataformas adecuadas, en todos los sentidos, desde el centro de datos hasta las herramientas de planificación.

Creo que la segunda parte es que en un modelo de cascada tradicional, el desarrollo de software generalmente desempeña el papel de receptor, por lo que la aplicación se define mucho antes en el proceso y luego, cuando el equipo de desarrollo la obtiene, se han tomado varias decisiones. que puede o no funcionar realmente y puede o no ser factible o fácil de hacer.

Existe esta noción de cambio a la izquierda, que intenta impulsar el desarrollo más y más en el ciclo de planificación para que las preocupaciones o necesidades del equipo de desarrollo se consideren tanto en la construcción de la aplicación como en su entrega. Y luego, cuando lo piensa desde una perspectiva operativa, significa que también tiene que pensar en cómo se opera una aplicación mucho antes en el ciclo de vida. Por ejemplo, si intenta crear aplicaciones nativas de la nube, debe diseñarlas de una manera muy particular, lo que significa que debe tomar esa decisión y ser parte de ese proceso mucho antes.

Cuando los equipos están adoptando más procesos ágiles que priorizan el software, terminas con una triangulación de preocupaciones. Tienes a la gente, a los dueños de negocios y a los gerentes de producto que saben por qué estás construyendo algo. Tienes a los arquitectos técnicos y los desarrolladores de software realmente hablando sobre cómo lo construyes. Y luego tienes a los operadores, los que son responsables de ejecutarlo realmente, averiguando qué ejecutas realmente al final de todo el proceso. Así que todo el mundo tiene que estar involucrado. Y eso puede ser una transición difícil para algunas empresas.

¿Cómo pueden la IA y la automatización estimular y mejorar la innovación de software?

Con la automatización puedes automatizar tareas tanto predeterminadas como de autoaprendizaje. Un ejemplo de eso podría ser si cada vez que intenta lanzar una pieza de software tiene que hacer una prueba de terceros contra algún otro sistema de pagos de terceros. En el pasado, con esas tareas, tendría que contratar a un equipo de control de calidad que esencialmente trataría de procesar las transacciones y lo haría todo manualmente, lo cual es increíblemente lento. También está increíblemente lleno de errores y complicaciones.

Estos son ejemplos perfectos de tareas que deben automatizarse por completo en su conjunto de pruebas:todas estas cosas que sabe que va a hacer una y otra vez, debe automatizar esas tareas para que sean deterministas y predecibles. Y luego, en última instancia, rápido.

Hay oportunidades para tomar esas tareas repetitivas que cada minuto que un desarrollador dedica a hacer esas cosas una y otra vez es una pérdida de tiempo y, francamente, una pérdida de dinero.

Entonces, cuando observa la IA y el software que se está construyendo, en lugar de pensar en impulsar un software determinista predictivo, lo que está haciendo es impulsar un modelo. Y el modelo es una caja de arena de nociones preconcebidas de cómo podría funcionar algo y luego, a medida que las personas lo revisan y se ejecutan las pruebas, el modelo cambia y evoluciona a medida que aprende más sobre cómo funcionan o no las cosas. laboral. Eso ejerce una presión increíble sobre el sistema de pruebas.

Cuando piensas en algunos de los pasos en falso de la IA cuando tienes situaciones en las que hay un sesgo inconsciente integrado en la IA, donde la IA se vuelve loca y comienza a bloquear a las personas para que no accedan a ciertas aplicaciones, o cierra las cosas, todas esas son situaciones en las que desde un perspectiva de prueba que son desafiantes.

Se está volviendo cada vez más complicado, pero también se está volviendo mucho, mucho más rápido y más receptivo. Por lo tanto, solo verá que la inclusión de la IA y el aprendizaje automático en el desarrollo de software seguirá aumentando. Pero, ahora necesita tener todos los marcos necesarios para poder probar todos esos cambios.


Sistema de control de automatización

  1. ¿Qué es un redactor de servicios automotrices y qué hacen?
  2. Diseño y desarrollo de un robot de inspección de bajo costo
  3. SABIC y Nottingham Spirk se asocian para acelerar el desarrollo de la innovación
  4. La automatización inteligente de edificios y el futuro del desarrollo inmobiliario en las ciudades
  5. Seegrid crea el grupo de investigación y desarrollo 'Blue Labs'
  6. AMRC impulsa la innovación en tecnología y economía circular
  7. ABB Robotics:Innovación tecnológica e I+D en robótica
  8. Bright Machines lanza hardware y software de Microfactory
  9. Software de gestión de inventario:características y ventajas
  10. ¿Qué es un director de mantenimiento y qué hace?
  11. Diseño en 3D:software de diseño y doblado de tubos