Skipping the software deployment aspect is a very common mistake made by customers who order the software from providers. It can lead to multiple problems in the future. A customer may want to replace the current hardware infrastructure and in order to do so, he needs to install/deploy the software once again on a new device(s). It is a good practice to complete the deployment documentation.
Software Development Agreement should contain a requirement of including instructions on how to deploy the software that has been delivered. Such instructions will secure the customer in the future. What's also important is to check if the instructions are aligned with the newest version of the provided software.
Deployment in the SCRUM process
SCRUM methodology enables testing of new features as a sprint outcome. In other words, during the ”demo day” a customer (usually the Product Owner) can test finished ”user stories”. If deploying a new version takes time, there may occur a deployment problem. Updating the environment might require the Development Team to overcome some obstacles. In the future, it may have an impact on the software maintenance. It is also worth checking how much time it takes to deliver every single ”user story”. The desirable outcome is to deploy as soon as possible. Continuous Delivery is the best option possible, although it may not be suitable in every single case.
Experienced development teams can create disciplines to automate the deployment features. Such deployment can be done even in the production phase of the developed software. A discipline like that is called a Continuous Delivery and usually is applied in the web development projects.