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?
- 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.
- 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?
- Usabilidad: el software es mejor cuanto más fácil es de usar.
- Accesibilidad: el software es mejor si está preparado para las personas discapacitadas o para que se acceda a él desde dispositivos más diversos.
- SEO: una web es mejor si se posiciona mejor en google y tiene más visitas.
- QA: Control de calidad: el software es mejor cuanto más podemos asegurar que está libre de errores.
- Escalable: el software es mejor cuanto mejor responde a una mayor cantidad de usuarios.
- Apariencia y diseño: el software es mejor cuanto más bonito es.
Comentarios