You are on page 1of 8

DevOps:

Tips for Fostering True


Collaboration



Page 2 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


Departmental silos are breaking down, and
development and operations are collaborating more closely
to meet business goals for software products and services. In
this E-Guide, discover why collaboration is essential to
release management success, and learn how to leverage
DevOps to increase collaboration and decrease time to
market.

DevOps: Fostering Collaboration in Software Development
By: Chris McMahon

DevOps is hardly a new idea, but the need for truly embracing DevOps has
never been greater. The term refers to development and operations working
together to meet business goals for software products and services. The call
for DevOps is growing today for several reasons, one being that software
organizations' departmental silos get quickly uncovered when using agile
methodologies, which require business, IT and development collaboration.

In this tip, I'll explain why DevOps practices create productive software
organizations and ways to put DevOps into action.

Since the beginning of commercial software, in healthy software cultures,
development teams have been an integral part of releasing software. In a
healthy software environment, everyone involved in creating the software is
focused on releasing the software as painlessly as possible.

DevOps in action
On a healthy software team, people's roles overlap, information is exchanged
among team members without need for artificial boundaries or gateways, and
releasing the software is a happy occasion for everyone. Here is a scenario
that shows how this continuum of roles can work.

All software starts with requirements of some sort. Maybe those
requirements are called stories, or maybe the requirement is just an itch that

Page 3 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


needs scratching. There is usually a role on a software team concerned with
creating requirements for the team to build. For the sake of convenience, call
these requirements "stories" and call the role creating them "product owner."

As agile expert Alistair Cockburn said once, and Ron Jeffries has repeated
incessantly, a story is a placeholder for a conversation.

The first conversation the product owner needs to have is with those in the
developer role. On a healthy software team, the product owner and the
developer will have detailed discussions about the story, its purpose, how it
fits with other stories, etc. etc. Only when both product owner and developer
understand what is necessary and what is possible for each story is it
possible for the team to build the software correctly.

As development proceeds, it is often the case that dedicated software tester
enters the conversation. A software tester will understand both the stories
and the ongoing development work to manifest those stories, and will be
constantly comparing the team's knowledge of the ongoing work to the
greater environment of the whole application, as well as exercising the
software in test environments that mimic production environments far more
than developer environments usually do. As the stories become real, testers
are thinking about the bigger picture and whether the particular details of this
particular story will cause any issues for users or maintainers when the
software ultimately is released.

There may be other parties involved in the conversation, perhaps a database
administrator (DBA) or an architect or a project manager. Each of these roles
may also have critical input into the development process.

So the product owner is discussing the implementation of the stories with the
developer, and the tester is validating both the requirements and the
implementation with the product owner and the development staff.

Bring in the system administrator
The role on the software team that maintains the product in production is
generally the system administrator, or sysadmin. This role has the ultimate

Page 4 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


responsibility to make production code run on production hardware in a
production environment. It would be silly to leave the sysadmin out of the
software development conversation.

For one thing, the sysadmin needs to know the business case for the
software, because the sysadmin is often the front line for user feedback, and
it is impossible to evaluate user feedback with no knowledge of the purpose
and context of the features of the software in question. Therefore, it is
important that the product owner and the sysadmin have conversations about
the ultimate purpose of the software being developed.

For another thing, the sysadmin must be aware of the architecture and
implementation details of the software to be released. It is not unusual for a
development staff to accidentally make an architecture choice that cannot be
supported in a production environment. It is also common that software
releases require data migrations that must be completed very carefully. It is
also common that a software release will require upgrades of specific
aspects of the production environment to specific versions of specific
supporting libraries, frameworks, etc. Therefore it is critical that sysadmins
have an ongoing discussion with developers about the implementation
details of the software being created.

Software testers are the ones who know how exactly the software might fail.
Sysadmins are the ones who have to deal with failures in production. An
ongoing conversation between testers and sysadmins is highly desirable,
because the sort of knowledge that testers have about potential points of
failure can save a sysadmin hours or days of pointless work in the case of a
failure in production.

In their daily jobs, sysadmins interpret business requirements; write code to
automate their own processes; and investigate every kind of failure.
Sysadmins already do the work of product owners, developers, and testers,
just in a different context. It is a mistake to exclude sysadmins from the
ongoing conversations necessary for software development to happen.



Page 5 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


How to foster DevOps collaboration
Sysadmins are busy people. Here are some suggestions to include them in
the conversation:

A company-wide brown bag lunch policy is often helpful. The
development staff can discuss their recent work with sysadmins,
management, other teams, etc. etc. in an informal and relaxed way.
This technique can be effective when more formal barriers may be in
place in everyday work.

Dedicated training for sysadmins just before releasing is effective. In
this situation, the development team walks through the technical
details of all the new features in the release with the sysadmin staff,
having the sysadmin staff criticize the work. Leave time to make
changes suggested by sysadmins! Interestingly, this sort of training
is often conducted by the testing and QA staffers, who are generally
working in test environments that resemble the sysadmins'
production environments very closely.

Have sysadmins involved in creating and maintaining dev and test
environments. Sysadmins are smart people and often know tricks for
maintaining particular kinds of computer environments that have
escaped the notice of developers and testers. Besides making the
developers' and testers' lives better, the sysadmin learns about
whatever quirks and issues might be generated by the software
being developed.

DevOps is old news
Healthy teams have been working in a DevOps sort of way for decades. The
only thing new about the idea behind DevOps is that there is now a group of
dedicated developers working to spread the word to those teams that are not
so healthy.


Page 6 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


Release Management: How DevOps Facilitates
Collaboration
By: Kevin Parker

How is DevOps different from traditional release management?
Change: it is what we are all about. The rate of change is something every
organization should measure. It happens everywhere in the business but it is
often the changes in IT systems that have the biggest impact. Who controls
those changes has long been a closely guarded privilege. But today release
management is a board level discussion because it affects growth at one
extreme and risk at the other.

The development teams are tasked with creating new systems to meet the
needs of the business. The operations teams are concerned with availability
of services. While the motto of Ops might be if it isnt broken, dont fix it, the
Dev teams are always eager to deliver faster, smaller, cheaper. The tension
that results from this is compounded by whom release management reports
to. If they report to Dev, they have the pressure to release more and more
quickly to meet time-to-market constraints. If release management reports to
Ops, the pressure is to slow the rate of change and reduce risk.

Not surprisingly then, the relationship between Dev and Ops has too often
been adversarial. In any IT shop, there are numerous stories told of the
developers not testing before releasing and of change managers who never
approve any changes.

The DevOps movement tries to address that by stating the obvious truth:
without collaboration, release management will fail. Getting Dev and Ops on
the same page and getting them to understand each others needs is the just
first step.

Getting Dev and Ops to trust each other is critical. Creating systems that
integrate the activities of Dev and Ops makes the biggest single difference
and by far and away the most effective tool for that is an online release
calendar. By showing what is planned to release and when, both Dev and
Ops can see the same information. By making the updating of this calendar

Page 7 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


an automatic by-product of the development activities, the Operations teams
are informed early on about proposed and in motion releases.

Ops now can have a meaningful conversation with Dev about load balancing
the release schedule months ahead of the release window instead of the
morning before the release. Dev can see the open release holes and
manage their project to those dates. And when the inevitable date change
happens Dev and Ops stakeholders can be alerted and can react and even
sign off to say they have absorbed the impact or not.

DevOps is a collaborative approach to release management. But let me
leave you with this thought: who should DevOps report to?




Page 8 of 8 Sponsored by
DevOps: Tips for Fostering
True Collaboration

Contents
Devops: Fostering
Collaboration in
Software Development
Release Management:
How DevOps
Facilitates
Collaboration


Free resources for technology professionals
TechTarget publishes targeted technology media that address your need for
information and resources for researching products, developing strategy and
making cost-effective purchase decisions. Our network of technology-specific
Web sites gives you access to industry experts, independent content and
analysis and the Webs largest library of vendor-provided white papers,
webcasts, podcasts, videos, virtual trade shows, research reports and more
drawing on the rich R&D resources of technology providers to address
market trends, challenges and solutions. Our live events and virtual seminars
give you access to vendor neutral, expert commentary and advice on the
issues and challenges you face daily. Our social community IT Knowledge
Exchange allows you to share real world information in real time with peers
and experts.

What makes TechTarget unique?
TechTarget is squarely focused on the enterprise IT space. Our team of
editors and network of industry experts provide the richest, most relevant
content to IT professionals and management. We leverage the immediacy of
the Web, the networking and face-to-face opportunities of events and virtual
events, and the ability to interact with peersall to create compelling and
actionable information for enterprise IT professionals across all industries
and markets.

Related TechTarget Websites