Here’s one more reason to work towards full stack development in your DevOps organization: happier, more productive developers who stay in their jobs longer.
Lately I’ve been seeing more and more of the engineers I know personally leaving their full-time jobs in DevOps organizations to become consultants. In most cases their motivation isn’t about money. It’s about keeping things interesting.
Engineers tend to get bored when they have to focus on the same problem set day after day. Before too long they’re looking to move on. Supporting your engineers to work across your entire stack-from the operating system level to the configuration management level to the cloud provider level to the application code to the deployment level, keeps people engaged.
Ideally, with a full stack development approach there is “no line” between engineers working on code and engineers working on infrastructure. Naturally people will tend to specialize, especially given the growing complexity of today’s technologies, but that’s the basic idea. You want people to understand your whole stack top-to-bottom, so they can treat the entire application infrastructure as “one thing.”
This isn’t likely to happen on its own in most situations. You need to explicitly provide your developers with the tools/technologies, job roles and organizational support they need to think full-stack. As a developer’s view widens, the scope of his or her day-to-day work and their interest in doing it will also expand.
At the same time, you’ll also see the core benefit of full stack development, which is the whole point of DevOps: the elimination of organizational silos, leading to development and operations coalescing into a unified team, leading to improved collaboration across the development team, leading to faster delivery of better applications. This will, in turn, presumably result in successful attainment of goals for your team and your organization-yet another reason why people want to stay in their full-time jobs.
So it’s win-win-win with full stack development. Developers get maximum job satisfaction, managers and HR can avoid the challenges and expense of hiring new engineers, and businesses get the production software they need to succeed.