¿Qué es Ingeniería de Software? Una explicación haciendo Pizza

Es una pregunta común que muchos estudiantes de Ingeniería de Software o Ciencias de la Computación se podrían hacer. Aunque para ser honesto, cualquier persona con cierta curiosidad sobre tecnología o sistemas de software podría también preguntar. En este post, voy a tratar de definir este concepto usando un enfoque alternativo: por analogía.

Yo soy de Perú y por supuesto, me encanta la comida peruana. En mi opinión la cocina peruana es una de las mejores  del mundo, aunque podría no ser muy imparcial mi opinión. Actualmente estoy viviendo en el Reino Unido en una hermosa ciudad: Birmingham. Inicié mis estudios de doctorado en Enero y hace unos días traté de cocinar un plato peruano, pero cuando fui a buscar los ingredientes en el Bull Ring indoor market, descubrí que no todos estaban disponibles. Decidí entonces preparar algo un poquito más internacional:¡una pizza!

En realidad, yo nunca fui bueno en la cocina, siempre fui mejor saboreando  que cocinando, pero el vivir solo en un país diferente me está permitiendo experimentar o al menos tratar de descubrir nuevas habilidades ocultas.

Definitivamente cuando cocino prefiero ser guiado por mi instinto, sin usar ninguna medida y realmente disfruto esparciendo un poquito de sal, pimienta o comino en mis platos; y cuando siento que no es suficiente simplemente agrego un poco más.

Bueno, empecemos con la pizza. Sabía que tenía casi todos los ingredientes, solo no tenía la 'yeast' (¡si! aprendí a decir ‘levadura’ en inglés) y la compré. Apliqué mi ‘famoso’ enfoque: por instinto y rápidamente revisé un video en youtube, también encontré una receta en la web y seguí las indicaciones generales: empecé a mezclar la levadura, sal, aceite de oliva, agua y harina.

Luego empecé a preparar los complementos, donde los tomates y el queso fueron los ingredientes estrella. Finalmente coloqué los complementos sobre la masa de la pizza y después de aproximadamente 15 minutos en el horno obtuve mi primera pizza hecha en casa. 

Para ser la primera vez, no estuvo tan mal: el sabor fue bueno aunque necesito mejorar la apariencia. Me motivé con el primer resultado y preparé otra pizza siguiendo los pasos que me acordaba, pero esta vez el sabor no fue tan bueno y la quemé 'un poquito'. Esta experiencia me permitió aprender que con mi enfoque a veces puedo obtener buenos resultados, pero otras, no. Entonces ¿Qué puedo hacer?

Ahora estoy aplicando un enfoque diferente:  ahora estoy usando métricas.  Por ejemplo,  una cucharita de té, una balanza pequeña y algunos pasos básicos para cocinar me están ayudando a preparar mejores platos y más importante aún, de manera sostenible.  No es perfecto pero al menos ahora la pizza que preparo un día, puede ser tan buena como la que haga cualquier otro día.

Pero, ¿Qué tiene que ver esto con Ingeniería de Software?  La Ingeniería de Software se relaciona con mi segundo enfoque para cocinar, es un conjunto de buenas prácticas, métodos, métricas e incluso estructuras (la estructura de  un software es la arquitectura de software) que nos permiten desarrollar software con calidad, es decir, cuando un sistema de software:
  • Es económicamente viable (Soy ahora un estudiante y quería comer pizza, pero como no tenía mucho dinero para gastar, ¡decidí prepararla yo mismo¡)
  • Está dentro de un tiempo y presupuestos predefinidos (Como tenía un 'poquito de hambre', establecí mi propio deadline: ¡no más de 45 minutos para preparar mi primera pizza!)
  • y funciona correctamente.  En otras palabras, satisface todas las expectativas (requerimientos) para los cuales fue creado (Felizmente, yo fui 'mi propio cliente' y mi principal preocupación fue el sabor más que la apariencia, pero si invitara a mis amigos, estoy seguro cambiarían mis expectativas)
Solo usando Ingeniería de Software podemos garantizar que todos nuestros desarrollos de software tengan una calidad estándar, una mejor calidad; al menos mejor  de la que cuando yo traté de preparar mi pizza.

Popular Posts

Like us on Facebook

Flickr Images