Every major software project requires management. This is because a lot of people are often involved in these projects and it takes some coordination for them to write the many thousands of lines of software code, which also requires management.
Git and GitHub are two of the most popular technologies used to manage such software projects. However, they can also be used for other purposes, such as for technical documentation. Providing good documentation is the key to being able to build on prior work, to make adjustments to our workflows, to recall the details of some process, and for students, it can help in retention and reflection. In the remainder of the semester, we will begin to install and configure some complicated pieces of software. In order to better understand what we will be doing, it will be helpful to document our processes.
Specifically, we will use Git and GitHub to begin to document and take notes as we install the Apache2 web server, the PHP scripting language, and the MySQL relational database. These three technologies, plus the Linux operating system, form what is called the LAMP stack. This stack forms the basis of most modern web applications.
I recently had the opportunity to sit down and interview ChatGPT, the artificial intelligent chat agent that has made headlines in recent weeks. I wanted to see how ChatGPT would respond to some questions about how Git and GitHub are used. I am, of course, being somewhat cheeky, but the reason that something like ChatGPT works at all is because it relies on data from across the web; that is, it relies on documentation.
I asked ChatGPT two, admittedly, leading questions. I think it's responses are on the mark.
Me: Why are Git and GitHub good tools for project management?
This was its response:
Git and GitHub are great tools for project management for several reasons:
Version control: Git is a distributed version control system that allows developers to track changes in the codebase over time. It provides a history of all changes made to the code, allowing developers to track down bugs and revert to previous versions of the code if needed. This makes it easy to collaborate with other developers, as everyone can work on the same codebase without interfering with each other's work.
Collaboration: GitHub is a web-based platform that allows multiple developers to work on the same project simultaneously. It provides tools for collaboration such as pull requests, code reviews, and issue tracking. This makes it easy for developers to collaborate and communicate with each other, share code, and make changes to the codebase.
Documentation: GitHub provides tools for documentation, including a wiki and a README file. These tools allow developers to document the project's features, installation instructions, and other details. This makes it easy for new developers to get up to speed with the project and for non-developers to understand the project's features and functionality.
Continuous Integration and Deployment: GitHub integrates with several continuous integration and deployment tools such as Travis CI, CircleCI, and Jenkins. These tools automate the build, test, and deployment process, ensuring that changes to the codebase are thoroughly tested before they are deployed to production.
Community: GitHub has a large community of developers who contribute to open source projects. Developers can use GitHub to showcase their work and collaborate with other developers on open source projects. This allows developers to learn from each other, build their portfolios, and contribute to the open source community.
Me: Then I asked a follow up question: "How might non-programmers use Git and GitHub?" This was its response:
Git and GitHub are primarily used by developers for version control and collaboration, but non-programmers can also use these tools for various purposes. Here are some examples:
Documentation: GitHub provides a platform for creating and sharing documentation. Non-programmers can use this platform to write and maintain documentation for their projects or organizations. For example, a technical writer can use GitHub to collaborate with developers and create technical documentation.
Project management: GitHub provides tools for issue tracking and project management. Non-programmers can use these tools to manage projects and track progress. For example, a project manager can create and assign tasks, track progress, and communicate with team members.
Content management: GitHub can be used as a content management system for non-programming projects. For example, a marketing team can use GitHub to manage content for their website or social media channels.
Collaboration: GitHub can be used as a collaboration platform for non-programming projects. For example, a team working on a research project can use GitHub to collaborate on data analysis and share findings.
Education: GitHub can be used in education for version control, collaboration, and project management. For example, a teacher can use GitHub to teach students how to collaborate on group projects, manage tasks, and share documents.
In summary, Git and GitHub can be used by non-programmers for various purposes, such as documentation, project management, content management, collaboration, and education.