Devops is vital to produce good systems/websites/applications and to maintain them.
One developer working on a new site/application which is not live yet - easy.
One developer working on a site/application which is now live with transactions/articles etc flooding in - not so easy.
(Remember folks - the days of static websites are pretty much behind us).
Many developers working on a live site/application simultaneously - very hard. Devops needed.
Get it right and the stakeholders can be extremely happy - a team (which, ahem, I set up the Devops for) received (expensive) champagne for a project delivered ahead of schedule.
Most of the time there are two main problems.
The first is developers who have no idea about Devops and have no inclination to work as part of a team. If you have developers like this then the only way Devops can be implemented is with CTO backing.
This brings us to the second problem. Most management do not understand the need for Devops. They think that their genius developers can all work together on the same systems without any management/devops - as if by magic. Then they are puzzled why nothing gets fixed anything like quickly.
And this is a key point - before a project goes live it's easy - any part can safely be bodged around with - progress seems to be good. As soon as it's live the development grinds to a near halt.
One of the answers is that the whole development and deployment to live needs to be sorted out at the very beginning of the project - before any meaningful development has taken place. So,as an extreme example - a live site could be initially set up with a single 'Hello World' HTML page (behind HTTP AUTH etc) and the developers are set up to deploy their changes safely to live during the development process. Site editors can also be adding content to the new 'live' site. Then, 'going live' means simply removing the HTTP AUTH - and - crucially - further development is carried out in exactly the same way that development was carried out during the site build.
The final part of this is missing from most places where I've worked - and it is key - difficult - but key. Automated testing - primarily BDD testing I would say over unit testing. Imagine your site/application having every single aspect built with a test implemented at the same time. I've worked somewhere where websites could have a few thousand tests each. So a developer makes a change - large or small - and after they submit their change three thousand tests run (on dev/QA/staging etc) to check everything else on the site/application still works. Beautiful - and the way it should be done.
And I agree with the article - this Devops needs to be maintained/enhanced throughout the project development cycle - and even into the maintenance cycle.