01 - Ingeniería de Requerimientos ¿Qué son los requerimientos de software?
Summary
TLDREste video forma parte de una serie de siete que se enfoca en la ingeniería de requerimientos, un conjunto de actividades críticas para desarrollar soluciones de software que aporten valor a los usuarios. Se discute la importancia de entender y definir los requerimientos, que son la base para satisfacer las necesidades de los usuarios y las restricciones del sistema. La serie abarcará desde la recopilación de información de los usuarios hasta la validación de soluciones y cómo se aplica en diferentes proyectos. Destaca la necesidad de empatía, entendiendo las necesidades y objetivos de los clientes para guiar el desarrollo del producto. La ingeniería de requerimientos es presentada como una habilidad clave para evitar el fracaso en el proyecto y asegurar que el equipo de desarrollo construya lo que realmente beneficiará al usuario. Además, se enfatiza la importancia de ser selectivos con la información para evitar la sobrecarga de funciones innecesarias y centrarse en la calidad y el valor real que ofrecen a los usuarios.
Takeaways
- 📝 La ingeniería de requerimientos es un conjunto de actividades que nos llevan a desarrollar soluciones extraordinarias.
- 🔍 Los requerimientos son la guía para comprender las necesidades de los usuarios y especifican las funciones del producto.
- 🤝 La importancia de los requerimientos radica en encontrar el producto correcto y son la base del éxito o del fracaso de un proyecto.
- 👥 Los requerimientos incluyen información sobre los usuarios, sus intereses, prioridades, y el ambiente de operación.
- 🛠️ La ingeniería de requerimientos también abarca restricciones tecnológicas y decisiones de tecnología en la construcción del software.
- 🧐 Empatía es clave: comprender las dificultades y objetivos de los clientes para poder encontrar soluciones que les aporten valor.
- 👣 Comenzar con empatía significa entender las necesidades de los usuarios y sus situaciones actuales antes de proponer soluciones.
- 🚫 Proteger al usuario de sí mismo, analizando y filtrando las solicitudes que no aportan valor o que afectan el presupuesto y el calendario.
- 📉 El valor de los requerimientos yace en la calidad y no en la cantidad; menos funciones a veces pueden ser más efectivas.
- 📈 La especificación se convierte en la guía para el equipo de desarrollo, asegurando que se construye lo que realmente se necesita.
- ⏳ Los requerimientos son dinámicos y deben ser validados y actualizados a lo largo del proceso de desarrollo para adaptarse a los cambios.
Q & A
¿Qué es la ingeniería de requerimientos y qué actividades implica?
-La ingeniería de requerimientos es un conjunto de actividades diseñadas para desarrollar soluciones extraordinarias. Incluye la definición de lo que un sistema de software debe hacer, la especificación de las restricciones en su operación e implementación, y comprender las necesidades de los usuarios.
¿Por qué son importantes los requerimientos en el desarrollo de software?
-Los requerimientos son importantes porque son la base del éxito o del fracaso de un proyecto. Sirven como guía para comprender las necesidades de los usuarios y especifican las funciones del producto a desarrollar, así como otros atributos como el rendimiento, la seguridad y la confiabilidad.
¿Qué es el 'Design Thinking' y cómo se relaciona con la ingeniería de requerimientos?
-El 'Design Thinking' es un enfoque que se centra en la empatía hacia los usuarios para comprender sus necesidades y encontrar soluciones a sus problemas. En la ingeniería de requerimientos, se utiliza para ponerse en los zapatos de los clientes y usuarios, lo que permite una mejor comprensión de sus situaciones y necesidades.
¿Cómo afecta la falta de empatía en el proceso de recolección de requerimientos?
-La falta de empatía puede llevar a malentendidos y soluciones incorrectas, ya que no se toma en cuenta la perspectiva y las necesidades reales de los usuarios. Esto puede resultar en un producto que no satisface las expectativas del cliente o que no resuelve los problemas que pretendía.
¿Qué tipo de información se encuentra en los requerimientos?
-Los requerimientos incluyen información sobre quiénes son los usuarios, sus intereses y prioridades, características del ambiente de operación, restricciones tecnológicas, y decisiones de tecnología que se utilizarán en la construcción del software.
¿Cómo es el impacto de una mala especificación de requerimientos en un proyecto de software?
-Una mala especificación de requerimientos puede causar el fracaso de un proyecto, ya sea porque no se comprenden adecuadamente las necesidades del usuario o porque no se manejan adecuadamente los cambios durante el desarrollo.
¿Por qué es importante proteger al usuario de sí mismo en el proceso de requerimientos?
-Es importante proteger al usuario de sí mismo para evitar que, al familiarizarse con el lenguaje técnico o al ser expuesto a información externa, solicite funciones o características que no son necesarias o que no aportan valor al producto, lo que podría afectar el calendario, el presupuesto y la calidad del proyecto.
¿Cómo debe ser la relación entre un ingeniero de software y los stakeholders durante el proceso de requerimientos?
-El ingeniero de software debe establecer una relación de empatía y comprensión con los stakeholders, entendiendo sus problemas y necesidades para poder desarrollar soluciones que realmente les aporten valor.
¿Qué es la 'campanita' a la que se refiere el script y por qué es importante hacer clic en ella?
-La 'campanita' es una metáfora para la opción de suscripción a notificaciones de un canal de video. Es importante hacer clic en ella para recibir actualizaciones y notificaciones cuando se publiquen nuevos videos relacionados con la serie.
¿Cuál es la importancia de la calidad sobre la cantidad en los requerimientos?
-La calidad es más importante que la cantidad en los requerimientos porque requerimientos breves y concisos son más fáciles de entender y aplicar, lo que conduce a un producto de mayor valor y calidad en lugar de una acumulación de funciones que no son necesararias.
¿Por qué los ingenieros de software a menudo se enfocan en la tecnología antes que en el problema a resolver?
-Los ingenieros de software a menudo se enfocan en la tecnología debido a su naturaleza tecnológica y la excitación por las nuevas herramientas y soluciones. Sin embargo, este enfoque puede llevar a soluciones que no son las más adecuadas para el problema real que enfrentan los usuarios.
¿Qué se discutirá en el próximo video de la serie?
-En el próximo video de la serie se discutirán los diferentes niveles de requerimientos que existen y sus tipos, profundizando en la estructura y la importancia de cada uno en el desarrollo de soluciones de software.
Outlines
😀 Introducción a la ingeniería de requerimientos
Este primer párrafo introduce la serie de videos sobre cómo deleitar a los usuarios a través de la ingeniería de requerimientos. Se menciona que los requerimientos son fundamentales para entender las necesidades de los usuarios y especificar las funciones del software. Se destaca la importancia de estos en el éxito de un proyecto y cómo la mala especificación o el mal manejo de cambios puede llevar al fracaso. Además, se habla sobre las actividades que componen el proceso de ingeniería de requerimientos, como la recolección de información, análisis, especificación y validación.
🤔 La importancia de la empatía en la recolección de requerimientos
El segundo párrafo aborda la importancia de la empatía en el proceso de recolección de requerimientos. Se cuestiona la afirmación de que los clientes no saben lo que quieren y se sugiere que, en lugar de preguntar directamente lo que desean, se debe entender su situación actual y sus problemas. Se hace hincapié en la necesidad de conocer a los usuarios y sus objetivos para poder proponer soluciones efectivas. También se menciona que no todos los usuarios son stakeholders y que es crucial identificar a quienes tienen problemas que se puedan resolver. Se destaca la importancia de proteger al usuario de sí mismo y de seleccionar la información útil para el desarrollo del producto.
🛠️ La ingeniería de requerimientos como arte de simplificar
En el tercer párrafo, se concluye la serie destacando que la ingeniería de requerimientos es más una cuestión de empatía que de especificación técnica. Se enfatiza que la primera tarea es trabajar para descubrir y entender las necesidades reales de los clientes. Se sugiere que los requerimientos más breves y concisos aportan mayor valor en lugar de una cantidad grande. Se anima a los espectadores a suscribirse y a esperar el próximo video, el cual tratará sobre los diferentes niveles y tipos de requerimientos.
Mindmap
Keywords
💡Requerimientos
💡Ingeniería de Requerimientos
💡Empatía
💡Stakeholders
💡Validación
💡Tecnología
💡Design Thinking
💡Restricciones
💡Cambios
💡Soluciones de Valor
💡Calidad
Highlights
La importancia de la ingeniería de requerimientos para desarrollar soluciones extraordinarias en el software.
Los requerimientos son una guía para comprender las necesidades de los usuarios y especificar las funciones del producto.
La descripción de los atributos del sistema de software, como el desempeño, seguridad y confiabilidad.
La información de los usuarios, sus intereses y prioridades, que se encuentra en los requerimientos.
La consideración de restricciones tecnológicas y decisiones de tecnología en la construcción del software.
El proceso de recolección de información, análisis, especificación y validación en la ingeniería de requerimientos.
La necesidad de alinear las prioridades y encontrar las funciones que aporten valor a todos los stakeholders.
El impacto de una mala especificación o manejo inadecuado de los cambios en los requerimientos en el éxito del proyecto.
La empatía como el primer paso en el proceso de requerimientos, entendiendo las necesidades de los clientes.
La importancia de conocer a los usuarios y sus objetivos para proponer soluciones efectivas.
La tendencia a priorizar la tecnología antes de entender completamente el problema y su impacto en la solución.
La labor de proteger al usuario de sí mismo, evitando solicitudes no esenciales o que no aporten valor.
La habilidad de seleccionar información útil y descartar lo no necesario para mejorar la calidad de la solución.
El arte de la ingeniería de requerimientos como el de quitar más que de agregar para maximizar el valor.
La brevedad y concisión de los requerimientos como factores clave para una mayor calidad en lugar de la cantidad.
El enfoque en la empatía y la interacción con los usuarios para descubrir y entender sus necesidades reales.
La importancia de la ingeniería de requerimientos para encontrar el producto correcto y establecer la base del éxito del proyecto.
La próxima parte de la serie se centrará en los diferentes niveles y tipos de requerimientos.
Transcripts
es hora de ir con el cliente para ver
qué es lo que quiere
ya estoy listo tengo mi cuaderno y mi
pluma beat qué otra cosa puedo necesitar
si la escena anterior te es muy familiar
este vídeo te interesa
[Música]
bienvenido a la serie como deleitar a
tus usuarios en la que vamos a hablar de
ingeniería de requerimientos un conjunto
de actividades que nos llevarán a
desarrollar soluciones extraordinarias
es una serie de 7 vídeos en este primero
te hablaré de qué son los requerimientos
cuáles son las actividades involucradas
su importancia y el propósito de
hacerlos en los siguientes vamos a
hablar de los tipos y niveles de
requerimientos de cómo obtener la
información de los usuarios de cómo
analizar y entender esta información
cómo especificar nuestros requerimientos
como validar nuestras propuestas de
solución y cómo funciona el proceso en
diferentes tipos de proyectos asegúrate
de estar suscrito al canal y darle click
a la campanita para recibir las
notificaciones cuando aparezcan todos
los vídeos vamos a entrar en materia
qué son los requerimientos
son una definición de lo que un sistema
de software debe hacer y una
especificación de las restricciones en
su operación e implementación los
requerimientos son la guía para
comprender las necesidades de los
usuarios con respecto al software y
especifican las funciones que se deben
de encontrar en el producto a
desarrollar para satisfacerlas además
describen otros atributos que se
encuentran en los sistemas como el
desempeño la seguridad la confiabilidad
la disponibilidad entre otros en los
requerimientos encontramos la
información de quiénes son nuestros
usuarios sus intereses y sus prioridades
también están descritas características
del ambiente de operación que nos ayudan
a conocer la ubicación física de
nuestros usuarios y los otros sistemas
de software y hardware que estarán
usando a la par que nuestro sistema con
los que debemos de interactuar en los
requerimientos entendemos cómo son las
actividades que vamos a apoyar con
software y cómo se deberían de hacer en
un sistema de información
además encontraremos información acerca
de restricciones tecnológicas que
debemos considerar como si los clientes
tienen hardware que será usado
obligatoriamente o si existen
limitaciones en presupuestos que no
permitan usar algunos dispositivos o
tecnología
por último decisiones de tecnología que
será usada en la construcción del
software las actividades que se hacen
para esto son ilícitas que son las
tareas orientadas a la recolección de
información por parte de los usuarios
análisis tareas orientadas al
entendimiento de las necesidades de los
usuarios y sus posibles soluciones
especificación las tareas orientadas a
establecer de forma clara y concisa no
ambigua y completa cuáles son las
necesidades a resolver y las funciones
que deben estar presentes en la solución
validación tareas cuyo propósito es
aprobar o descartar las propuestas de
solución
[Música]
como ingenieros de software tenemos la
labor de desarrollar soluciones
tecnológicas que aporten valor a
nuestros usuarios y este valor se
obtiene cuando tenemos el producto
correcto la importancia de los
requerimientos reside en poder encontrar
este producto y constituyen la base del
éxito o del fracaso de un proyecto de
acuerdo al standish group el proceso de
requerimientos suele ser una causa del
fracaso de los requerimientos ya sea por
una mala especificación o un manejo
inadecuado de los cambios que éstos se
incluyen torpemente y afecten el
calendario las prioridades y la calidad
de lo que ya se está realizando la
ingeniería de requerimientos es la
capacidad que tienen los equipos de
software para entender y encontrar las
necesidades de sus stakeholders alinear
las prioridades contrarias que tienen y
encontrar las funciones que le darán
valor a todos
sin esta capacidad los equipos van a
encontrar dificultades durante el
desarrollo y tardarán mucho en darse
cuenta que están desarrollando la
solución incorrecta
[Música]
probablemente te resulta conocida esta
escena ya han pasado varios meses y no
hemos podido hacer el plan del proyecto
además hace varios días que no vas con
el cliente es que no tiene caso siempre
que voy acabo frustrado porque nunca me
dice que quiere el cliente no sabe ni lo
que quiere el cliente no sabe lo que
quiere es una expresión común entre
muchos que nos dedicamos al desarrollo
de software a esas personas yo les digo
es que si el cliente realmente supiera
lo que quiere en términos técnicos no
nos necesitarían y nos contrataría para
hacer el producto lo harían ellos mismos
este pensamiento surge de una falta de
empatía y me declaro culpable de haber
pensado así antes un proceso de
requerimientos no debe de empezar
preguntando qué es lo que quieres sino
con una pregunta que nos haga saber cómo
estás hoy cómo te encuentras que
situaciones quieres qué situaciones
puedes hacer cuáles son tus objetivos
cuáles son tus deseos
qué te gustaría estar haciendo el día de
hoy y todavía no puedes hacerlo es decir
ponernos en los zapatos de las personas
de los clientes de los usuarios
conocerlos entenderlos ellos diariamente
realizan actividades fácil o
difícilmente tienen algunos objetivos y
a veces se encuentran dificultades para
alcanzarlos nosotros debemos de
comprender eso nosotros debemos de
conocer su situación actual y cómo
podemos llevarlos a una situación ideal
pero partiendo de la base de que hay que
entender cómo están el día de hoy cuáles
problemas tienen y principalmente
quiénes son los dueños de esos problemas
no todos los usuarios son nuestros
stakeholders aquellos que realmente
tienen un problema y nosotros les se los
podemos resolver
quienes nos darán la mejor información y
nos ayudarán a validar esta solución
primero debemos ponernos en los zapatos
de nuestros usuarios en el método de
design thinking lo primero que hacemos
es empatía es decir entender una
necesidad con base en una situación
actual y con ello proponer o encontrar
soluciones para esas dificultades nunca
debemos de olvidar algo nuestro trabajo
beneficia e impacta a personas nosotros
desarrollamos soluciones para personas y
entendiendo eso podremos tener
y entendiendo eso podremos saber cuál es
el impacto que tienen las decisiones de
desarrollo que tomamos tanto las buenas
como las malas como gremio tenemos la
tendencia a pensar primero en la
tecnología nos encanta cuando estamos
ante un nuevo proyecto lo primero que
queremos pensar es cuáles son las
tecnologías excitantes que vamos a
escoger para trabajar y ya pensamos en
una solución antes de entender el
problema alto lo que debemos de hacer
primero es conocer a las personas
ponernos en sus zapatos estas personas
son tus stakeholders
ellos te darán la información y te
ayudarán a validar y entender que la
solución realmente les está aportando
valor con base en el entendimiento de la
situación actual de nuestros usuarios es
que podemos empezar a proponer
soluciones para sus problemáticas
esta especificación se convierte en la
guía de lo que el equipo debe de
construir sin esta guía el equipo
empezará a trabajar sin tener la
seguridad de que lo que hace realmente
nos llevará al estado deseado y
probablemente tarde mucho en saberlo
otra de las labores importantes del
trabajo de requerimientos consiste en
proteger al usuario de sí mismo
verás cuando el usuario y el cliente
comienza a familiarizarse con el
lenguaje técnico a ver el producto o se
expone a información del exterior
empieza a solicitar cosas que no son tan
necesarias porque consideran necesitar
pero no es así por ejemplo que haya
escuchado que uno de sus colegas uno de
sus amigos le instalaron una nube y
ahora quiere una sin entender lo que es
o que pide situaciones estéticas como
que todas las pantallas sean animadas
cuando se abran porque sería muy
divertido para los usuarios nuestra
labor consiste en
analizar y recibir los cambios pero
también explicarle qué impacto tiene
cada una de las decisiones y cambios de
las solicitudes que hace principalmente
si algunas de ellas no están orientadas
a aportar valor o presentan alguna
incidencia con las restricciones del
proyecto con el tiempo el calendario y
el presupuesto debemos de ser capaces de
decirle al cliente que aunque lo que
pide es posible probablemente no esté en
la escala de valor y prioridades que se
habían establecido o que alguna de ellas
requiere un esfuerzo de trabajo tan
grande que postergará otras funciones
que aportan mayor valor como esta es la
guía del producto que debemos de
desarrollar también nos sirve para
limitarnos a nosotros como
desarrolladores que siendo nuestra
naturaleza tan tecnológica no debemos de
caer en una situación como la del chavo
del ocho'
y lo vamos a montar en 15.000 servidores
y le vamos a poner una interfaz que sea
responsiva para los celulares para las
computadoras para todos los navegadores
para que se vea también en el
refrigerador
y que le mande notificaciones a su
estufa y horno de microondas la
capacidad de desarrollar requerimientos
consiste también en poder seleccionar
aquella información que es útil y quitar
toda la que no te dejó esta frase la
ingeniería de requerimientos es el arte
de quitar no de poner tu producto y tu
solución serán más valiosas conforme
resuelvan más problemas no conforme le
pongas más funciones al contrario a
veces menos funciones tendrán mejores
resultados que muchas más
[Música]
en conclusión las actividades de
requerimientos tienen más que ver con la
empatía que con la especificación
técnica claro está la segunda es
importante y debe hacerse pero nuestra
primera labor es trabajar para descubrir
y entender una necesidad real de
nuestros clientes a través de
interacciones que nos permitan encontrar
qué es lo que les dará mayor beneficio y
tendrá mayor impacto en ellos recuerda
siempre la empatía en el trabajo de
requerimientos para estar en el lugar de
tus usuarios ver las cosas desde su
perspectiva y entender qué solución les
ayudará mejor también recuerda que los
requerimientos
mientras más breves y concisos darán
mayor valor calidad en lugar de cantidad
en el siguiente vídeo hablaremos de los
diferentes niveles de requerimientos que
existen y también de sus tipos asegúrate
de estar suscrito al canal y darle click
a la campanita para recibir la
notificación
te espero entonces
[Música]
5.0 / 5 (0 votes)