← Ir a portada

Reflexiones sobre la ingeniería de software

Una breve reflexión para ampliar la definición que dí en un post anterior sobre qué podía ser para mí un Ingeniero de Software.

Si la Ingeniería del Software se centra en producir software maximizando la calidad y minimizando el coste:

¿Qué es minimizar el coste?

 

  1. Minimizaciones que afectan al código:
    • Robusto: que un cambio en un sitio del código no me haga perder el tiempo cambiando cosas en un montón de sitios más.
    • Flexible: que el mismo código me sirva para diferentes cosas y no tenga que perder el tiempo en programar cosas que, aunque no sean iguales, son parecidas.
    • Encapsulación y reutilización: que sepa qué clase hace qué cosa y pueda reutilizarlas en diferentes ocasiones y no perder el tiempo en escribir código que hace lo mismo una y otra vez.
    • Mantenible: que no tenga que perder mucho tiempo buscando dónde está el fallo.
  2. Minimizaciones que afectan a las personas
    • Gestión de proyectos: una buena comunicación en el equipo de desarrollo puede evitar perder el tiempo en saber quién ha hecho qué o cómo lo ha hecho.
    • Captura de requisitos: que sepa claramente qué me pide el cliente y no le presente cosas que no se adaptan a lo que el quería, teniendo que perder el tiempo en reprogramarlas.

¿Qué es maximizar la calidad?

 

  1. Usabilidad: el software es mejor cuanto más fácil es de usar.
  2. Accesibilidad: el software es mejor si está preparado para las personas discapacitadas o para que se acceda a él desde dispositivos más diversos.
  3. SEO: una web es mejor si se posiciona mejor en google y tiene más visitas.
  4. QA: Control de calidad: el software es mejor cuanto más podemos asegurar que está libre de errores.
  5. Escalable: el software es mejor cuanto mejor responde a una mayor cantidad de usuarios.
  6. Apariencia y diseño: el software es mejor cuanto más bonito es.
  7. Backups: el software es mejor cuanto mejor garantice que no se pierden datos.

Apuntes relacionados:

4 Respuestas a “Reflexiones sobre la ingeniería de software”

  1. maeghith dice:

    Estoy de acuerdo en las de maximizar la calidad, pero no exactamente en las primeras.

    El caso es que me ha recordado al triángulo que algunos aplican a la hora de hacer un proyecto: tiempo-precio-calidad, donde al elegir 2 esquinas se excluye la tercera (p.ej.: si quieres un proyecto barato y bueno va a tardar en hacerse; o rápido y barato excluyen calidad, etc…)

    Sólo que cuando dices minimizar costo, pones medidas para reducir el tiempo (no el precio).

  2. Luis Artola dice:

    Hola maeghith!!
    “dices minimizar costo, pones medidas para reducir el tiempo, no el precio” –> para mí existe una relación directa entre tiempo y precio en el desarrollo de software. Mi manera de calcular cuanto va a costar un desarrollo suele ser multiplicar el número de programadores por el número de horas y por el precio por hora…

    Cuantas menos horas tarden más barato (por supuesto, esto admite muchos matices… pero básicamente esa es la idea.)

  3. Hola junto con un compañero estamos desarrollando un trabajo sobre la captura de requerimientos, naturalmente este tema es vital para poder desarrollar un buen software.
    Te invito a que leas los objetivos propuesto del blog, para que lo relaciones con lo que debería contar un ingeniero de software, ya que desde mi punto de vista estás dejando una serie de habilidades blandas para la captura de requerimientos que no están en la teoría, y sin embargo en la práctica son tan importantes como las las características aquí descritas.
    saludos

  4. [...] una vez la ingeniería del software es aquel conocimiento específico que busca maximizar la calidad del software y minimizar su coste. Siguiendo con esa misma idea: ¿Cómo se podría maximizar la calidad del código escrito [...]

Deja un comentario