System Development Lyfe Cycle? En español por favor.

El System Development Lyfe Cycle, lo abreviaremos a SDLC, es el uso de metodologías en el desarrollo de software. ¿Metodologías? ¿Ciclos de vida? ¡¿QUÉ ESTA PASANDO DOCTOR GARCÍA?!

El desarrollo de software hace varios años era un desastre, al punto que varias veces en productos dentro del mercado era mas sencillo matarlo completamente a tratar de arreglarlo, hasta que los desarrolladores se dieron cuenta que era un caos y algo tenían que hacer, así como cuando ya vas a reprobar el semestre y empiezas de golpe a planificar y matarte mas o menos así. Muchos expertos comenzaron a estudiar las mejores metodologías para crear software, desde su planeación hasta su mantenimiento, incluso se creo uno de los documentos fundamentales de la Ingeniería de Software el famoso “No silver Bullets” que si tienes un tiempo vale mucho la pena leerlo, una de dos aprendes mucho o te ríes de las cosas que hacían antes de que esto se pensara detalladamente. Finalmente el SDLC es la base de todos los proyectos de cualquier software con pies y cabezas.

¿’Tons como jala o qué?

El SDLC no es único hay muchos estilos y cada uno se adapta mejor al tipo de desarrollador que eres o que tu equipo es. Cada uno varia pero en si nos basamos en dos cosas, las etapas y las metodologías. Las etapas varian en nombres y en numero pero independientemente de eso cada metodología cubre todos los aspectos necesarios, por lo general tienden a ser siete etapas:

  • Planeación: Manejo de recursos (Humanos y materiales), agenda del proyecto, estimación de costos, etc.
  • Requerimientos: Aquí se habla desde inversionistas hasta los conocimientos necesarios, dependiendo de la metodología terminas con una lista de recursos o tareas.
  • Diseño y prototipado: Comenzamos a programar y a diseñar, por lo general no se toma mucho esfuerzo se toma por lo general partes y soluciones ya hechas de otros proyectos (SO FTW!) y se termina con un prototipo muy similar al producto final.
  • Desarrollo de Software: Los desarrolladores trabajan en el producto final, esta etapa varia mucho entre metodologías ya que pueden basarse en tareas en bloques o tareas apresuradas y luego refinadas, también es importante estar en contacto con nuestros inversores para ver si sus expectativas se cumplen. Es parecido a cuando haces un dibujo, digamos que vamos a dibujar una persona donde podemos ir dibujando, pintando y detallando un brazo y luego repetimos con otra extremidad hasta terminar con el dibujo, o podemos hacer el contorno de todo el cuerpo, luego pintarlo y finalmente detallarlo. Este ejemplo es muy comun en este tema pero si no quedo claro mas adelante hablare un poco de los diferentes SDLC y quedara mas claro.
  • Testeo: Fundamental antes de publicarlo, revisar que tan pulido esta el producto usándolo y revisando su integridad, eficiencia, seguridad, etc. En esta parte lo mejor es que trates de usar de una manera incorrecta el software.
  • Despliegue?: En ingles es Deployment y no encontré una palabra que sonara mejor así que se queda en despliegue. Es la presentación del producto al mercado o al cliente, realmente depende esta etapa mas de los desarrolladores que de la metodología, esto se debe a que si eres una empresa grande es muy sencillo hacer la presentación del producto a si eres una pequeña.
  • Mantenimiento: Es seguramente la mas importante ya que un producto puede salir adelante incluso si todas las etapas anteriores salieron mal gracias a esta etapa, no se basa solo en asegurarse que el producto siga siendo utilizable durante un tiempo si no también en su mejora y corrección de errores. Mercados como el de los videojuegos trabajan mucho en esta etapa ya que es la que las mantiene casi siempre en el mercado, siendo uno de los casos mas comunes el de “Destiny” el cual es bastante interesante para investigar un poco si te dedicas al desarrollo de videojuegos.

¿Entonces cuales SDLG hay?

Realmente hay un numero infinito de SDLG por su propia naturaleza, hay aproximadamente seis que son los mas conocidos pero hay dos que me es muy sencillo decir que son los mas usados.

Waterfall: El modelo de cascada, para muchos es extremadamente rígido, para empezar el feedback no existe en este modelo por lo que no es posible cambiar ciertas cosas, se basa en un camino de planeación, desarrollo con mucho testeo y despliegue del software. Cada etapa dura bastante tiempo para así poder ser perfeccionada, lo malo es que no es posible regresar a etapas anteriores para hacer cambios. Hay una especie de modificación de esta que es la de salmón que te permite regresar en etapas y ser menos estricta, aun así el modelo de cascada sigue siendo mas utilizado.

Agile: Esta metodología es por así decirlo la contraparte de la cascada, busca enfocarse mas en prototipado y feedback, aquí el trabajo en equipo y con los inversores es clave para el refinamiento del producto, la planeación es mas abierta de modo que puede llegar a cambiar en caso de ser necesario, busca siempre estar atento a lo incierto.

¿El mejor SDLG?

Comenzare diciendo que el mejor SDLG simplemente NO EXISTE. El elegir depende en mi opinión de tres factores diferentes: tu mercado, tus desarrolladores y tu producto. Si trabajas en un espacio donde la comunicación entre desarrolladores no es un problema lo mas inteligente quizás sea trabajar con una metodología ágil para que el feedback y los cambios sean algo del día a día. Si tus inversores quieren un producto especifico y donde saben precisamente que quieren y tu trabajo es saber como hacerlo seguramente te encuentres mejor en una metodología de cascada. Finalmente si tu mercado es uno de constante cambio (con cambio no me refiero a mejoras si no a un cambio de paradigma o interés de los clientes) entonces uno pensaria en la agil pero, si no te gusta la agil vas a por la de cascada sabiendo el peligro de esto, recordemos que hay una infinidad de SDLG así que porque no ir por la de salmón o aprender una nueva metodología. Siempre recuerda que debes buscar la que mas te convenga y te sientas cómodo con ella para poder entregar a tus clientes siempre lo mejor.

Bibliografia (Son links porque quien necesita a la tonta APA?):

https://www.tutorialspoint.com/sdlc/sdlc_overview.htm

https://raygun.com/blog/software-development-life-cycle/

https://en.wikipedia.org/wiki/Systems_development_life_cycle (Sí es wikipedia, no es el fin del mundo si tiene información ya corroborada)

https://www.guru99.com/software-development-life-cycle-tutorial.html

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Create your website at WordPress.com
Get started
%d bloggers like this: