UNIVERSIDAD NACIONAL MAYOR DE SAN
MARCOS
UNIVERSIDAD DEL PERÚ, DECANA DE AMÉRICA
GitHub for Education
Curso: Procesos de Software
Integrantes (Grupo N° 5):
● Rojas Carrasco, Alessandro Del Piero
● Lizarbe Estrada, Adrián Jesús
● Palomino Julian, Alex Marcelo
● Tome Pando, Carlos Alexsander
Docente : Mg. Wilder Alex Inga Lopez
1. Introducción
En la actualidad del desarrollo de software, los programadores usualmente buscan la
manera más viable y práctica para poder elaborar programas, no obstante es tedioso el
hecho de iniciar un código desde el inicio, por lo que se ha buscado la manera de tener
múltiples códigos ya hechos y librerías desde internet. Con ello se trajo múltiples
herramientas para el desarrollo de software, de esta manera nace Github. Github es un
servicio que almacena un servicio de control de versiones (VCS) llamado Git basado en la
nube, en el cual los desarrolladores que posean acceso pueden cambiar los códigos fuente
con las herramientas de comando de Git.
Este servicio de código abierto surge en el año 2005 como una respuesta de la
comunidad desarrolladora de Linux por la caída de la relación con la compañía
desarrolladora de BitKeeper. Git ofrece ramas de características, un gran soporte de
desarrollo no lineal. Github es creada en el año 2008 por Chris Wanstrath , PJ Hyett , Tom
Preston-Werner y Scott Chacon en San Francisco, Estados Unidos. Aloja más de 100
millones de repositorios, convirtiéndose en el cliente Git GUI más utilizado por
desarrolladores, con una interfaz más sencilla para utilizar.
2. Compartir código
Gracias a su interfaz sencilla y rápida, Github se vuelve un servicio fácil de usar para
los desarrolladores y con su acceso a la nube, se puede contar con múltiples repositorios de
códigos fuentes que pueden ser de utilidad, además que también se puede trabajar
cómodamente en grupo.
El usuario puede crear repositorios para el desarrollo de software, aunque con ciertas
limitaciones, ya que Github ofrece distintos planes, siendo el más básico de 500 MB. De esta
manera se pueden subir y compartir archivos a través de la nube. Gracias a la creación de
ramas, se pueden crear diferentes versiones de un repositorio, así se facilita el diseño de
códigos. Además para realizar cambios en una rama se tienen diferentes herramientas como
el commit. Además se pueden proponer cambios dentro de un código fuente propiedad de un
grupo de desarrolladores.
3. Control de versiones
Tal como Wolf(2020) dijo “El desarrollo de software, a cualquier escala sería,
siempre ha requerido de la coordinación de esfuerzos entre desarrolladores, y resultaría
natural que herramientas con éste fin hayan sido desarrolladas desde muy temprano en la
historia de la computación.”, siendo este un factor clave en el desarrollo de software, el poder
controlar los avances y los cambios que se realizan mientras se desarrolla el software. Github
for education cubre esta necesidad, en el caso de los profesores pueden apoyarse con Github
para poder controlar los proyectos que se les encargue a sus alumnos, como pueden ser el
asignarles tareas, supervisar sus progresos como revisar el código de sus proyectos y
comentar directamente en ellos.
En contraparte, los alumnos ya que permite a sus usuarios crear repositorios en línea
para proyectos, esto permite entre muchas cosas tener un registro de cambios que se realizan
en código a través del tiempo, esta función beneficia a los estudiantes ya que les permite
controlar los cambios del código, ver como evoluciona su proyecto y monitorear la
contribución de cada miembro del equipo en el desarrollo del mismo. Así como Digital Guide
Ionos(2022) dice que “Además de poner a disposición diferentes versiones, el trabajo en
equipo eficaz es una de las principales razones para utilizar GitHub en el desarrollo. Cada
miembro del equipo puede descargar la versión actual del código como su propio repositorio.
Al proceso de copiar un repositorio en tu propia cuenta de GitHub se le denomina fork.”, esto
corrobora la importancia de Github en el control de versiones.
4. Gestión de proyectos
La gestión de proyectos se fundamenta en la definición, implementación y monitoreo
de metas concretas, alcanzables, cuantificables y realistas que conduzcan a la realización de
actividades útiles para la organización. Todo ello se lleva a cabo con el propósito de
supervisar el inicio y progreso del proyecto.
Según Guerrero(2016) el proceso de estimar y gestionar un proyecto con éxito implica
considerar varios factores clave, como satisfacer las expectativas y requerimientos del cliente,
medir los cambios de alcance, evaluar los posibles riesgos y garantizar que el equipo de
trabajo utilice buenas prácticas para lograr eficacia y eficiencia en el proyecto. Además, es
fundamental asegurarse de que el equipo esté suficientemente motivado para alcanzar los
objetivos y éxitos del proyecto. La dirección oportuna de estos procesos es crucial para lograr
cumplir con los proyectos en tiempo y forma dentro del presupuesto establecido. Para lograr
esta tarea desafiante, se requiere un gran sentido de orientación y habilidades de gestión de
proyectos eficaces, que son fundamentales para el éxito de cualquier organización. Esto se
conoce como Project Management o gestión de proyectos (pág 13).
Además tenemos que usar técnicas adecuadas para desarrollar una buena gestión de
proyecto, un buen ejemplo según Guerrero(2016) es la técnica de gestión del espectro se
enfoca en cómo manejar un proyecto de software siguiendo pautas específicas para asegurar
su éxito. Esta técnica se centra en cuatro áreas principales, conocidas como las cuatro P:
Personas, Productos, Procesos y Proyectos.
El objetivo principal de esta técnica es guiar al líder del proyecto a lo largo del
proceso, asegurándose de que cada fase del proyecto esté equilibrada en términos de recursos
disponibles y objetivos a alcanzar. En resumen, la técnica de gestión del espectro busca
establecer un marco claro y detallado para la gestión efectiva de proyectos de software (pág
14).
A continuación se presentan las áreas principales de la técnica de gestión del espectro
en la Figura 1.
Figura 1
Nota: Adaptado de Personal, producto, proceso y proyecto: las 4P con un enfoque
empresarial (p.182) por Wilson González,(2017), TIA Editorial.
Como hemos dicho anteriormente GitHub sirve principalmente para que los
desarrolladores de software puedan colaborar en proyectos de código abierto o privados,
permitiéndoles trabajar juntos de manera eficiente en un mismo repositorio de código. En esta
herramienta tiene incluida las áreas principales de la técnica de gestión del espectro.
Finalmente, según Gunnarsson, S., Larsson, P., Månsson, S., Mårtensson, E. y
Sönnerup, J. (2017) GitHub es una plataforma en línea utilizada principalmente por
desarrolladores de software para colaborar en proyectos de código abierto o privados. Se
utilizó GitHub como plataforma de entrega y para alojar el contenido del curso, lo que
permitió a los estudiantes sugerir cambios a través de issues y pull requests, fomentando su
participación en el curso. La visibilidad de quién realizó cada uno de los pasos del progreso
en un proyecto grupal incentivó el trabajo duro y penalizó a los que no participaron. Los
estudiantes también se motivaron por el hecho de que GitHub es relevante para la industria y
tener su material disponible en la plataforma les permite compartirlo fácilmente con posibles
empleadores en el futuro(p. 7-8).
En conclusión, GitHub tiene beneficios desde la perspectiva del compromiso de los
estudiantes y es una herramienta valiosa para compartir y colaborar en proyectos de software.
5. Comunidades de código abierto
Dentro de GitHub tenemos lo que son las comunidades de código abierto, para
empezar denominamos código abierto a un código fuente compartido en la cual se brinda
libertad para poder modificar este código por cualquier persona. En términos educativos
tenemos lo siguiente:
● Aprendizaje práctico: los estudiantes pueden contribuir en trabajos de código
abierto y ver casos de la vida real adquiriendo práctica y experiencia.
● Conocimiento compartido: dichas comunidades suelen estar formadas por
desarrolladores experimentados con lo cual se podría aprender y tener
comunicación con ellos para aclarar dudas.
● Desarrollo de habilidades: al colaborar con otros desarrolladores uno puede
mejorar sus habilidades no solo en la parte práctica sino también en la parte
del trabajo en equipo y gestión de proyectos.
● Tener relaciones profesionales: como se venía mencionando, al ser parte de
estas comunidades con desarrolladores experimentados, el estudiante no solo
va a poder aclarar sus dudas sino también va a poder establecer vínculos con
estos desarrolladores y progresar en su carrera profesional.
6. Conclusiones
● GitHub es una herramienta valiosa para enseñar habilidades de programación
y trabajo en equipo a estudiantes de informática y tecnología.
● GitHub puede utilizarse como un sistema de gestión de proyectos para las
asignaciones escolares y para que los profesores puedan revisar y evaluar el
trabajo de sus estudiantes.
● El uso de GitHub en el aula puede fomentar la colaboración entre los
estudiantes y permitirles trabajar juntos en proyectos más grandes de los que
podrían abordar individualmente.
7. Bibliografía
● González, W. (2017). Personal, producto, proceso y proyecto: las 4P con un enfoque
empresarial. Tecnología Investigación y Academia, 5(2), pp. 180-189.
● Guerrero, L. P. C. (2016). Gestión en proyectos de software. Tecnología Investigación
y Academia, 4(2), pp. 12-19.
● Gunnarsson, S., Larsson, P., Månsson, S., Mårtensson, E. y Sönnerup, J. (2017).
Mejorar la participación de los estudiantes usando GitHub como herramienta
educativa . Genombrottet, Lunds tekniska högskola.
● Digital Guide Ionos. (2011). ¿Qué es GitHub? - Control de versiones de un vistazo.
Recuperado de [Link]
● Wolf, G(2020). “Uso del sistema de control de versiones Git en reemplazo de un
sistema de administración de la enseñanza”. Facultad de Ingeniería, UNAM.