Coding, Development Process, Documentation, Project Management, Testing Creating Quality Software: 5 Essential Components of Professional Software Development