Tu software siempre full
ver más
Ya han pasado más de 50 años desde la primera Conferencia IFIP sobre Ingeniería del Software, y en ese tiempo se han propuesto muchas metodologías, procesos y modelos de ingeniería del software diferentes para ayudar a los desarrolladores de software a lograr ese proceso predecible y rentable. Pero 50 años después, parece que seguimos viendo los mismos tipos de problemas de siempre: entregas tardías, resultados insatisfactorios y fracasos completos de los proyectos.
Tomemos como ejemplo un contrato gubernamental en el que trabajé hace años. Es, sin duda, el proyecto más exitoso en el que he trabajado, al menos desde el punto de vista de las métricas habituales de gestión de proyectos: se completó antes de tiempo, se completó por debajo del presupuesto y completó una prueba de aceptación programada de un mes de duración en tres días.
Este proyecto se llevó a cabo con algunas limitaciones inusuales: el contrato se denominó y se pagó en una moneda extranjera y fue absolutamente firme a precio fijo, sin ningún proceso de gestión de cambios en el contrato. De hecho, como parte del contrato, la prueba de aceptación se planteó como una serie de pruebas observables, de tipo «haz esto» y «sigue esto», que se podían marcar, con un sí o un no, con muy poco margen de disputa. Debido a las condiciones del contrato, todo el riesgo de cualquier variación en los requisitos o en los tipos de cambio recaía en mi empresa.
salario de ingeniero de software full stack
Imagina que estás comparando los currículos de dos desarrolladores de software: El desarrollador A y el desarrollador B. Ambos candidatos tienen una formación y unas habilidades casi idénticas: lenguajes, marcos de trabajo, plataformas, metodologías, industrias, etc. Son prácticamente la misma persona, sobre el papel. Sin embargo, hay ciertas cosas que podrían indicar que el Dev A probablemente tendrá mucho más éxito en su carrera que el Dev B, según cualquier medida. ¿Cómo se calcula esto?
Resulta que las habilidades técnicas y la experiencia sólo te llevan hasta cierto punto. Los desarrolladores de software de gran éxito también cultivan características críticas de comportamiento y mentalidad que los distinguen de la multitud. Preguntamos a varios profesionales del software sobre los hábitos y rasgos que separan a los grandes desarrolladores del resto del grupo. Y nos dieron 10 hábitos que predicen el éxito:
Hay muchas maneras de escribir un código limpio que sea más fácil de reutilizar, leer y probar, pero, independientemente del método, es una característica cada vez más crucial del desarrollo de software de alta calidad. Andrew Magee, director de desarrollo de software de Enigma Digital, con sede en el Reino Unido, ofrece este punto de partida: asignar sólo un propósito a cada función.
cómo mejorar las habilidades de software
En un intento de explicar por qué esto es así, a continuación expongo 7 razones por las que el desarrollo de software es muy difícil. Esto no es un intento de aprobar las prácticas de desarrollo de software de mala calidad. Más bien, trato de mostrar que incluso con excelentes procesos de desarrollo
Los humanos han estado construyendo casas, carreteras y puentes durante miles de años. No tenemos ni idea de cuántas casas o puentes se derrumbaron en los primeros tiempos cuando los humanos aprendieron las técnicas correctas para construir estas estructuras.
En comparación, la industria del software sólo tiene unos 50 años. Todavía nos queda un largo camino por recorrer antes de tener la experiencia que tienen las industrias de la construcción y la fabricación.
Por otra parte, la industria del software no tiene la gama de componentes preconstruidos que tienen otras industrias. Los sistemas de software se construyen fundamentalmente mediante un proceso de descubrimiento, invención y creación de nuevos componentes con el resultado de que cada nueva
Cada línea de código tendrá docenas, incluso miles, de posibles entradas, salidas, estados o dependencias que tratar. Puede afectar, o ser afectada, por otras líneas de código o por factores externos. Incluso si fuera posible documentar cada caso de prueba de un
hackerrank
El software puede desarrollarse para una variedad de propósitos. Los tres propósitos más comunes [según quién] son: satisfacer las necesidades específicas de un cliente u organización concreta (conocido como software a medida),[cita requerida] satisfacer una necesidad percibida de algún conjunto de usuarios potenciales (conocido como software comercial ),[cita requerida] o para uso personal (por ejemplo, un científico puede escribir software para automatizar una tarea mundana).[cita requerida] El desarrollo de software embebido, es decir, el desarrollo de software embebido, como el que se utiliza para controlar los productos de consumo, requiere que el proceso de desarrollo esté integrado con el desarrollo del producto físico controlado. El software de sistema subyace a las aplicaciones y al propio proceso de programación, y a menudo se desarrolla por separado.
Existen muchos enfoques para la gestión de proyectos de software, conocidos como modelos, metodologías, procesos o modelos de ciclo de vida de desarrollo de software. El modelo en cascada es una versión tradicional, que contrasta con la innovación más reciente del desarrollo ágil de software[cita requerida] Aunque a menudo se utiliza como sinónimo intercambiable de «desarrollo de software», el término «ingeniería de software» también se utiliza para referirse a un enfoque particular del desarrollo de software, que utiliza métodos de ingeniería y en algunos casos implica cualificaciones profesionales de ingeniería.
Relacionados
Bienvenid@ a mi blog, soy Octavio Pérez Alonso y te ofrezco noticias de actualidad.
Comments are closed