Metodologías agiles XP y Scrum, empleadas para el desarrollo de páginas web, bajo MVC, con lenguaje PHP y framework Laravel

Agile methodologies XP and Scrum, used for the development of web pages, under MVC, with PHP language and Laravel framework

Edwin Bautista-Villegas 1*


1 Universidad Peruana Unión, Tarapoto, Perú

 

 

                                            Recibido: 26/11/2021

                                           Aceptado: 30/12/2021

Publicado: 25/01/2022


*Autor de correspondencia: edwinbautista@upeu.edu.pe


Resumen: El objetivo del artículo fue realizar un contraste entre dos de las metodologías más empleadas en el desarrollo de aplicaciones Web siendo Scrum y eXtreme Programing (XP) las metodologías agiles seleccionadas. Para ello, se realizó la revisión de documentación disponible en las bases de búsqueda reconocidas como ScienceDiret, IEEE Xplore Digital Library y Scielo. Obteniendo como resultado de la ardua investigación, la presencia de requerimientos especiales y en constante cambio exigidas por las aplicaciones Web en un entorno de avances tecnológicos que así lo demandan, logrando vislumbrar así a las metodologías agiles como idóneas para manejar estas exigencias. Se concluyó que Scrum es la metodología más preparada y con mayor capacidad de adaptación al cambio a comparación de la metodología XP.

Palabras clave: Laravel; metodologías ágiles; PHP, Scrum; XP

Abstract: The objective of the article was to make a contrast between two of the most used methodologies in the development of Web applications being Scrum and eXtreme Programing (XP) the agile methodologies selected. For this, the documentation available in the recognized search bases such as ScienceDiret, IEEE Xplore Digital Library and Scielo was reviewed.  Obtaining as a result of the arduous research, the presence of special and constantly changing requirements demanded by web applications in an environment of technological advances that demand it, thus achieving a glimpse of agile methodologies as suitable to handle these demands. It was concluded that Scrum is the most prepared methodology with the greatest capacity to adapt to change compared to the XP methodology.

Keywords: agile methodologies; Laravel; PHP; Scrum; XP

 


1.     Introducción

La creciente demanda en el mercado de desarrollo de software efecto de la globalización (Babativa et al., 2016), ha permitido la mejora y evolución de las tecnologías empleadas en el diseño de páginas webs (Becerril Isidro et al., 2015), permitiendo la construcción de sistemas adaptables o responsivos a todo tipo de dispositivos y configurables, que puedan dar respuesta al dinamismo del contexto (Muñoz Córdova, 2017). Esta demanda también exige mayor eficiencia, confiabilidad, mantenibilidad y escalabilidad de producto resultante (Laaziri et al.,2019), desatando una guerra de posicionamiento entre los lenguajes de programación empleados en el desarrollo de sistemas web, siendo lenguajes como Java EE, C, Pitón, C++, C#, Visual Basic .NET, JavaScript y PHP, los ocho más destacados en este mercado según el índice TIOBE para noviembre de 2019 (Mcdonald & Welland, 2001).

PHP es un lenguaje que se adecúa al desarrollo de aplicaciones web de manera dinámica, basado en el uso de herramientas efectivas para aumentar la productividad en el desarrollo de software, muy ligado a la utilización de buenas prácticas de ingeniería de software (Valarezo, 2018). El framework Laravel para PHP es una parte esencial de la caja de herramientas de desarrollo web (Laaziri et al., 2019), brinda una estructura definida, permite crear aplicaciones con mayor facilidad y rapidez, con orientación a dar solución en menor tiempo posible a problemas (Pantoja and Pardo, 2016).

Esto requiere de mejorar las metodologías de desarrollo empleadas, así como su flexibilización (Laaziri et al., 2019) para potenciar la productividad sin renunciar a la calidad en el desarrollo del software (Uribe & Ayala, 2007). Es así que las metodologías ágiles son una alternativa (Abrahamsson, 2007) para contemplar estos requerimientos cambiantes del desarrollo de software (Balaguera, 2013). Destacan SCRUM y XP para el desarrollo de páginas web, cada una con características individuales adaptables a distintos contextos dependiendo de las exigencias del proyecto a desarrollar, permitiendo realizar entregas parciales y periódicas del producto final (Velásquez-Restrepo et al., 2018).

Por esto el presente artículo busca determinar las cualidades más destacables entre las metodologías XP y Scrum en el desarrollo web, bajo el patrón MVC (Modelo, vista, controlador) para obtener un software más robusto (Pantoja & Pardo, 2016), con el lenguaje de desarrollo PHP para facilitar la progresión de aplicaciones web (Vidal et al., 2017), y el framework Laravel. 

2.     Materiales y métodos

El presente artículo es efecto de la revisión de documentación disponible en las bases de búsqueda reconocidas como ScienceDiret, IEEE Xplore Digital Library y Scielo, siendo el objetivo de esta investigación determinar la metodología más óptima para el desarrollo de aplicaciones web, entre Scrum y XP dos de las metodologías ágiles más empleadas en el mercado de la industria del desarrollo de aplicativos evaluando si estas se adaptan a las exigencias del desarrollo de páginas web actualmente.

3.     Resultados de la revisión

3.1.            Desarrollo web

La ingeniería de software desempeña un papel importante en el desarrollo, portabilidad, mantenibilidad, funcionalidad, fiabilidad y productividad del software (Balaguera, 2013). Por lo que antes de comenzar con el desarrollo del software hay una serie aspectos, características y funciones a tomar en cuenta del nuevo producto (Eslava Muñoz, 2017; Ramos Cardozzo, 2016) comprendiendo muy bien el problema a solucionar con la aplicación (Pressman, 2010). Siendo el desarrollo de software web, el que demanda gran capacidad y conocimientos específicos a nivel de lenguajes de programación, en entornos, plataformas, modelos de desarrollo, procesos entre otros. Adicionalmente se debe considerar las exigencias especiales presentes en el desarrollo del mismo (Pantoja & Pardo, 2016), descritas por McDonald (Mcdonald & Welland, 2001) de la siguiente manera: La naturaleza no lineal del hipertexto, el contenido tiene que ser actualizado y la creciente demanda del despliegue multiplataforma (Molina et al., 2018). Están son parte de las razones de porque se adaptaron ciertos conceptos, métodos técnicas y herramientas al desarrollo web, requiriendo de más trabajo para su desarrollo que una aplicación tradicional (Mcdonald & Welland, 2001).

3.2.            PHP

PHP, es un lenguaje de programación de código abierto se utiliza para el desarrollo web, y puede ser empleado en páginas HTML y ejecutados en un servidor, con una sintaxis es similar a C, Java y Perl y es fácil de aprender (Achour et al., 2015). El uso de PHP se destaca porque proporciona un análisis correcto de los requisitos y su modelo de base de datos lógica, permite el rápido desarrollo de aplicaciones web (Vidal et al., 2017), contando amplio soporte a diferentes bases de datos, facilitando que los desarrolladores creen sitios sustentados en bases de datos, y que se hagan nuevos prototipos de aplicaciones Web de manera rápida y eficiente sin demasiada complejidad (Eslava Muñoz, 2017).

3.3.            Necesidad de emplear un framework para PHP

Ante la necesidad de buscar mejor eficiencia, confiabilidad, mantenibilidad y escalabilidad en el desarrollo web (Laaziri et al., 2019), se traza la senda necesaria para el desarrollo y empleo de un framework como parte esencial de caja de herramientas de desarrollo de aplicaciones web que emplee el lenguaje PHP. Los distintos marcos propuestos para cumplir esta labor se han afianzado como facilitadores del desarrollo de software con un código a prueba de balas y mantenible dando como resultado del empleo del framework PHP aplicaciones web más estables y seguros (Laaziri et al., 2019). Pero seleccionar uno de estos marcos hoy en día puede ser complicado, lo que requiere una buena comprensión de los mismos, seleccionando el que mejores características de soporte para el desarrollo del proyecto.

3.4.            Laravel para PHP

Das &Prasad Saikia (2016) afirman que el marco Laravel es preferible para proyectos web a gran escala que requieren una entrega más rápida con menos recursos (Laaziri et al., 2019). Patrón MVC (Modelo, Vista, Controlador), Laravel PHP Framework se emplea para construir la aplicación basada en web (R. Valarezo & Guarda, 2018). La misma que hace uso del patrón MVC (Model View Controller) (Pantoja & Pardo, 2016) para el desarrollo de la programación estructurada, también tiene varios otros componentes útiles como seguridad, generación y validación de formularios, acceso a la base de datos y enrutamiento (Pop & Altar, 2014). El modelo representará la estructura de la base de datos con los atributos de la base de datos. La parte de la vista manejará la interfaz de usuario que se mostrará al usuario. La parte del controlador actuará como el conector entre la vista y la parte del modelo y también manejará la entrada del usuario a través de la parte de la vista (Putra et al., 2015) (Sunardi & Suharjito, 2019). Siendo su propósito esencial de cerrar la brecha entre el modelo mental del usuario humano y el modelo digital que existe en la computadora (Pop & Altar, 2014).

3.5.            Metodologías agiles en para el desarrollo de software

Desde la articulación del manifiesto ágil en 2001 (Beck et al., 2001) (Uribe and Ayala, 2007) (Mitre, Ortega, and Lemus, 2014) por parte de grandes personajes en el desarrollo de software agile, las transformaciones traídas por este, a la industria de desarrollo de software han sido muchas, convirtiendo al siglo XXI testigo de la introducción de varias nuevas prácticas agiles (Dingsøyr et al., 2012).

La aparición de las metodologías agiles, surgieron como respuesta a las metodologías tradicionales que presentaban pesadez, inflexibilidad a los cambios, y exceso en la producción de documentaria (Amaya, 2015; Molina et al., 2018), siendo estos grades promotores del trabajo en equipo, manteniendo la comunicación fluida entre el grupo de desarrollo y los clientes (Lindsjørn et al., 2016). Estas metodologías nacieron para acomodar los cambios en los requisitos, mejorar gestión de la Ciclo de vida del desarrollo de programas (Flora & Chande, 2013) y además ayudan a mitigar y resolver los errores existentes respecto a cada etapa de desarrollo (Molina et al., 2018).

3.6.            Metodologías ágiles en el desarrollo de aplicaciones web

Ante el surgimiento de posibles inconvenientes en el desarrollo del software tales como: requisitos cambiantes, planificaciones o presupuestos que no son realistas, la falta de personal y clientes la presencia de clientes insatisfechos. (Sanz & Silva, 2014) hacen que el desarrollo del software no se convierte en una tarea fácil, por lo que Metodologías son llamadas a manejar estos inconvenientes (Delgado, 2008). Llevando a cabo la realización de cambios en el sistema de manera sencilla, en caso de que el cliente así lo dese, lo que genera una gran flexibilidad en relación a dichos cambios, requiriendo posteriormente de algunas alteraciones en la forma en la que los proyectos son conducidos en las organizaciones (Selbach Borges et al., 2014)

Las metodologías para el desarrollo de aplicaciones Web presentan fases para el desarrollo de software siendo tendientes a aumentar o disminuir, según Nieves del Valle (2009) la mayoría de los métodos presentan las siguientes etapas:

·      Diseño Conceptual: Se especifica el dominio del problema a través de su definición y las relaciones que contiene.

·      Diseño Navegacional: Está centrado en el acceso y forma en la que los datos son visibles.

·      Diseño de la presentación o diseño de interfaz: Enfocada en la manera que la información va ser presentada a los usuarios.

·      Implantación: es la construcción del software a partir de los artefactos generados en las etapas previas.

Entre las metodologías para el desarrollo web encontramos: WSDM (Web Design Method) (Josefina et al., 2007) enfocada al usuario que es considerando el principal actor del sistema, IWEB (Ingeniería Web) (D. Silva & Mercerat, 2010) que demanda un proceso incremental y evolutivo, Scrum que hace uso de conceptos de rápido desenvolvimiento, agregando valor al cliente (V. B. Silva et al., 2016) haciendo empleo de sus herramienta para agilizar el proceso del desarrollo de proyectos, productos y aplicaciones para obtener resultados viables y satisfactorios (Fuertes & Sepúlveda, 2016), por ultimo tenemos a eXtreming Programing (XP) especifica prácticas de desarrollo impulsado por pruebas, así como también integrar y revisar el código (Dyba et al., 2014).

3.7.            Scrum

Scrum es una metodología de ágil diseño y desarrollo de software, teniendo antecedentes de empleo en proyectos complejos (Flora & Chande, 2013). Su adopción es toda una revolución: Siendo necesario la definición de nuevos roles, nuevos sistemas de medición y la entrega el código de una manera fundamentalmente diferente (Schwaber & Sutherland, 2017; Dybå et al., 2014). Estableciendo un equipo de proyecto prestando menos atención a trabajos como procesos, prácticas y herramientas (Dybå et al., 2014) dando más valor al software funcional ósea priorizando implementación en lugar de un análisis o documentación (Elallaoui et al., 2015).

3.8.            Extreming Programing (XP)

La metodología eXtreme Programming-XP, recibe su nombre del proceso de tomar la mejor práctica y luego llevarla al extremo (Fojtik, 2011), desarrollado por Kent Beck (1999), manejando el problema de la complejidad de los requisitos crecientes a lo largo del desarrollo del software, estos cambios se manejan sin exceder el tiempo y el presupuesto.  Consistiendo en una lista de procesos que pueden ser seleccionados para abordar una necesidad de mejora pertinente (Dybå et al., 2014). Siendo estos principios probados en la ingeniería de software (Amaya, 2015).

4.     Conclusiones

Tras lo expuesto como colaboración a la comunidad científica de investigación enfocada en el desarrollo de aplicaciones Web bajo metodologías agiles como Scrum y XP, se concluyó que la metodología Scrum es la más idónea para la gestión de cambios en los requisitos durante el desarrollo del proyecto, siendo capaz de adaptarse a los mismo de la manera más óptima y eficiente.

También se pudo concluir que la metodología XP es la más idónea para desarrollar aplicaciones Web en el menor tiempo posible y con la funcionalidad necesaria, requerida por el cliente ya que está basado en pruebas (TDD) desarrolladas a lo largo del proyecto.

Financiamiento

Ninguno.

Conflicto de intereses

El autor declara no tener ningún conflicto de intereses.

Contribución de autores

B-V, E: Definió y conceptualizó el tema a desarrollar, realizó el diseño metodológico, investigo; elaboró el primer borrador del artículo científico. Finalmente, revisó y editó el artículo.

Referencias bibliográficas

Abrahamsson, P. (2007). Agile Software Development of. (November 2005), 1–4.

Achour, M., Betz, F., Dovgal, A., Lopes, N., Magnusson, H., Richter, G., … Vrana, J. (2015). PHP Manual de PHP - Manual.

Amaya, Y. (2015). Guía metodológica ágil, para el desarrollo de aplicaciones móviles “AEGIS-MD.” Revista de Investigaciones UNAD, 14(1), 97–113.

Babativa, A., Briceño, P., Nieto, C., & Salazar, O. (2016). Desarrolló Agil de una Aplicación para Dispositivos Móviles. Caso de Estudio: Taxímetro Móvil Agile Application Development for Mobile Devices. Case Study: Mobile Taximeter. 21(3), 260–275. https://doi.org/10.14483/udistrital.jour.reving.2016.3.a01

Balaguera, D. (2013). Metodologías ágiles y desarrollo de aplicaciones móviles.

Becerril Isidro, J., Lumbreras Sotomayor, A., & Duk Sánchez, A. R. (2015). La evolución de la web: un análisis de su impacto en el desempeño de las micro empresas del Distrito Federal. 31–51.

Beck, K. (1999). Extreme Programming Explained Kent Beck. Philosophy, 224.

Beck, K., Beedle, M., Bennekum, A. Van, Cockburn, A., Cunningham, W., Fowler, M., … Thomas, D. (2001). Manifesto for Agile Software Development.

Das, R., & Prasad Saikia, D. (2016). Comparison of Procedural PHP with Codeigniter and Laravel Framework. In International Journal of Current Trends in Engineering & Research (Vol. 2).

Delgado, E. (2008). Metodologías de desarrollo de software. ¿Cuál es el camino? Revista de Arquitectura e Ingeniería, 2(3).

Dingsøyr, T., Nerur, S., Balijepally, V., & Moe, N. B. (2012). A decade of agile methodologies: Towards explaining agile software development. Journal of Systems and Software, 85(6), 1213–1221. https://doi.org/10.1016/j.jss.2012.02.033

Dybå, T., Dingsoyr, T., & Moe, N. B. (2014). Agile Project Management: Scrum, eXtreme Programming, and Scrumban. In Software Project Management in a Changing World (Vol. 9783642550). https://doi.org/10.1007/978-3-642-55035-5_11

Elallaoui, M., Nafil, K., & Touahni, R. (2015). Automatic generation of UML sequence diagrams from user stories in Scrum process. 2015 10th International Conference on Intelligent Systems: Theories and Applications (SITA), 1–6. https://doi.org/10.1109/SITA.2015.7358415

Eslava Muñoz, V. J. (2017). El nuevo PHP. Bubok Publishing S.L.

Flora, H., & Chande, S. (2013). A Review and Analysis on Mobile Application Development Processes using Agile Methodologies. International Journal of Research in Computer Scienc, 3(4), 8–18. https://doi.org/10.7815/ijorcs.34.2013.068

Fojtik, R. (2011). Extreme programming in development of specific software. Procedia Computer Science, 3, 1464–1468. https://doi.org/10.1016/j.procs.2011.01.032

Fuertes, Y., & Sepúlveda, J. (2016). Scrum, Kanban and Canvas in the commercial, industrial and educational sector-A literature review Scrum, Kanban y Canvas en el sector comercial, industrial y educativo-Una revisión de la literatura.

Josefina, Y., Aular, M., & Pereira, R. T. (2007). Metodologías para el desarrollo de ambientes de aprendizaje en entornos colaborativos: Una reflexión teórica. MULTICIENCIAS, 7, 63–71.

Laaziri, M., Benmoussa, K., Khoulji, S., & Kerkeb, M. L. (2019). A Comparative study of PHP frameworks performance. Procedia Manufacturing, 32, 864–871. https://doi.org/10.1016/j.promfg.2019.02.295

Lindsjørn, Y., Sjøberg, D. I. K., Dingsøyr, T., Bergersen, G. R., & Dybå, T. (2016). Teamwork quality and project success in software development: A survey of agile development teams. Journal of Systems and Software, 122, 274–286. https://doi.org/10.1016/j.jss.2016.09.028

Mcdonald, A., & Welland, R. (2001). A Survey of Web Engineering in Practice. Analysis, 1–52.

Mitre, H., Ortega, E., & Lemus, G. (2014). Estimación y control de costos en métodos ágiles para desarrollo de software: un caso de estudio. Ingeniería, Investigación y Tecnología, 15(3), 403–418. https://doi.org/10.1016/S1405-7743(14)70350-6

Molina, J., Zea, M., Contento, M., & García, F. (2018). Comparación De Metodologías En Aplicaciones Web. 3C Tecnología_Glosas de Innovación Aplicadas a La Pyme, 7(1), 1–19. https://doi.org/10.17993/3ctecno.2018.v7n1e25.1-19

Muñoz Córdova, E. B. (2017). “Elaboración de una guía de aplicación de métricas de calidad para metodologías ágiles de desarrollo web en www.machalamovil.com.”

Pantoja, L., & Pardo, C. (2016). Evaluando la Facilidad de Aprendizaje de Frameworks mvc en el Desarrollo de Aplicaciones Web. Publicaciones e Investigación, 10, 129. https://doi.org/10.22490/25394088.1592

Pop, D. P., & Altar, A. (2014). Designing an MVC model for rapid web application development. Procedia Engineering, 69, 1172–1179. https://doi.org/10.1016/j.proeng.2014.03.106

Pressman, R. S. (2010). Ingenieria del Software - Un Enfoque Practico 5b: Edicion (Spanish Edition).

Putra, L., Michael, Yudishtira, & Kanigoro, B. (2015). Design and Implementation of Web Based Home Electrical Appliance Monitoring, Diagnosing, and Controlling System. Procedia Computer Science, 59, 34–44. https://doi.org/10.1016/j.procs.2015.07.335

Ramos Cardozzo, D. (2016). Desarrollo de Software: requisitos, estimaciones y análisis. IT Campus Academy.

Sanz, L. F., & Silva, P. B. (2014). Gestión de riesgos en proyectos de desarrollo de software en España: Estudio de la situación. Revista Facultad de Ingenieria, 70(70), 233–243.

Schwaber, K., & Sutherland, J. (2017). La Guía de Scrum. La Guía Definitiva de Scrum: Las Reglas del Juego. 22.

Selbach Borges, K., Augusto Rauh Schmitt, M., & Marx Nakle, S. (2014). eduScrum Projetos de Aprendizagem Colaborativa Baseados em Scrum. RENOTE, 12(1). https://doi.org/10.22456/1679-1916.49839

Silva, D., & Mercerat, B. (2010). Construyendo Aplicaciones Web con una Metodología de Diseño Orientada a Objetos. Revista Colombiana de Computación - RCC, 2(2).

Silva, V. B., Barbosa, M. W., & Carvalho, L. A. C. (2016). Experiências do ensino a distância do gerenciamento ágil de projetos com Scrum e apoio de uma ferramenta para gerência de histórias de usuário. Revista Brasileira de Computação Aplicada. https://doi.org/10.5335/rbca.2015.5614

Sunardi, A., & Suharjito. (2019). MVC Architecture: A Comparative Study Between Laravel Framework and Slim Framework in Freelancer Project Monitoring System Web Based. Procedia Computer Science, 157, 134–141. https://doi.org/10.1016/j.procs.2019.08.150

Uribe, E. H., & Ayala, L. E. V. (2007). Del Manifiesto Ágil, sus valores y sus principios. Redalyc.Uaemex.Mx, (34), 381–385.

Valarezo, M. (2018). Comparación de tendencias tecnológicas en aplicaciones web comparison of technology trends in web applications. 66, 37–39.

Valarezo, R., & Guarda, T. (2018). Comparativo de los Frameworks Laravel y Codeigniter Frameworks. 2018 13th Iberian Conference on Information Systems and Technologies (CISTI), 1–6.

Valle, A. (2009). Metodologías de diseño usadas en ingeniería web, su vinculación con las NTICs.

Velásquez-Restrepo, S. M., Londoño-Gallego, J. A., López-Romero, C., & Vahos, J. D. (2018). Desarrollo de una plataforma web multimedial para la elaboración de proyectos bajo la metodología de marco lógico. Lámpsakos, 1(18), 12. https://doi.org/10.21501/21454086.2601

Vidal, C. L., López, L. L., Rojas, J. A., & Castro, M. M. (2017). Desarrollo de sistema web de reclutamiento y selección y de directivos por competencias mediante PHP codeigniter 3.0. Informacion Tecnologica, 28(2), 203–212. https://doi.org/10.4067/S0718-07642017000200021