In software projects, there are number of chances that build/packaging errors may occur. And the cost to fix the build errors is high especially in an environment were water fall software development methodology is being followed. This is because some build errors are not caught during smoke test and found late during system integration testing. In the latest Agile/Scrum methodologies, the builds are made continuously on daily basis and an engineer verifying the build. Hence it becomes extremely important to double verify the build.
Some of the common causes of build errors are
- Manual Method of building & packaging: In today's complex software systems, manual builds are never encouraged and are definitely error prone.
- Build procedure getting changed frequently: This happens because new release assets can get added during software development and existing build procedure becomes obsolete and engineers will have to exercise extra caution on the current build procedures.
- Changing the build engineer frequently: The complete knowledge transfer may not happen. Certain gaps in understanding the build procedures cause the build errors to occur.
- Lack of build verifications: The build is not verified for correctness.
Let me share some best practices that we can follow to avoid/minimize the build or the packaging errors.
- Automate build & packaging process: Automation is said to be avoiding the build errors, however the automation scripts have to be verified for correctness before you trust the automated build. Then automation not only avoids build mistakes but also takes less time to create release deliverable. Have a look at the article 'How to automate software builds'.
- Have a build verifier: This can be a software tool or a manual method of verifying the built software deliverable for correctness. No matter how much caution you have taken while building/packing the software, believe that there can always be errors in doing that and hence verification is very much required. The verification typically has elements such as necessary of deliverable and their version numbers are correct or not, verifying unit test execution results etc.
- Smoke Test the build: Certain build errors can be beyond what build verifiers do. In that case, certain smoke test cases can be performed to possibly detect the build mistakes. These smoke test cases high level test cases covering main functionality of the software itself.
Build errors/Mistakes can cause schedule slippages and hence a dedicated build engineer who understands the software system and is aware of the automated build scripts, recent software changes etc is pretty much required.
No comments:
Post a Comment