“If you do not know how to ask the right question, you discover nothing.” - W. Edward Deming
In this software engineering class, we touched upon various concepts used to help make good software. Some of the most important ideas I feel we’ve come across throughout the semester are open source software development, coding standards, and issue driven project management
Open source software development involves public access to code meaning anyone can look at the code, use it, or help improve it. This can also include publicly available and free learning resources. During the semester we used free learning resources like freecodecamp to learn HTML and Typescript. Searching for answers on Google is also a big part of being a software developer. When problems come up—like bugs, error messages, or figuring out how to use a new tool, developers often search for help from Google, or the rising ChatGPT. Sites like Stack Overflow, GitHub, and software documentation usually has answers or similar examples that solve the issue. Learning how to ask the right questions and find reliable sources online is just as important as writing code. However, open source code is also relevant as many projects utilize open source code implementations. Open source software development saves time, helps you learn new things quickly, and is a skill every developer uses daily.
Coding standards are rules that help make code look similar regardless of the authors. These rules cover things like how to name variables, how to indent code, where to put brackets, and how to write comments. Coding standards are used in order to make the code easier to read and understand as code will most likely have to be read by multiple other people if working in a team. It also helps new team members get up to speed faster because they don’t have to figure out different styles. We used the tools ESLint to automatically check our code to match the standards, making it easier to keep everything consistent. Though it was very frustrating in the beginning to have to change the way I coded, I quickly saw how valuable it was when trying to make sense of the code snippets of my teammates.
Issue-driven project management is a helpful way to organize people and work when building software to plan and track work currently done. Each task is written as an issue, which clearly explains what needs to be done. These issues can be worked on one at a time, often by different people, which makes it easier for a team to work independently without having to wait for another person to complete their part. Having set deadlines for each issue also helps keep the project on track and makes it easier to see what still needs to be done. This system keeps things organized, reduces confusion, and helps everyone stay focused on their part of the project. During our final project, using project boards to organize what features needed to be implemented for each milestone made it very easy to find what each of us needed to work on and made the whole process much less stressful. In the future I would like to implement some of these features like splitting up large tasks into smaller ones and having hard deadlines for each to ensure considerable progress is being made.
Overall, searching for answers online, using coding standards, and issue-driven project management are all key parts of being a good software developer. Since it’s impossible to know everything, being able to quickly find answers online is a must. Coding standards keep the code clean and easy to read, especially when working with others. Managing tasks through issues helps break big projects into smaller, clear steps that can be done independently and on time. These concepts help make software development more efficient, organized, and less stressful.
*AI used to assist in defining terms.