First of all, what is DevOps? DevOps is a bit of a methodology and a bit of a job title or role in an organization, generally involving the crossover between development and operations. DevOps came out of the Agile process and community, with the intent to more tightly integrate and provide more overlap between Development and Operations teams.
Part of the motivation too is with the shift to cloud services more of the operations focus is on managing software deployments and configuration than dealing with hardware and networking.
There are really two sides to what I would call DevOps. On one hand, there are operations tasks more centered around supporting the development process, like continuous integration and managing deployments. On the other hand, there are development tasks more centered around supporting the management and monitoring of servers and server environment.
Similar trend particularly in startups
Mostly in startups — fewer people doing more work
Full-Stack Developer is a similar melding of more specialized roles
Challenge when overused —
Everyone is DevOps all the time
Jack of All Trades, Master of None
Task-switching is cognitively expensive development -> qa -> release mgt -> operations
Good for developers to experience —
Sometimes can get into a bubble
Understand how code works in the wild
No better way to get a bug fixed than to put a developer on the Nagios alarms for it