DevOps Teams – Establishing a DevOps Team

DevOps Teams – Establishing a DevOps Team

What is DevOps? To me, DevOps is a shift in thinking and culture where a group of people who have skills with development, testing and IT operations work together to deliver working systems. Traditionally, development processes are different and separate from operational processes. Operational folks typically do not talk to development folks. This leads to development owning the software issues and operations owning environmental issues. This leads to working software in development and test environments but failures in production environments. The main thinking with DevOps is you are not delivering just working software; you need to deliver a whole working system which means code and environment. You don’t get credit if the software only works… Software needs to work in production.

I was asked one day by a manager to establish DevOps. I began to really think how this could be done. I fully understood that DevOps is not really a team but a mind shift and a cultural shift. Development thinking and operations thinking need to come together as part of the development and release process. Developers need to work with operations to deliver working systems not just working code. Development and operations need to plan together and create architectures together. They should also work to create reduce manual tasks such as deployments. What you don’t automate will eventually slow the team down.

The company that I worked for had a separate operations team and separate development and test teams. Both teams did not really care to talk to each other. In their minds, the functions they performed had no associations with the other. Development worked on software and operations worked on environments and production issues. The ticketing system also enabled each team to stay separated. When there was an issue with environments, operations submitted a ticket and they did not have to talk with any developers. If there was an environment issue, developers would submit a ticket to operations. Developers did not have to talk to operations people at all. This was the culture at the company. Establishing a DevOps culture would be a very, very challenging task. It is already difficult to change a culture but to try to change a culture when people do not believe it should be changed is much harder.

I thought about it long and hard. What I needed was some vehicle or bridge where I can glue software development to operations. What I decided to do I think a lot of people would consider “taboo” or unthinkable. DevOps purists would shun me and tell me that DevOps is more of movement. I did what I thought was the best option in my particular situation. I could not change the culture nor did I have support to do so. I did something unconventional… I created a DevOps team. Yes, I said it. I created a DevOps team. I know DevOps is a movement and DevOps purists have steam coming out of their ears and noses like a charging bull. However, whatever people think… it worked for my situation.

I carefully crafted this DevOps team. I hired the best operations folks with deep development experience. I wanted to be able to support operational activities but be able to speak development. This DevOps team would be glue to create a DevOps culture. I believe this team would eventually be absorbed by the development groups and we would not have a DevOps team longer-term. I spent a lot of time instilling the DevOps manifesto with the team. They believed in the DevOps manifesto and lived it.

 

DevOps Team Structure

The DevOps team was organized centrally but at least one DevOps team member was integrated with each Delivery Team. The DevOps team member would attend their Delivery Team’s scrums and meetings. Basically, they were part of the Delivery Team. The DevOps team or organization met daily. The DevOps team conducted daily scrums. At the scrum call we talked about what was happening across teams and worked together to ensure that all the teams were supported and set DevOps standards. If you did not have a central DevOps team, there would be a risk of having each team create different processes and adopt different tools. Having a central DevOps team enables tools and process standardization. One of the goals of DevOps is to create one process for deployments. This one deployment process would be used to deploy to Development, Test, and Production environments. This would be challenging to create if there was no central authority to establish this process. Each team may development and implement their own way of deploying to their environments.

 

The DevOps team did have a manager that worked on any HR tasks. The manager was also there to provide a final decision when needed. The DevOps team was a self-managing team. The team was empowered to make decisions and prioritize work

devops teamt

 

The Ultimate Goal  for the Central DevOps Team

The ultimate goal for the Central DevOps team is to integrate seamlessly with the Delivery Teams to help them adopt the DevOps thinking and philosophy. The hope is that the Delivery Team will think about delivering working systems and not just working software.

 

How Does the DevOps Team Transform Organization to a DevOps Culture and Thinking?

  • Evangelize delivering working systems, not just working software
  • Be part of, instead of against, the Delivery Teams. Work as part of the Delivery Team. Contribute to the planning and architecture meetings. Ensure teams are striving to deliver working systems.
  • Enable the Delivery Teams to resolve environment issues as a team. Help to facilitate enabling teams to self-service. For example, ability to deploy themselves and to troubleshoot environment issues.
  • Automate everything and provide the automation tools to the teams.

 

How to Establish a Central DevOps Team

  1.  You will need to hire enough DevOps staff for each team that you support. You need to dedicate a DevOps member to be part of that team. Having a DevOps member only be a percentage of time will not work. People will not regard that member as a true member on the team. Don’t cut corners here.
  2. A good DevOps candidate will have operational knowledge for the type of systems you support. For example, if you support Linux machines then you want to get someone that is familiar with Linux. A good DevOps candidate will also have strong scripting or development skills. For example, if your systems are Windows based then you should look at a candidate with PowerShell experience. If your systems are Linux based then you should look at a candidate with Bash or Perl scripting experience. The candidate should have experience with the same tools that your development staff is using. You are looking for someone that has an operations background but also a development background. Someone who is 70% operations and 30% development. You will need the scripting experience to help automate your deployments. Automating your deployments will be one of the very first goals to strive for. Remember, DevOps is combining development and operations… your candidate should have experience in both these worlds.
  3. You will need to find a development or delivery team that is open to integrating DevOps. You may need to get an executive sponsor to help to incorporate DevOps.
  4. Establish a DevOps charter. Example: The Development Operations Team was formed to enable development teams to deliver better software, faster through right blend of automation and human interaction. The DevOps mission is to continually strive to remove development constraints, enable development to self-service, optimize the system as a whole and embed operations into the development process. The highest priority is to satisfy the customer through early and continuous delivery of valuable functionality. DevOps strives to deliver working functionality frequently with a preference to a shorter timescale. DevOps strives to provide EaaS – Environment as a Service: On-Demand Development and Test Environments. DevOps achieves through continuous integration techniques and information radiators. Working software successfully delivered by sound systems is the primary measure of progress (code + environment).
    1. As part of your charter you should include mission, scope, members, how you operate and the desired end result.
  5. Make sure everyone on the DevOps team clearly understands the Charter and believes in it. What my help is establishing a charter together. The whole team comes together and discusses and agrees on the charter. Have them sign the charter to ensure they fully believe in it.
  6. Empower the DevOps team to self-manage. Ensure they can make decisions themselves regarding the work they do. Have them prioritize the work and freely discuss issues.
  7. Hire a manager to help coordinate activities with the DevOps team if needed. You need someone be the final decision maker if the DevOps team is unable to reach decision. The manager for the DevOps team will also handle any HR responsibilities. The manager is mostly there to help unblock issues and to support the team.
  8. Establish boundaries and clear lines of communication. Who should the team talk to for X. What is the escalation process? Clearly set expectations for the team.
  9. Your charter, guidelines, documentation, and policies should be kept in some central location such as Wiki pages. The Wiki pages should be accessible to all teams and those teams they support.
  10. Establish daily scrum meetings for the central DevOps team.
    1. In the scrum meetings, you will talk about any cross team issues and prioritize any resolution.
  11. Assign DevOps team members to a development or delivery team. The DevOps team member will need to participate in that team’s planning and scrum. They are actually part of that team. The daily DevOps scrum meeting is merely for coordination purposes and to help create standards.

 

Alden Mallare

Alden Mallare

Hi there. My name is Alden Mallare and I am currently a Software Development Manager. I've been in the software industry for over 15 years with experience in software development, software management, test management, and test automation. I am passionate about Agile and consider myself as an Agile Evangelist. On the side, I help churches build awesome websites. I also created MusingMashup.Net to share my thoughts and hopefully help others through my writing.
Alden Mallare

Latest posts by Alden Mallare (see all)

16 Comments

  1. Greetings from California! I’m bored to tears at work so I decided to
    browse your website on my iphone during lunch break.

    I enjoy the information you present here and can’t wait
    to take a look when I get home. I’m amazed at how fast your
    blog loaded on my cell phone .. I’m not even using WIFI, just 3G ..
    Anyhow, very good site!

  2. Hello There. I found your blog using msn. This is an extremely well written article.
    I will make sure to bookmark it and come back to read more
    of your useful information. Thanks for the post.
    I will definitely return.

  3. Hi, just wanted to mention, I enjoyed this blog post. It was helpful.
    Keep on posting!

  4. I really love your site.. Excellent colors & theme. Did you make
    this amazing site yourself? Please reply back as I’m attempting to create my
    very own site and want to learn where you got this from or what
    the theme is named. Appreciate it!

  5. Touche. Solid arguments. Keep up the amazsing work.

  6. Fine way of telling, and pleasant paragraph to obtain information about my presentation subject, which i am going to deliver in university.

  7. Just desire to say your article is as astonishing.
    The clarity in your post is simply spectacular and i can assume you
    are an expert on this subject. Fine with your permission let me
    to grab your RSS feed to keep updated with forthcoming post.
    Thanks a million and please carry on the enjoyable work.

  8. Hi there! I’m at work surfing around your blog from my new iphone 4!
    Just wanted to say I love reading through your blog and
    look forward to all your posts! Carry on the outstanding
    work!

  9. Nice blog here! Also your web site loads up fast! What web host are you using?
    Can I get your affiliate link to your host? I wish my web site loaded up as fast as yours lol

  10. Hi there it’s me, I am also visiting this site regularly,
    this website is truly pleasant and the people
    are truly sharing nice thoughts.

  11. This is a very good tip especially to those fresh to the blogosphere.
    Simple but very accurate info… Appreciate your sharing this one.

    A must read article!

  12. What’s Going down i’m new to this, I stumbled upon this I’ve discovered It positively helpful and it
    has helped me out loads. I am hoping to contribute & help other customers like its helped me.
    Good job.

  13. Oh my goodness! Incredible article dude! Thank you so much, However
    I am experiencing troubles with your RSS. I don’t know the reason why I cannot join it.
    Is there anybody else having similar RSS issues?

    Anyone who knows the answer will you kindly respond?
    Thanx!!

  14. This design is wicked! You obviously know how to keep
    a reader amused. Between your wit and your videos, I was almost moved to
    start my own blog (well, almost…HaHa!) Wonderful job.

    I really enjoyed what you had to say, and more than that, how you presented it.

    Too cool!

  15. Hello There. I discovered your blog using msn. This is a really neatly
    written article. I will be sure to bookmark it and return to learn extra of your helpful information. Thanks
    for the post. I will certainly comeback.

  16. Great post. I was checking continuously this weblog and I am inspired!
    Very helpful information specifically the last section 🙂 I take
    care of such info much. I was looking for this certain info for a long time.
    Thanks and good luck.

Leave a Reply

Your email address will not be published. Required fields are marked *