Why Octopus?
Decades from now, I want the IT industry to be known not just for its innovation and creativity, but for its ability to deliver software projects reliably. There's a lot of work to do, and I think Agile principles of frequent, high-quality collaboration and embracing change are playing a big part in getting us there. Along with the human to human improvements, we're also adopting engineering practices to boost our chances of success - source control, continuous integration, and unit testing for example make an enormous difference.
Delivering even a small software project is a huge undertaking. There are an unlimited number of practices that we'd like to adopt, but since time is always so critical, we always have to make trade-offs. In my experience, there's one practice that always falls into the too-hard basket: automated deployment.
The state of the art in deployment on the .NET stack leaves a lot to be desired. At big companies and small, I see programmers routinely remoting into production machines to patch configuration files, or writing long and semi-complete documents because automating deployments was too time consuming. After months of repeated test deployments, production deployments still fail and are rushed because of bad automation or incomplete documentation. It's hampering our ability to deliver and give our customers confidence. We can do better.
I believe wholeheartedly that automated, frequent, repeatable deployments is one of the most important practices we can follow. There's no compelling, standardised, complete solution out there, and I don't know if Octopus will ever become one either. But I know that we as an industry would be much better off if we could nail this problem, and I'm going to try my best to do something about it.