En esta entrevista, Eduardo nos
cuenta la importancia de especificar requerimientos correctamente y
descomponer los problemas para resolverlos más fácilmente.
>> Hola Eduardo.
Bienvenido a esta unidad.
Contanos, ¿qué es lo que disfrutas más de las ciencias de la computación en general?
>> Pues yo creo que hoy particularmente la tecnología y las ciencias de la
computación parte de lo fascinante es la presencia que tiene hoy en nuestra vida
cotidiana, que tiene en nuestro trabajo, que tiene en nuestra vida personal,
la introducción de la tecnología en todas las cosas que hacemos y cómo en
definitiva las ciencias de la computación, la programación son la magia
que está por detrás de toda la tecnología que usamos durante todos los días.
>> ¿Y en particular de la programación?
>> Primero que nada creo que hay una parte que es fascinante y
es la capacidad de crear, ¿no?
Parte de lo que aprendemos cuando aprendemos a programar empezamos
a darnos cuenta que aprendemos a crear cosas que tienen su comportamiento que
funcionan de cierta forma, que podemos crear experiencias para gente,
para personas, para alguien más que a la hora de hacer algo se
encuentran con un programa, con una aplicación o con un servicio que
hace algo para satisfacer una necesidad o para un juego como entretenimiento.
Primero lo fascinante de lo que podemos hacer a la hora de lo que programamos.
Eso por un lado y por otro lado de cómo lo ves hacia adelante, en esto que
decíamos antes que la tecnología cada vez, cada vez forma más parte de lo que hacemos,
hay algo claro a nivel mundial y es cómo cada vez visitamos más programadores,
y programadores con diferentes tipos de conocimientos, no solamente diferentes
tipos de conocimientos en términos de qué tecnologías conocen, sino
de saber programar distintos tipos de cosas, desde aquellos que lo que saben
programar son aplicaciones tradicionales, los que saben programar juegos,
los que saben programar hardware, es decir pequeñas piezas, pequeños aparatos que
sepan hacer ciertas cosas, que se sepan comportar de distintas maneras.
Hoy en está en auge la programación de los drones,
esos pequeños helicópteros o cuadricópteros, poder programar eso,
poder programar robots o poder programar aplicaciones para dispositivos móviles,
entonces creo por un lado está lo fascinante de las cosas que podemos crear,
por otro lado está la diversidad y la necesidad de personas que sepan
programar para poder abastecer una enorme demanda de dispositivos,
aparatos, software programables.
>> En esta unidad discutimos sobre la especificación de requerimientos.
Contanos cómo hacen tu equipo y vos para recolectar requerimientos.
>> Lo de recolectar requerimientos es bien interesante porque por un lado hay una parte que es la
más natural que decís le pregunto a quién es mi cliente qué es lo que necesita.
Pero eso es sólo una parte de la historia porque hay muchas veces que el cliente o
el usuario realmente no sabe lo que necesita y tenemos que ir más allá de eso.
Y ahí es donde la observación de cómo trabaja el cliente o el usuario,
de cómo resuelve en forma cotidiana ciertas actividades para
nosotros entender cómo con tecnología podríamos resolver mejor eso.
Y como decía muchas veces,
el cliente no tiene la mejor respuesta de cómo se lo podría imaginar.
Somos nosotros los que tenemos en cierta forma la responsabilidad nosotros del lado
de las ciencias de la computación y del lado de la programación, tenemos la
responsabilidad de generar el vínculo entre una tarea que se realiza de
cierta forma y como la tecnología podría resolverla de forma mejor.
En ese espacio es que se generan los requerimientos más interesantes y
donde se generan los requerimientos que no sólo van a la
tecnología sino que van a generar las experiencias a los
usuarios adecuados para llevar adelante de la mejor forma su tarea.
>> ¿Y qué pasaría si los requerimientos no están bien especificados?
>> Es algo bastante común eso de que no estén bien especificados y
aquí suceden dos cosas,
o sea cuando efectivamente nos encontramos que no están bien especificados, eso a lo
que lleva es a frustración del lado del usuario y esa frustración se
traslada a nosotros como programadores o como proveedores de la tecnología.
Por eso que es tan importante así como hacer el trabajo de requerimientos,
es hacer los trabajos adecuados de validación, es decir estar frecuentemente
chequeando con el cliente de si tanto aquello que nos dijo como aquello que
nosotros nos imaginamos que necesitaba, estar constantemente lo que llamamos
iterando en esto funciona, esto no funciona, estar constantemente probando.
La observación es un atributo sumamente importante para lograr censar el avance
si vamos en la dirección adecuada y en definitiva poder validar si vamos en el
camino correcto y lo que estamos haciendo es lo correcto en etapas tempranas.
>> Luego que tenemos los requerimientos,
vimos que una de las cosas que hay que diseñar es la interfaz de usuario.
¿Qué deberíamos tener en cuenta?
>> Yo creo que tanto la interfaz,
inclusive me ampliaría un poquito en la experiencia del usuario como un todo.
Hoy cuando pensamos, y vamos a un escenario muy común que es el de los
dispositivos móviles, cuando pensamos en los dispositivos móviles pensamos sí en
la interfaz usuaria, en que sea atractiva visualmente, que es un atributo no menor,
es decir hoy un usuario puede elegir utilizar una aplicación versus otra,
una en lugar de otra porque es más atractiva visualmente,
porque los colores son mejores, porque el diseño es mejor,
entonces, por un lado el diseño de la interfaz de usuario,
por otro lado el diseño de la experiencia de usuario en términos de que sea intuitiva,
de que la navegación sea intuitiva, de que es fácil de utilizar y además de eso, el
pensar la experiencia del usuario desde el punto de vista de los recursos con los que contamos.
Y con esto me refiere es, si estamos con un dispositivo móvil, tenemos que saber que
contamos con capacidades que van más allá del touch de
la pantalla, eventualmente contamos con la capacidad de generar ciertos gestos y utilizar de
forma adecuada los pocos botones que tenga ese smartphone que estamos utilizando,
eventualmente utilizar la cámara, eventualmente utilizar el sensor de
luz para iluminar más la pantalla a la hora que voy a hacer ciertas acciones.
Con esto lo que quiero decir es que la interfaz de usuario y si lo amplío un poco
la experiencia del usuario, es parte del todo a la hora de contemplar al máximo cuáles son
las capacidades que tengo para ofrecer una mejor experiencia al usuario.