What are the things that we need to ensure before a software goes alive. I assume that the software is a commercial product. But most of them applies to OSS as well.
I made it community wiki so feel free to update the question and the list.
If we treat this as a check list, So far I've come up with these:
Code Related
- Exception Management, Proper Logging and Error Reporting are in place
- Ensure that Licensing Solution is in place (if required)
- Code is Obfuscated (if required)
- Get rid of all unrequired code (not referenced function, old code, etc.)
- Ensure that there is no unrequired DLLs in the installer (such unit testing DLLs )
- Compiled without debug symbols
- There is no hardcoded test stuff in the code
Test Related
- Test the installer / uninstaller
- Test the application in different OSes
- Test most common usages of the application
- Software License and dependant library licenses are deployed with the installer
- Works fine in different resolutions
Product Related
- A Website
- Help / Documentation
- Online Bug Reporting / Tracking facility for users
- No typo in the GUI or in the documentation
Other (suggested by @RN)
- Backward compatibility
- Integration with other products
- Data/Configuration migration to the newer version
I don't know if there is point of starting bounty in community wiki question but nevertheless I did. I hope this will attract more answers.