Logo

dev-resources.site

for different kinds of informations.

Cómo gestionar tus proyectos de software con Github

Published at
1/15/2025
Categories
github
programming
softwaredevelopment
spanish
Author
maadcode
Author
8 person written this
maadcode
open
Cómo gestionar tus proyectos de software con Github

¿Estás comenzando un proyecto de software y no sabes dónde gestionarlo? Hoy quiero contarte por qué GitHub puede ser tu mejor aliado. Aunque existen herramientas increíbles como GitLab o Bitbucket para repositorios de código, Jira o Trello para tareas, y Confluence o Notion para documentar, GitHub te ofrece un combo completo.

En este artículo, exploraremos cómo aprovechar GitHub al máximo, desde la gestión de tareas hasta la automatización de procesos. Si buscas una solución integral para gestionar tus proyectos de software, ¡estás en el lugar correcto! 😉

¿Qué es GitHub y qué lo hace especial?

GitHub es mucho más que una plataforma para almacenar código. Es un ecosistema donde puedes controlar versiones, colaborar con equipos, gestionar tareas y mucho más. Pero antes de avanzar, aclaremos algo fundamental:
¿Git o GitHub?
👁️‍🗨️ Aunque suenen similares, son diferentes.

  • Git: Es un sistema de control de versiones que permite rastrear cambios en tu código.
  • GitHub: Es una plataforma basada en la nube que utiliza Git para facilitar el trabajo colaborativo.

Si no estás familiarizado con Git, te recomiendo la la ruta de aprendizaje de Git en Microsoft Learn

¿Por qué usar GitHub?

GitHub no se limita a almacenar código; ofrece herramientas avanzadas que te permiten gestionar proyectos de principio a fin. Algunas de sus funcionalidades clave incluyen:
✔️Issues: Una forma estructurada de registrar problemas, tareas o ideas.
✔️Pull Request: Para colaborar en el código, revisarlo y discutir cambios antes de integrarlos.
✔️Colaboradores y equipos: Gestiona quién tiene acceso a tu proyecto y qué permisos tienen.
✔️Github Projects: Tableros tipo Kanban u otro tipo de plantilla para organizar tareas y planificar proyectos.
✔️Github Wiki: Documentación centralizada para tu equipo.
✔️Github Copilot: Tu asistente de IA Generativa para escribir código más rápido.
✔️Github Actions: Automatiza procesos como pruebas, despliegues y mucho más.
✔️Github Codespaces: Entornos de desarrollo en la nube.
✔️Github Pages: Hospeda sitios web estáticos directamente desde tu repositorio.
✔️Code Security: Herramientas para proteger tu código.
✔️Marketplace: Encuentra extensiones que potencien tu flujo de trabajo.

Caso práctico: Gestión de un proyecto de red social

Imagina que estás desarrollando una red social en .NET con un equipo. Cada persona está encargada de una funcionalidad: autenticación, perfiles de usuario, publicaciones y notificaciones. A continuación, te muestro cómo usar GitHub en cada etapa del proyecto.

1. Crear el repositorio base

Lo primero es crear un repositorio para centralizar todo tu código y configurarlo.

Pasos básicos:

  1. Inicia sesión en GitHub.
  2. Haz clic en "New Repository".
  3. Completa los campos (nombre del repositorio, descripción, visibilidad).
  4. Agrega un .gitignore y una licencia, si es necesario. Captura de la creación de un repositorio en Github Captura de la configuración de gitignore, README y licencia del repositorio en Github

2. Agregar colaboradores y equipos 👨‍💻👩‍💻

Agregar colaboradores en GitHub es como organizar una fiesta: tú eres el anfitrión, y los colaboradores son los invitados que pueden ayudar a decorar, traer comida (o en este caso, código).

Puedes agregar a cada miembro del equipo con permisos específicos. Por ejemplo, el líder del proyecto podría tener permisos de administrador, mientras que los desarrolladores solo pueden enviar código y revisarlo.

Pasos para agregar un colaborador:

  1. Ve a la página principal de tu repositorio en GitHub.
  2. Haz clic en la pestaña "Settings" (configuración).
  3. Busca la sección "Collaborators and Teams" y haz clic.
  4. En "Add Collaborator", escribe el nombre de usuario o correo electrónico de la persona.
  5. La persona recibirá una invitación y, al aceptarla, ya será parte del proyecto. Image description Image description Image description

Si tu proyecto es Open Source, puedes recibir contribuciones mediante pull request de terceros sin tener que agregarlos como colaborador.

3. Organizar tareas con Issues y Projects

  • Projects: Usa un tablero tipo Kanban con columnas como "Por hacer", "En progreso" y "Completado" para mover tareas según su estado.
    Image description
    Image description
    Image description
    Image description

  • Issues: Define tareas como "Agregar autenticación con OAuth2" o "Implementar Endpoint Publicaciones". Cada issue tiene un responsable, una prioridad y una fecha límite.
    Image description
    Image description
    Image description
    Image description
    Image description

4. Crear, revisar y aprobar cambios con Pull Requests 🔎

Cuando alguien del equipo desarrolla una funcionalidad, como "Publicaciones", crea una rama (feature/posts) y abre un Pull Request (PR) para que el resto del equipo revise el código.
Image description
Image description

Los revisores pueden comentar, sugerir cambios, y asegurarse de que todo esté en orden antes de integrar el código.

Si todo esta bien, podemos aprobar el cambio e integrarlo a rama que solicitaron en el pull request.
Image description
Image description
Image description
Image description

5. Documentar con GitHub Wiki 📝

La documentación es clave para evitar confusiones. En GitHub Wiki puedes incluir:

  • Arquitectura del sistema: Cómo se conecta cada módulo.
  • Guía de instalación: Instrucciones para configurar el entorno.
  • Dependencias: Herramientas y librerías utilizadas. Image description Image description Image description

Es probable que hacer la documentación te cause aburrimiento pero no tenerlo te causará pesadillas. 😖

6. Acelerar el desarrollo con GitHub Copilot 🤖

Escribir código repetitivo puede ser frustrante. Con GitHub Copilot, puedes generar lógica automáticamente. Por ejemplo, al implementar notificaciones, Copilot puede sugerir código para manejar excepciones o enviar correos.
Image description

GitHub Copilot ahora tiene un plan gratuito que puedes usar desde editores como Visual Studio Code, Visual Studio o JetBrains. Más detalles aquí.

7. Automatizar con GitHub Actions ⚙️

GitHub Actions permite automatizar flujos de trabajo. Algunos ejemplos:

  • Ejecutar pruebas unitarias al crear un PR.
  • Desplegar la aplicación en Azure tras pasar las pruebas.
  • Enviar notificaciones de estado al equipo vía Slack. Image description Image description

8. Trabajar desde cualquier lugar con Github Codespaces 🖥️

¿Necesitas trabajar desde un dispositivo donde no tienes configurado el entorno? GitHub Codespaces te ofrece un entorno de desarrollo virtual listo para usar desde tu navegador.

En caso de que alguien del equipo necesite contribuir rápidamente pero no tiene el entorno configurado, puede abrir un Codespace.
Image description
Image description
Image description

Recuerda detener o eliminar tu codespace para evitar consumo innecesario de recursos, ya que hay un límite mensual que pueden utilizar gratuitamente. Puedes ver tu consumo de recursos aquí.

9. Publicar documentación o prototipos con Github Pages

Cuando tu proyecto esté listo o necesites compartir documentación o prototipos con clientes, GitHub Pages es una solución ideal para alojar sitios web estáticos. Puedes usarlo para:

  • Documentación del proyecto: Crear una página atractiva para tu Wiki con Markdown o un generador como Jekyll.
  • Demostraciones de prototipos: Publicar una versión básica de tu red social para que los stakeholders puedan visualizarla.

Supongamos que has creado una versión mínima de tu red social con una interfaz básica. Podrías usar GitHub Pages para desplegar esta demo. Solo necesitas guardar los archivos HTML, CSS y JavaScript y habilitar la opción en la configuración del repositorio.
Image description
Image description

Con Github Pages incluso podrías personalizar con un dominio propio como www.example.com.

10. Proteger tu código con GitHub Code Security 🔒

GitHub ofrece herramientas integradas para mantener tu proyecto seguro y evitar vulnerabilidades. Algunas de las funciones más destacadas son:

  • Escaneo de código: Analiza tu repositorio en busca de vulnerabilidades en librerías o errores de seguridad en tu código.
  • Dependabot Alerts: Detecta dependencias obsoletas o con problemas y sugiere actualizaciones automáticas.
    Image description

  • Protección de ramas: Configura restricciones en la rama principal para evitar que se integre código sin revisión.
    Image description
    Image description

Es probable que algunas funciones no esten habilitadas para repositorios privados o de organizaciones.

11. Aprovecha Github Marketplace 🛒

GitHub Marketplace es un repositorio de herramientas y aplicaciones que puedes integrar fácilmente a tu proyecto. Desde CI/CD hasta análisis de código, modelos de IA y extensiones para Copilot, y bots para gestionar tareas, tienes múltiples opciones para mejorar tu productividad.

Por ejemplo, puedes instalar un Action para desplegar automáticamente tu aplicación en Docker Hub.

Herramientas adicionales de Marketplace que puedes explorar:

  • ZenHub: Para extender la funcionalidad de Projects con diagramas de Gantt.
  • Snyk: Para análisis avanzado de vulnerabilidades.
  • CodeClimate: Para medir la calidad del código. Image description Image description

Dedica tiempo a explorar Marketplace, ya que muchas de estas herramientas son gratuitas o tienen planes básicos perfectos para empezar.

Beneficios de usar GitHub para tus proyectos

  • Centralización: Todo (código, tareas, documentación) en un solo lugar.
  • Colaboración: Facilita el trabajo en equipo con herramientas intuitivas.
  • Escalabilidad: Desde proyectos pequeños hasta sistemas empresariales complejos.
  • Automatización: Ahorras tiempo en tareas repetitivas.
  • Flexibilidad: Adapta las herramientas a tus necesidades.

¡Atrévete a explorar GitHub!

GitHub no es solo para almacenar código; es una herramienta integral que puede transformar cómo gestionas tus proyectos. Si estás buscando optimizar tu flujo de trabajo y trabajar de manera más eficiente, empieza hoy mismo.

GitHub tiene una gran comunidad y puedes encontrar recursos de aprendizaje, participar en proyectos Open Source o integrar GitHub con tus propias aplicaciones usando su API.

¡Manos a la obra! Crea tu primer repositorio y experimenta todo lo que GitHub tiene para ofrecer. Si tienes preguntas o necesitas ayuda, no dudes en dejar un comentario o compartir este artículo con alguien que pueda beneficiarse.

spanish Article's
30 articles in total
Favicon
Cómo gestionar tus proyectos de software con Github
Favicon
Más Allá del Código: La Importancia de la Resolución de Problemas para Destacar como Programador
Favicon
Configurar servidor de archivos local con Ubuntu y Samba
Favicon
Envias Correo Electrónicos gratis con Resend Emails
Favicon
Git avanzado: ¿Qué es cherry pick? 🍒
Favicon
Desplegar un contenedor de Docker desde Azure Container Registry en una WebApp
Favicon
Cómo puedes llegar a ser AWS Cloud Club Captain (consejos de una capitana!)
Favicon
¿Elegimos el lenguaje de programación o el destino lo elige por nosotros?
Favicon
Proyecto Lombok en Java
Favicon
Crear software: Juego de personas
Favicon
"Escapando" de IntelliJ
Favicon
Las claves para NO romperlo TODO: Branches en Git 🚨🔑
Favicon
Git: haz que todos amen leer tus commits
Favicon
¿Qué son los enums en Java?
Favicon
Puede la IA reemplazar los trabajos de desarrollo? Vamos a hablar de ello!
Favicon
¿Para qué sirve String[] args en el método main de Java?
Favicon
La dualidad de tu profesión.
Favicon
Cómo instalar el JDK de Java usando Temurin en Windows
Favicon
Aprende a programar con Python y Thonny 🐍
Favicon
¡Primeros pasos en GIT! GIT para PRINCIPIANTES
Favicon
¿Qué es GIT, por qué TODOS los developers lo usan?: Historia de GIT
Favicon
Try with resources en Java
Favicon
Redes neuronales convolucionales (CNN) y redes neuronales recurrentes (RNN)
Favicon
JSON Web Tokens (JWT): Guía Esencial y Buenas Prácticas
Favicon
Cómo instalar el OpenJDK de Java en Windows
Favicon
Cómo Desarrollé MemoMate: Un Asistente Personal en Telegram con IA
Favicon
Cómo ver los campos de tu WordPress de un modo diferente
Favicon
Construyendo un Sistema de Asistencia con Reconocimiento Facial Usando Next.js y FACEIOm
Favicon
JSON#: nuestro propio lector/escritor
Favicon
Recursos para AWS Certified Cloud Practitioner

Featured ones: