Chris McMahon: need for truly embracing DevOps has never been greater. Term refers to development and operations working together to meet business goals. In a healthy software environment, everyone involved in creating software is focused on releasing.
Chris McMahon: need for truly embracing DevOps has never been greater. Term refers to development and operations working together to meet business goals. In a healthy software environment, everyone involved in creating software is focused on releasing.
Chris McMahon: need for truly embracing DevOps has never been greater. Term refers to development and operations working together to meet business goals. In a healthy software environment, everyone involved in creating software is focused on releasing.
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.