There are 4 main reasons to change software
1.Adding a feature - Introducing new behavior to your software.
Example: adding a company logo to the navigation bar on the left side.
2.Fixing a bug - Correcting unintended or incorrect behavior in existing code.
Example: when a user clicks the button to go to the signup page, but it redirects to the login page instead.
3.Improving the design - Refactoring the codebase to make it easier to read, maintain, and collaborate on, while keeping the behavior the same.
Example: splitting a large class or function into smaller, more manageable pieces, then combining them appropriately.
4.Optimizing resource usage - Refactoring parts of the system to improve performance and efficiency.
Example: creating an index in the database to make queries faster.
Types of Software Changes
Every change to software carries risks, such as breaking user functionality, requiring significant development effort, creating conflicts within the team, or interfering with existing use cases.
To minimize risks, we should ask these three questions before making a change:
- What change do we need to make?
- How will we know that we've done it correctly?
- How will we know that we haven't broken anything else?
If you can confidently answer these three questions, you can make software changes more smoothly and safely. I hope this helps raise awareness whenever you're modifying software.
Credit: Working Effectively with Legacy Code Book by Michael C. Feathers
Top comments (0)