As a software engineer, i feel overwhelming with the software development process. Although, it's been more than decades to learn about it and plus my doctoral degree is in software engineering. i don't have any confidence that our software will have less bugs, better performance, and stable architecture. This is because several reasons such as:
- requirements changes
- lack of better architecture (chaos architecture)
- untested software
So my real question is how we create better software and eliminating that problem. Let's think simple solution about this:
- Requirements changes --> unavoidable --> we should take care the changes by giving our customer chance to change as long as they pay
- Lack of better architecture --> can be avoided --> we should create a standard platform in the team and the architect should maintain the document so it should up to date
- Untested software --> can be avoided --> we can create a standard process to make sure the software is tested and the bugs is eliminated.
Requirements Changes
the way to improve the requirement process is by
- Creating a series workshop / meeting session to improve the requirement visibility
- Managing clear documentation about the requirement and the requirement changes.
- Tracking the changes about the requirement and the requirement changes.
So what tool do you have for these:
- Azure DevOps
- Microsoft Planner
- Microsoft OneNote
You can learn further here Manage requirements, Agile methods - Azure DevOps | Microsoft Docs
Lack of Better Architecture
The way to improve better architecture are:
- Evaluate the architecture with the architecture best practices
- Learning the new technology that can fulfill you architectural need
- Implement standardization of your platform and architecture task
So what tool do you have for these:
- Visual Studio 2022 or later to check the code map, and code analysis
- Visio or PowerPoint to create and propose your architecture work
- Azure WIKI to document your architecture
You can learn further about the architecting here
Untested Software
The way to improve your software quality are:
- Regular testing. For example, do software testing for each iteration
- Creating your testing script. For example, you can create manual testing on Azure DevOps or automated testing with Visual Studio
- Get Feedback from customer. Do feedback session with the client for each iteration.
So what tool do you have for these:
- Visual Studio unit testing and testing feature
- Azure DevOps testing feature
- Microsoft Teams for documenting your meeting
You can learn further about the testing here