I'd have a minor quibble with that -- as someone who's done both application/product development and "dev ops": there's a difference when you write software that you yourself are the end-user of and when you write software for others to use/operate. That was the biggest challenge (initially) for me when I transitioned to "software engineering".
I've found that for infrastructure projects (especially open source ones, which may not always have dedicated QA resources available to them) it's a great idea to do "adversarial" testing/documentation: someone other than the developer must be able to follow the documentation and use the software in an environment other than the developer's desktop.