Las herramientas de codificación de IA son ahora una parte establecida del desarrollo de software, pero la IA generativa también se está extendiendo a otras partes del flujo de trabajo de un desarrollador. Userdoc es una startup que ha creado un servicio asistido por IA para crear requisitos de software. En la Cumbre de Ingenieros de IA en San Francisco la semana pasada, me senté con su cofundador y desarrollador principal, Chris Rickard, para discutir por qué creó Userdoc y cómo ayudará a los desarrolladores. Los requisitos, determinar lo que un software hará para una o más "personas" de usuario, son típicamente lo primero que se hace en un nuevo proyecto.

"Una parte muy importante de construir un buen software es obtener buenos requisitos y asegurarse de que estás construyendo lo correcto", me dijo Rickard. "Estaba realmente interesado en cómo la IA puede ayudar a facilitar ese proceso y, en esencia, identificar problemas que podrían terminar siendo errores; o incluso peor, características gigantes de sistemas que no resuelven el problema original y ni siquiera son necesarias".

Userdoc

Userdoc (haz clic en la imagen para verla completa)

Uno de los beneficios de utilizar IA para crear requisitos es que puedes "prepararla" con información sobre tu negocio, para que la IA pueda utilizar eso como contexto para los requisitos. Rickard me mostró un ejemplo de un servicio de entrega de comestibles que utiliza Userdoc para construir requisitos para un conductor de entrega. Dijo que en ese caso, la IA proporciona una especie de "gobernanza" para los desarrolladores mientras construyen su sistema.

"La inteligencia artificial en este ejemplo actúa como un Analista de Negocios", dijo Rickard, "y comprende las otras implicaciones de hacer esto".

¿Por qué no usar simplemente ChatGPT?

Todo esto suena muy bien, pero ¿cómo es diferente utilizar la IA de Userdoc para generar requisitos de software en comparación con usar, por ejemplo, ChatGPT para hacer lo mismo?

Rickard respondió que existe el riesgo de que ChatGPT "invente algo". Añadió que Userdoc utiliza GPT-4 en su núcleo, pero que el contexto empresarial es clave.

"Así que cuando estamos hablando con GPT-4", dijo, "enviamos [información sobre] todas las otras características relevantes de tu sistema".

Admitió que ChatGPT podría lograr lo mismo, pero sería necesario construir "una gran pregunta" para obtener una respuesta similar a la de Userdoc.

Para cada proyecto de Userdoc, existen una serie de 'historias de usuario' que a menudo equivalen al número de características en un software. Por lo tanto, podría haber cientos de características, y ahí es donde se vuelve complejo", dice Rickard.

"Uno de los grandes puntos problemáticos que estamos tratando de resolver aquí es que si un sistema tiene cientos de características [...] hay mucho en lo que debes pensar y recordar; y una gran causa de retrasos y costos del software son esencialmente estas pequeñas cosas que la gente no resuelve desde el principio".

Cómo funciona Userdoc

Configurar un nuevo proyecto de Userdoc se realiza a través de un asistente, que te ayuda a listar a los usuarios y sus diferentes objetivos. A menudo, este trabajo de configuración lo realizan los propietarios de productos, los gerentes de productos y los analistas de negocios, y después de eso, el proyecto se entrega a los desarrolladores. Pero Rickard dice que Userdoc también ayuda directamente a los desarrolladores.

"Entonces, una vez que se han creado las características y demás [...] puedes sincronizar esto con herramientas de gestión de proyectos. Así se conecta con Jira, o Azure DevOps, [o] cualquier lugar que cree un elemento de trabajo que pasa por 'por hacer', 'en progreso' y 'terminado'; y eso sincroniza toda esta información sobre qué es la característica".

Userdoc wizard

Asistente de Userdoc

Rickard señaló que en algunas situaciones, los desarrolladores de software también ayudan a construir los requisitos. Por lo tanto, depende de las necesidades comerciales cuándo y cómo utilizarán los desarrolladores Userdoc. A menudo, también es una buena referencia al regresar a un proyecto.

"Trabajamos con muchas agencias que tienen muchos proyectos simultáneos", dijo, "y los desarrolladores de software, e incluso los diseñadores, terminan utilizando esto [Userdoc] como el punto de referencia para retomar un proyecto después de dos meses. Tienes esta gran descripción de lo que se debe hacer".

Rickard agregó que la información en Userdoc también se puede utilizar como "la documentación viva a largo plazo del sistema".

"Así que si comienzas de esta manera, teniendo requisitos bastante detallados que luego mantienes actualizados, y a lo que el negocio se refiere, entonces esto se convierte en una fuente de verdad [sobre un sistema de software]".

Pensamientos sobre LangChain

Dado que estábamos hablando juntos en la Cumbre de Ingenieros de IA, quería evaluar cuánto estaba utilizando Rickard las herramientas actuales de alta demanda del espacio de ingeniería de IA. Como está utilizando GPT-4, le pregunté si estaba utilizando LangChain como capa de comunicación para LLM de OpenAI.

"Probablemente pasé un par de semanas con el primer prototipo [de Userdoc] utilizando LangChain", respondió. "Pero descubrí que quería entender qué estaba sucediendo detrás de escena; y LangChain es increíblemente poderoso, pero lo que aporta a la mesa [...] son métodos prácticos, probados y verdaderos para realizar ciertas tareas, como leer un documento, dividirlo en fragmentos pequeños, enviarlo a un LLM y hacer preguntas".

Pero […] estaba aprendiendo LLMs al mismo tiempo que estaba aprendiendo LangChain, y era difícil entender dónde empezaba uno y dónde terminaba el otro. Así que simplemente escribí mi propia capa de comunicación para hablar con GPT-4, y eso ayuda significativamente".

Cómo Userdoc podría expandirse

Entonces, si Userdoc puede, con el tiempo, convertirse en la fuente de documentación para un software, ¿también se podría utilizar para alimentar un chatbot de ayuda en el lado del cliente (por ejemplo, para ese servicio de entrega de alimentos)?

"La respuesta es sí, definitivamente", respondió Rickard. "La principal preocupación realmente es el conocimiento interno versus externo y lo que las personas desean exponer".

Señaló que Userdoc está arrancando en este momento, pero si pudiera expandir el equipo, su sueño sería "adentrarse más en la aburrida tarea de cumplimiento". Así que preferiría ir en esa dirección en lugar de hacer lo que todos los demás están haciendo: crear un chatbot para un sitio web o aplicación dirigida al consumidor.

"Realmente me gusta la idea de garantizar [que] lo acordado por el negocio fue realmente lo que se hizo", explicó. Agregó que hoy en día existen pruebas automatizadas que los desarrolladores pueden utilizar, pero le gustaría utilizar la inteligencia artificial para complementar ese proceso.