Software Development is an continuous process of refinement. PERIOD. What makes great about Continuous Deployment is that you can do this refinement, respond to change and make your customer happy every single day.
If you ask me, I would say this is the Holy Grail, one of the highest point in the evolution of software development processes.
When you put together some of the best of development practices: Agile, Test Driven Development, Continuous Integration, DevOps and Cloud Technology, what you get is Continuous Deployment.
This is not a easy transition but an essential one to be competitive and streamline the way you develop software.
There are lots of tools and processes, you need to get the right combination based on project and the preference
- Processes (LeanStartup, Kanban, DevOps)
- Source Control (Git, Code Review Tools)
- Architecture (LeanStartup, Kanban, DevOps)
- Continuous Integration (Hudson, TeamCity)
- Release Automation (Go, Bamboo, TeamCity)
- Monitoring (NewRelic,)
- Build Automation (Ant, Maven, Gradle, NAnt, MS Build)
- Cloud Management (Scalr, OpsWorks, Chef, Puppet, AWS, Azure)
- Containerization (Docker, Flynn, Panamax, Ansible)
If you want to change the way your team works then make Continuous Deployment is the top most priority.