El Blog de Pablo Fernando Sanchez

Esta es mi bitácora personal, en la cual trato, sin limitarme a ello, sobre ingeniería de software, ingeniería de sistemas, gestión estratégica, modelado de procesos, metodología, aseguramiento de la calidad, gestión del conocimiento y todos esos asuntos que hacen, desde la gerencia y la técnica, a las empresas que asesoro.

Herramientas

KPI Dashboard

Blogs Amigos

En Otros Blogs

Estas son algunas entradas en otros blogs inscriptos en Bitacoras.com en las cuales me citan:

Como preámbulo, una aclaración. Si bien en mi título académico no dice «Ingeniero de Software», me permito considerarme uno por mis años de experiencia en esta disciplina. Por lo tanto, enfoco este artículo hablándonos a los que ejercemos esta profesión.

Ahora bien... Reconozcamos algo: el software es un producto. Esto, que a primera vista parece obvio y que queda claro incluso en material de referencia básico de Ingeniería de Software —como el libro «Software Engineering: A Practitioner's Approach» de Roger Pressman, por citar uno—, no resulta tan obvio para muchos si vemos algunas piezas de software que pululan por allí...

En general —si bien, como expresa el dicho, «toda generalización es mala, incluso ésta»—, los desarrolladores de software no suelen ver al software como producto... al menos no desde el principio. Tal vez, con la buena guía de personas experimentadas o con muchos años encima, puede ser que sí. Pero no desde el principio. La academia debería dar este enfoque, pues no todo es perderse en cuestiones estrictamente técnicas —al menos, en términos computacionales.

Para esto suelen ser buenos los Analistas de Sistemas —he sido uno de ellos hace unos cuantos años— o, mejor aún, los Diseñadores Industriales orientados a la Informática —he tenido el gusto de trabajar con algunos de ellos. Los primeros porque, si ejercen bien su profesión, ven al software como una herramienta que apoya al sistema. Los segundos, porque debido a su propia profesión ven al software como producto y los que tenemos experiencia en el asunto no tenemos que andar explicándoles esta obviedad. No digo que los Ingenieros de Software no podamos ser también buenos en esto, pero lo cierto es que vaya uno a saber por qué extraña razón, solemos estar más orientados a pensar en el software como software, ese conjunto de modelos, código y documentación varia, sin olvidar la metodología, dejando muchas veces en un segundo plano lo que más importa...

En ambos casos, Analistas de Sistemas y Diseñadores Industriales orientados a la Informática, suelen hacer estudios con distintos enfoques metodológicos para comprender el entorno en el cual el software operará y, lo que es más importante aún, quién lo va a usar. Sí señores, el famoso... ¡usuario!

Tal vez la característica más clara de quien diseña una pieza de software bien hecha, es que jamás pierde de vista a quien, en definitiva, operará —o sufrirá, depende del caso— el software. ¿Dónde lo operará? ¿Estará haciendo algo mientras vaya a operarlo? ¿Qué? ¿Podrá operarlo en una forma que consideramos tradicional o tendríamos que pensar en alternativas de interacción con el mismo? Y otra serie de preguntas que apuntan en el mismo sentido: lo que podríamos calificar como «diseño enfocado en el usuario».

Los Ingenieros de Software deberíamos tomar algunos buenos lineamientos del dominio de esta gente. Por ejemplo, podríamos dejar de pensar en algo etiquetado como «diseño de interfaz gráfica de usuario» y reemplazarlo por algo que llamaríamos «diseño de interacción». ¿Quién dijo que siempre la mejor solución es implementar una interfaz gráfica de usuario? Puedo mencionar un sinnúmero de ejemplos en los cuales esto no sería eficiente. Nosotros deberíamos detectar estas cuestiones, y no vale decir que «el usuario no me lo dijo».

Tenemos que salir de la caja y borrar el preconcepto de que la forma de interactuar con el software es una combinación de monitor, teclado y mouse. Se puede ir más allá. Se debe ir más allá. Hay muchas otras alternativas y, si no hay ninguna que satisfaga las necesidades de los usuarios, deberíamos ser lo suficientemente creativos como para idearla o colaborar en idearla —después de todo, somos «Ingenieros» y de eso se trata... Nuestra obligación profesional es trabajar para ayudar a los usuarios a que cumplan con su cometido en una mejor forma —eso es calidad—, y no complicarles la vida... Nuestro compromiso con el usuario debe manifestarse en términos de usabilidad.

Para ir terminando, los dejo con una recomendación casi obvia para el caso. Se trata del ya viejo libro «The Inmates are Running the Asylum» —que han traducido al castellano como «Presos de la Tecnología»— de Alan Cooper, excelente tanto para gente de Computación como para el conjunto de tomadores de decisiones de las empresas. Es, para mi gusto, un imprescindible para la biblioteca de todo Ingeniero de Software.

3 comentarios

  1. Jorge Ubeda  

    La Real Academia da como primera acepción de producto: "cosa producida", que es a la acepción que apuntas: pensar no sólo en el proceso de construcción o en la colección de objetos que componen el resultado, sino en el producto terminado en manos de su usuario. Una segunda acepción que da Wikipedia es el de objeto comercial: "En marketing, un producto es cualquier objeto que puede ser ofrecido a un mercado que pueda satisfacer un deseo o una necesidad. Sin embargo, es mucho más que un objeto físico. Es un completo conjunto de beneficios o satisfacciones que los consumidores perciben que obtienen cuando lo compran es la suma de los atributos físicos, sicológicos, simbólicos y de servicio". También es parte de lo que apuntas, pero recordando que hay aspectos adicionales que deben ser tenidos en cuenta al pensar el producto software.
    Y se deriva de aquí una tercera vista, que es ver al software como producto industrial, que debe ser construído siguiendo normas "industriales". Esta suele ser la visión más revulsiva para los desarrolladores, que suele conducir a una disyuntiva entre arte e industria, o libertad creativa y rutina industrial. Aquí hay una cantera para acometer...

  2. Pablo Fernando Sanchez  

    Jorge: Muchas gracias por tu valioso comentario, con el que estoy de acuerdo. Precisamente, en una conferencia que daré la semana entrante, enfocaré el tema del software como producto con un planteo similar, paneando los distintos enfoques. Y por otro lado, sí, definitivamente hay mucho para discutir en eso de "arte o industria". Quisiera comenzar a plantear debates al respecto en distintas universidades locales. Mi temor con este asunto es que se quede entre académicos y estudiantes —y, eventualmente, representantes del Estado—, y que no participen, por ejemplo, los egresados practicantes y empresarios. Sé de algunos empresarios que asesoro que sí participarían; será cuestión de iniciar junto a ellos y aprovechar el marco contencioso de una organización como IEEE para potenciar el asunto.

  3. Anónimo  

    Hola, encontré este artículo por casualidad. En mi opinión, programar software es un servicio y lo producido, es el producto, un software determinado. Este enlace aclara por qué un software es un producto y su entorno un servicio.

    http://discusionsl.wordpress.com/2010/06/05/%c2%bfun-software-es-un-servicio-yo-un-producto/

Publicar un comentario

Blog Widget by LinkWithin

Seguime

Suscribite al feed de mi blog Suscribite para recibir las actualizaciones de mi blog por correo electrónico Seguime en twitter

Seguidores

Etiquetas

Últimos Artículos

Herramientas

IBSN