66 puntos por xguru 2023-07-10 | 8 comentarios | Compartir por WhatsApp
  • Sobre por qué es difícil reemplazar a los desarrolladores con IA
  • En muchas noticias se dice que la IA va a reemplazar a los desarrolladores, pero la parte más difícil de construir software no es programar, sino crear requisitos claros y precisos
  • "Eso no es un bug, es una feature. Ah, espera, sí es un bug"
    • Los requisitos poco claros generan bugs
  • "Para que la IA reemplace a los desarrolladores, los clientes tendrían que explicar con exactitud lo que quieren. Estamos a salvo"

La realidad de la IA: ajedrez vs. autos autónomos

  • La IA ha sido usada con éxito en áreas como el ajedrez, donde las reglas son limitadas y claras, pero los autos autónomos representan un desafío mucho más complejo para la IA por la cantidad infinita de variables y situaciones excepcionales
  • En tecnología, el estándar suele ser cinco o seis nueves de Availability (disponibilidad) (99.999% a 99.9999%)
    • Alcanzar 99% no cuesta tanto. 99% significa que tu sitio web puede caerse menos de 3 días al año (87.6 horas)
    • Pero cada 9 adicional hace que el costo para llegar a ese nivel crezca de forma exponencial
    • Para llegar a 99.9999%, solo puede haber 31.5 segundos de caída al año (99.9% son 526 minutos/8.76 horas, 99.99% son 52 minutos, 99.999% son 5.2 minutos)
    • Lograr eso requiere una planificación y un esfuerzo enormes, y por supuesto es caro
  • Por más que la IA mejore, siempre existe el riesgo de accidentes
  • No está claro qué nivel de accidentes sería aceptable, pero como mínimo tendría que ser tan buena como los humanos

La IA no puede hacer software, solo puede hacer código

  • Crear y mantener software se parece mucho más a conducir que al ajedrez
  • Hay muchísimas variables, y las reglas se determinan mediante juicio
  • Al crear software puede haber un resultado deseado, pero no es algo tan simple como en el ajedrez
  • El software casi nunca está realmente terminado. Es un ejercicio continuo en el que se agregan funciones y se corrigen bugs
  • A diferencia del software, una partida de ajedrez termina cuando ganas o pierdes
  • En el desarrollo de software tenemos una herramienta que intenta convertir el diseño de software en algo parecido al motor de reglas del ajedrez: la especificación técnica
  • En el mejor de los casos, esta especificación técnica anticipa el comportamiento del usuario y el flujo del programa
  • Pero eso casi nunca pasa. Demasiado seguido recibimos una wishlist como si fuera una especificación funcional, o un wireframe dibujado en una servilleta, o un documento de requisitos ambiguo, y se espera que tomemos la mejor decisión posible
  • Para empeorar las cosas, los requisitos cambian y a veces también se ignoran
    • Requisitos imposibles. En el texto original se habla de un proyecto para hacer una encuesta de COVID por SMS en un lugar sin WIFI. Lo correcto era no hacerlo
    • ¿De verdad la IA podría responder ante algo así?
  • Para que la IA pueda crear software funcional, tendría que saber con claridad qué se quiere y ser capaz de definirlo de forma clara y precisa
  • En la última década, la industria del software pasó del modelo waterfall al enfoque ágil
    • En waterfall se asumía que las partes interesadas sabían lo que querían y podían documentarlo, pero fracasó porque cuando se entregaba el producto final, la decepción era enorme
    • Agile es la respuesta a ese proceso
  • La IA podría ser más adecuada para reescribir en hardware más moderno y en nuevos lenguajes el software que ya existe
    • Todavía hay muchos lugares que usan software escrito en COBOL, pero casi nadie aprende ese lenguaje ya
  • Puede que la IA sea capaz de producir software ya existente más rápido que una persona, pero eso solo pasa porque alguien ya pensó antes cómo debía construirse ese software
  • La IA podría construir software bastante bien si usamos el proceso waterfall, al que nosotros llamamos una marcha de la muerte
    • ¿Y quién es terrible en waterfall? Exactamente: los humanos
    • Y no solo en la parte de redactar el documento que se le entrega al equipo de programadores, sino en todo lo anterior
  • La IA puede hacer algunas cosas sorprendentes, pero no puede leerte la mente ni decirte qué es lo que quieres

8 comentarios

 
pmc7777 2023-07-12

Creo que esto aplica no solo al desarrollo de software, sino a todos los campos relacionados con la IA donde existen preocupaciones.

 
botplaysdice 2023-07-11

Parece que van a avanzar muchísimo las tecnologías para automatizar la validación de requisitos. Da la impresión de que la automatización de pruebas va a brillar todavía más... ¿Se vendrá un mundo en el que los humanos solo administren los casos de prueba...?

 
dkang 2023-07-10

"¿Quién es lo terrible en waterfall? Exacto: los humanos"
Habiéndolo vivido, me identifico.

 
hyeonseok 2023-07-10

Ya leímos un buen artículo, así que ahora vayamos a organizar los issues.

 
eususu 2023-07-10

Aunque quizá a la IA le resulte difícil reemplazar a los desarrolladores, ¿no podría ser que, si el desarrollador solo le da unas palabras clave, la IA haga la programación?
Lo que antes se decía en broma, programar con la boca, quizá se vuelva realidad..

 
neidn 2023-07-12

¿No es así como desarrollan ahora usando Copilot u otras IA?
Si escribes en inglés en los comentarios lo que necesitas, lo generan por su cuenta, así que solo tienes que revisar si coincide o no con lo que quieres.

 
ethanhur 2023-07-10

Coincido muchísimo con esto. Creo que en el futuro todos los ingenieros de software terminarán teniendo capacidades más propias de un TPM, y que se les exigirá eso.

 
[Este comentario fue ocultado.]