
Image Source: vecteezy
The fundamental concepts and skills in software engineering apply beyond more than just web application development. Web application development is just a skill that uses fundamental concepts. You could reuse these concepts and apply it to other skills like programming systems, machine learning, and the list can go on. A few concepts like open source software development and configuration management are important when it comes to collaboration. Not just these concepts but every concept are essential for building any kind of maintainable and reliable collaborative software.
Open source software development is where source code is available to the public and it allows collaborative possibilities with other developers. Github is a good platform for collaboration. You can create repositories and post your code publicly. Developers viewing it can fork it, and if working as an organization, you can view and edit the code you and your teammates worked on. Since many developers will be seeing your code, it is good practice to keep your code neat to meet the coding standards so everyone can clearly read your code. Coding standards is just a set of guidelines of how you can format your code so that developers see the version of your code in the same format that they are used to writing and reading. If code is easy to understand and read, the more it can be reused.
Applying open source software development in different projects beyond web application development include improving code reading, engaging in research projects, package creation and distribution, and project ownership. You can practice code reading just to get better at it. Since not everyone codes the same even if there are coding standards, open source software development is useful for getting used to reading other styles of code. When you do research, you explore a variety of codes that are open to the public, and dig further into them. Participating in a research project is also another thing as you engage with the community. You could also create and distribute packages for the public to use and download. Starting your own open source project can help you practice other skills like planning, guidelines, management, and maintaining a long-term vision.
Configuration management is the process of maintaining consistency of a software so that its performance is up to date and functionally running. This involves keeping track of the changes of the code, environments, and dependencies, which helps with team production maintain control of the project and avoid conflicts. It’s about being stable, controllability, and collaboration. Github not only stores your code publicly, but you can also update and commit your code on there, make branches to stay organized, and create merge commits to combine branches together so they are up to date. If the most recent version of the code doesn’t work, you are able to switch between versions, so you could have a later version functionally working on show as you fix up the most recent version. Without configuration management, it is easy for teams to lose track of what changed, who changed it, and what’s broken and why it broke.
Applying configuration management in general rather than web application development include project state tracking, environment setup and management, and version control. Project state tracking is knowing which version of the code is running where and what changed between the versions. Environment setup and management involves having your production be consistent by having a .env file to manage configurations like databases and URLs. Version control is managing and tracking code which is one of the basic skills to know how to do for any project. Using tools like Git to help with creating and switching branches to update code, resolve conflicts as needed then merge the versions together for a full update.