Design, Documentation, Implementation, Maintenance, Resources, Security, Strategy, Testing Steps to Creating a Robust Software Development Strategy