Allow me to enjoy myself

You know what I am talking about if you have seen Ted Lasso. At the end of Season 3, Episode 7, Sam’s Dad, Ola, does a simple dance while cooking with his outstanding footballer son.

Why you must ask permission to “enjoy yourself” is part of the problem. We all need to stop and “enjoy ourselves” occasionally.

Hope that makes sense. 🙂

It’s been a while

Yeah, four years. I always thought I would post regularly – but something always got in the way. After stints at Tokio Marine HCC and Pye Barker Fire & Safety, I am back trying to determine where I want to go. Fractional CTO and Board Member are two areas I am pursuing.

The kids are home from Arizona State – the grades are reasonable, and their mental state is excellent. They are excited about ASU’s first major bowl game on Jan 1. Since we live in Houston, we want to play Texas in Atlanta! It would be great for the Sun Devils to tame the Longhorns, especially with Skattebo in the backfield.

This morning, I remembered the song “Never Gonna Give You Up,” especially the eulogy scene in Ted Lasso. I never thought the waterworks would start, but they did. Every once in a while, I need waterworks in my life. It helps make me feel “human.”

DevOps Certifications

I keep stressing that DevOps is a mindset that needs to be embodied within the entire organization. Not just IT folks, but C-level and every other traditional division within the organization. Unfortunately, in order to determine the level of competency that Humans in DevOps have, certification programs have popped up to give prospective employers the ability to assess DevOps skills in individuals. As John Willis coined, the key ideas in DevOps are Culture, Automation, Measurement, and Sharing. You will find certification courses in all of these areas.

Some key vendors include:

  • DevOps Institute (DOI): The DevOps Institute is dedicated to advancing the human elements of DevOps success. They use a role-based approach to certification that focuses on the most modern competencies and hireable skills required by today’s organizations adopting DevOps. They have an open testing program that removes the requirement of formal training allowing those who already possess the skills, knowledge, and experience in the domain to gain direct access to DevOps Institute’s extensive portfolio of certifications.The types of certifications include:
    • DevOps Foundation – The DevOps Foundation certification validates a baseline understanding of key DevOps terminology, concepts, and practices to ensure everyone is talking the same language and highlights the benefits of DevOps to support organizational success.
    • Site Reliability Engineering (SRE) Foundation – The SRE Foundation certification validates knowledge of SRE basic vocabulary, principles, and practices.
    • DevOps Leader (DOL) – The DevOps Leader (DOL) certification is intended for anyone who wants to take a transformational leadership approach and make an impact within their organization by implementing DevOps including IT team leaders, managers, directors, business stakeholders, practitioners, and consultants.
    • DevSecOps Engineering (DSOE) – The DevSecOps Engineering (DSOE) certification is intended for IT Security professionals who are skilled at security as code with the intent of making security and compliance consumable as a service. A DevSecOps Engineer uses data and security science as their primary means of protecting the organization and customer.
    • Continuous Delivery Architecture (CDA) – The Continuous Delivery Architect (CDA) certification is designed for candidates who are engaged in the design, implementation, and management of DevOps deployment pipelines and toolchains that support Continuous Integration, Continuous Delivery, Continuous Testing, and potentially Continuous Deployment.
    • DevOps Test Engineering (DTE) – The DevOps Test Engineering (DTE) certification addresses testing in a DevOps environment and covers concepts such as the active use of test automation, testing earlier in the development cycle, and instilling testing skills in developers, quality assurance, security, and operational teams.
    • Certified Agile Service Manager (CASM) – The Certified Agile Service Manager (CASM) certification is designed to validate knowledge of Agile Service Management and Scrum basic vocabulary, principles, and practices. A Certified Agile Service Manager (CASM) is the operational equivalent of a ScrumMaster.
    • Certified Agile Process Owner (CAPO) – The Certified Agile Process Owner (CAPO) certification validates knowledge of process owner responsibilities and the practices and tools needed to oversee the design, reengineering, and improvement of IT Service Management (ITSM) processes; particularly in the context of Agile Service Management.
  • DevOps Agile Skills Association (DASA): The DASA DevOps Certification Program covers specific topics from the DASA DevOps Competence Model, helping DevOps and Agile teams to build the right mix of skills and capabilities. DASA identifies three broad levels of expertise and has developed a certification program designed for each profile.
    • Foundational Level (Know) – Builds an understanding of DevOps: scope, key concepts, terminology, and principles.
    • Professional Level (Apply) – Builds the capabilities relevant for professionals working together in a DevOps team. There are three Professional certifications: Enable and Scale, Specify and Verify, Create, and Deliver.
    • Leadership Level (Lead and Enable) – The Leadership Level focuses on the abilities to lead and enable. This Program is for Leaders, Coaches, and Product Owners.
  • DevOps Research & Assessment (DORA): DORA does not offer certification programs; rather DORA brings years of Research and Assessment knowledge to teams and organizations looking for ideas on how to bring the DevOps mindset to fruition. The Accelerate State of DevOps Report from DORA is the longest-running, academically rigorous research investigation into the capabilities and practices that make DevOps and transformation effective. Teams can learn how to achieve elite performance in software development and delivery with the 2019 report. The DevOps capabilities researched in the report are explained in the book, “Accelerate” by Dr. Nicole Forsgren, Jez Humble, and Gene Kim. Follow the book to implement steps to improve stability and throughput in your team or organization.

Technical certifications also exist that allow DevOps Engineers to showcase their skills and abilities in DevOps Operations. Some of the key certifications are:

  • Docker Certified Associate – This Docker certification program is for the Docker practitioners with some relevant experience of working with Docker, the DevOps tool. Like other DevOps certifications, the aim of this exam is to provide a valid credential to the Docker practitioners.
  • Kubernetes Certification – The Cloud Native Computing Foundation (CNCF) and the Linux foundation collaborate to organize the Kubernetes certification program to validate professionals working on this software. Kubernetes is one of the top DevOps tools and thus Kubernetes certifications are among the most demanded DevOps certifications. There are two certification options; The Certified Kubernetes Administrator (CKA) and Certified Kubernetes Application Developer (CKAD) programs.
  • AWS Certified DevOps Engineer Professional Exam – There are a number of AWS Certifications for the candidates performing different roles and responsibilities in the AWS cloud. AWS DevOps Engineer Professional certification exam is a professional level exam that recognizes the technical skills and expertise of the candidates to provision, operate, and manage distributed applications and systems on the AWS platform.
  • AZ-400: Microsoft Azure DevOps Solutions Certification Exam – Among the role-based Azure certifications, AZ-400: Microsoft Azure DevOps Solutions certification exam validates the skills and expertise of Azure DevOps professionals. The Azure professionals, working as DevOps engineers are mainly aspired to get this certification and so this certification lies in the list of best DevOps certifications.
  • Puppet Professional Certification – One of the top DevOps certifications is Puppet 206 – System Administration Using Puppet Exam. This certificate will let you be recognized as a Puppet Certified Professional (PCP).

There are other sites like DevOps University that provide certifications as well. The sites above are the most popular to develop skills and abilities for DevOps. Nothing will eventually beat regular practicing but these guides and certifications will help you familiarize with common DevOps terminology and operational guidelines.

Email: sagar@vnvdevops.com

DevOps in a Remote world

With the prominence of Agile, DevOps, and SRE, how do things change when we move to working remotely?

Agile and Lean is about how teams iterate

Can you chunk features into sizeable, bitsize stories that can be designed, developed and tested in 2-3 days or less? With the business and development teams co-located, the task of “pairing” stories down to size becomes easier because you can ask questions to get to a “minimally viable product” much faster. When people are remote, teams now have to turn to tools to help get answers to clarifying questions.

There are so many advanced tools and methods of engagement out there that will assist in helping clients adopt Agile techniques.

    • Video Conferencing provides coaches the ability to deliver content in an interactive manner
    • Utilizing surveys allow coaches to get responses anonymously and yet understand where the audience is coming from in their own development
    • The coaches work with the tools the client has:
      • Lucid Chart
      • Storm Board
      • Trello
    • Coaches follow-up with exercise facilitation and coaching, to allow Product Owners and Scrum Masters through the process allowing them to run it themselves.

DevOps is about how teams collaborate

Managing tools and processes needed to collaborate becomes the role of “DevOps”.

How to ensure teams thrive in a remote DevOps Transition covers the notion of collaboration perfectly, especially in a remote world.

SRE (Site Reliability Engineering) is about how teams automate.

SRE is “DevOps reversed”. From an Operations’ perspective, how should changes be automated faster so that users can leverage functionality without experiencing any downtime. With teams co-located, questions can be passed back and forth in person. But, how do you do that when you can’t see the person? The following articles summarize the make of distributed SRE teams.

The Makeup of Successful Geographically-Distributed SRE teams: Part 1

The Makeup of Successful Geographically-Distributed SRE teams: Part 2

My toolbox for DevOps sites:

XebiaLabs Periodic Table – https://xebialabs.com/periodic-table-of-devops-tools/

DevOps Terminology – https://www.plutora.com/devops-at-scale/terminology-glossary

DataOps / DevSecOps – https://dzone.com/articles/dataops-leveraging-devsecops-principles-for-secure

LinkedIn – linkedin.com/in/sagarkarma

Twitter – @sagarvnvdevops

Daughter’s birthday is a memorable day

Yeah, we’re still in quarantine, but who can’t help but celebrate their daughter’s birthday. We had a ton of Zoom calls planned, starting with Satsang at our beloved Chinmaya Mission. We then spoke to relatives from around the world and did curbside pickup from Olive Garden. We watched a couple of movies and called it a night.

She got a computer for her birthday. I figured if these kids are going to be online for most of the school year next year, they better have good equipment to do so. No, I didn’t get the latest model or anything, but it’s good enough to last her 4 years of high school.

So, now we head into Memorial Day. A holiday to celebrate the lives we have lost fighting for our nation. A time to reflect on the lives we continue to lose today due to a pandemic. I have said this to friends before and I’ll say it again. Social distancing has shown signs of effectiveness; why stop now? Why are people venturing to the beaches of Galveston or even heading inside a restaurant to celebrate? Because they can. I don’t agree but that’s the notion of this country: freedom in excess, or should I say “INXS”? 🙂

Alice Cooper stuck in my head

Yesterday was the last day of school for my kids. It was a weird last day. Had they gone to school in the morning, the Noon dismissal would have brought them home by 1 PM. But, because they didn’t go to school yesterday, there was no reason for me to pick them up. They were already at home – they’ve been home since Spring Break. I know, weird. We now have until Aug 17th to figure out what to do. My son becomes a Senior in high school next year; my daughter a Freshman. Just 6 years ago, that last sentence would have sounded too strange coming from me, and now it’s reality. “School’s out for the summer” just took on a whole new meaning.

The COVID-19 pandemic has made things so different this year. Not that we had a ton planned for the summer anyway, but this year has become a year of introspection. What do I want to do going forward? What do we want to do as a family and when will it feel safe to “do those things”? We love to travel – want to visit Singapore and Malaysia eventually. Will it be safe to do that next year? How about in 2022 or 2023? Will it ever be safe, or will we just be “risking it”?

Like everyone else, we are “Netflixing” it. Finding more online resources for things to do. Virtual camps are real; we are going to sign the kids up soon. My son wants to get his Driver’s License this summer. On the one hand, I hope he does. On the other hand, I know my insurance rates will go up, cause I’ll have to add him to my insurance. Yeah, that’s what Indian parents do. We don’t let our kids work at McDonald’s, because we would never eat there anyway. Now, maybe Panera Bread. 🙂

I wish all of you a very safe Memorial Day weekend. Yeah, we’re at home and not planning to go anywhere. “School’s out for the summer” …

 

DevOps titles popping up

In 2009, the term DevOps was coined by Patrick Dubois at a conference in Belgium. The idea was simple – improve collaboration between development and IT operations in order to provide better quality and consistency of software releases. Now, prior to that period, the title that fit me the best was Build / Release Engineer. In 2003, while consulting for General Electric, I was offered a full-time position at GE as a Lead Software Integrator. GE created this role to be someone who took responsibility for the code once it landed in version control, until the destination – production. I was responsible for build, test, deploy, and release. Planning and Coding were handled by the development teams and Monitoring was managed by IT operations. Plan, Code, Build, Test, Deploy, Release, and Monitor – that’s what we call DevOps today and it’s all of these steps that are part of the infinity loop.

In 2011, after working as a Release Manager with JPMorgan Chase, it was time for me to move more towards my passion – Release Engineering. Release Engineering is the software engineering discipline around managing releases into production. With engineering, comes tools and processes. All of this ultimately led to a change in my title, from Release Engineering to DevOps. Now this debate has been raging for the better part of the last decade – is DevOps a title or is it more to do with the culture of an engineering organization?

DevOps is a mindset that should be “woven” into the Engineering Culture of an organization. The business, development teams, and IT Operations should communicate and collaborate with each other in unison. Now, if your organization doesn’t have an engineering culture, well then you need to build it. It would make sense, in those circumstances, to have a “team” that builds culture, automation, measurement, and collaboration into the organization’s soul. What I have seen is that these teams stick around for a long time. Why? Because tools change and when tools change, the processes around them change. People always change – and that trifecta of change will continue to keep DevOps teams in place for a long time.

If you would like to talk to me about DevOps practices, please send me a note at sagar@vnvdevops.com.

XebiaLabs Periodic Table – https://xebialabs.com/periodic-table-of-devops-tools/

DevOps Terminology – https://www.plutora.com/devops-at-scale/terminology-glossary

DataOps / DevSecOps – https://dzone.com/articles/dataops-leveraging-devsecops-principles-for-secure

LinkedIn – linkedin.com/in/sagarkarma

Twitter – @sagarvnvdevops

Release Management and COVID-19

I stumbled upon a Dave Farley video, as part of his Continuous Delivery series, where he talks about Release Management. While talking about how science impacts the decisions that one makes to release software, Farley quotes Richard Feynman:

“It doesn’t matter how intelligent you are, if you guess and that guess cannot be backed up by experimental evidence – then it is still a guess!”

Now, let’s think about where we are today. COVID-19 is spreading fast throughout the world, with several million confirmed cases and several thousand fatalities. If you “guess” and release a vaccine that doesn’t work, it’s still a guess. What do you need to prove that the vaccine will work? Experimental evidence. For vaccines, that comes in the form of clinical trials. But, this effort will require “release management” on a global scale, and the cost of failure will be lives. Back when I worked at General Electric, in their Medical Systems division in Waukesha, WI – the motto of the Medical Systems division was “we are in business to save lives”. The flip side of that – “we don’t do anything to risks lives” – can be aligned to release management. “We don’t do anything to <fill in the blank>” can be your motto while releasing software to hundreds of thousands of customers.

So, let’s apply Farley’s process to release management of the COVID-19 vaccine –

  • Hypothesis – People will be able to live without fear of contracting the coronavirus. (I chose that over “our software will continue to work” because it’s congruent conceptually)
  • Measurements – We need to consider the following for the clinical trials:
    • Automated Testing – how are we going to test this vaccine?
    • Automated Deployment – how are we going to deploy the vaccine? is it a shot or medicine taken orally?
    • Configuration Management – what control groups (environments) are we releasing this vaccine into?
    • Monitoring & Health-Checks – how are we monitoring the results of the vaccine during clinical trials? how are we collecting data for future analysis? any “business” impacts of the vaccine?
  • Feedback – once this vaccine is released for clinical trials:
    • Continuous Integration & Continuous Delivery – how do we evaluate the release of the vaccine and improve delivery?
    • Dashboards – how do we get clear indications of the state of the vaccine?
    • Canary releases – can we release to a smaller, safer subset (control group) to determine the impact, if any, on people? (users)
  • Controlling Variables – some of the key variables we can control:
    • Make Changes in small steps – unfortunately, if your vaccine doesn’t work, you will have to go back to the drawing board, but you can restart the cycle if you make small changes
    • Good Configuration Management
    • Reliable Delivery (CD)
    • Quality
    • Monitoring

Netflix has a novel way (pun not intended) of canary releases – they release software in a geographical area when it’s 2 AM in that time zone. This allows Netflix to determine a “canary index” of releases as the release stays in production during daytime in that timezone. This allows the company to determine whether to pull that release out or distribute it to the other timezones at the same time, 2 AM. This is Netflix’s version of testing in production.

Unfortunately, with the number of lives lost during this pandemic, public sentiment around the globe will push for “testing the vaccine in production” more than ever. If you follow the steps above, you should be able to control the variables enough in your environment to allow the vaccine to be distributed widely, safely, and effectively in a relatively short amount of time.

LinkedIn – linkedin.com/in/sagarkarma

Twitter – @sagarvnvdevops

Managing releases remotely

It was the end of August 2017. The remnants of Hurricane Harvey were still hovering over the city of Houston. The water from the nearby bayous rushed into our buildings. The lobby had four feet of water and no one could get in or out of the building. My team was responsible for the Digital Transformation releases and back then, all releases were done on a Saturday. We’d all come into work at 8 AM. Breakfast and Lunch were brought in for the team. We’d all be lucky to go home on these Saturdays by 8 PM. The production deployment took about 3 hours, the rest was spent on production smoke tests and verification tests. This Saturday was different. The business decided that we would postpone the release by two weeks – this would allow people to get back to their homes and perhaps allow us to get back to the office to perform the release.

Unfortunately, it would be months before people could return to the office. The business made the decision to execute the software release mid-September, so we knew this release would have to be done remotely.

Sound familiar? With the COVID-19 pandemic impacting the world, all of your IT employees are staying safe at home. In times like these, software releases can become a challenge, unless you take steps to manage those releases remotely. Some of these steps take some planning and coordination but will get your teams releasing code into production much more efficiently and effectively.

  • Recruit a Release Manager – Notice I said “recruit” and not “hire”. Experienced Project Managers in the IT Operations space typically know how to manage large releases into production. The key is to have an individual who can coordinate and communicate effectively during the course of the release cycle. Release management is a relatively new but rapidly growing discipline within software engineering. As software systems, software development processes, and resources become more distributed, they invariably become more specialized and complex.

Organizations that have adopted agile software development are seeing higher quantities of releases. With the increasing popularity of agile development, a new approach to software releases knows as continuous delivery is starting to influence how software transitions from development to a release. One goal of Continuous Delivery and DevOps is to release more reliable applications fast and more frequently. Release Managers are beginning to utilize tools such as application release automation and continuous integration tools to help advance the process of Continuous Delivery and incorporate a culture of DevOps by automating a task so that it can be done more quickly, reliably, and is repeatable.

In organizations that manage IT Operations using the IT Service Management paradigm, specifically the ITIL framework, release management will be guided by ITIL concepts and principles. There are several formal ITIL processes that are related to release management, specifically the Release and Deployment Management process, which aims to plan, schedule, and control the movement of releases to test and production environments.

Having a Release Manager in place will help teams coordinate releases better when they are not face-to-face.

  • Create a plan and release template for current and all future releases – Having a release plan in place and allowing it to be visible will provide transparency to stakeholders and everyone in the organization. This can be as simple as an Excel spreadsheet with each row describing the task, planned start and end time of the task, the person responsible, and the actual start and end time of the task. During the release, the individual assigned to the task can call out on a conference bridge or via video to visually show the completion of the task. If there are any issues during the completion of the task, the Release Manager takes notes and ensures that an appropriate incident is filed and tracked to completion.

The Release Manager understands business needs and their priorities and under what circumstances those priorities can change. The Release Manager has a clear picture of development dependencies and how changes to one part of a product can affect the stability of the whole. These dependencies need to be clearly outlined in the release plan.

Large releases for programs or enterprise-wide initiatives typically will have breakout bridges or rooms for sidebar conversations during the course of the release. These should be planned for by the Release Manager in advance.

  • Utilize collaboration tools like Microsoft Teams – Audio conference bridges like GoToMeeting or WebEx are great for release day activities. However, in order to coordinate meetings heading up to the release and being able to save documents or create wiki pages for the release, there is no better tool than Microsoft Teams. Teams gives your organization the ability to collaborate and communicate effectively for releases.

 

  • Know existing issues in production – This sounds simple, but in my experience, has been the single reason that releases become non-trivial exercises involving tens and perhaps hundreds of people. On the day of the release, a verification / validation test script needs to be in place in order to verify and validate only those functions that were modified for the release. Over-zealous business analysts or business users stumble upon a problem in production and fail to realize the problem has existed in production before the current release was planned. If that’s not being fixed in this release, it should not be the focus of validation tests.

 

  • Use Release Management software – As a Release Manager, I have used several tools to manage deployments, releases and communications. Two that stand out are XebiaLabs’ XL Release and IBM’s Urbancode Release. These products allow for swimlanes for various teams and the ability to combine swimlanes into a cohesive release plan.

Remember the release that was supposed to happen at the end of August 2017, but was later pushed to mid-September? Well, we had a release plan in a spreadsheet and were able to complete the release in a little over 3 hours. Back then, we all used a conference bridge and my team helped with each step of the release. We knew the existing issues in production and therefore only validated the changes that were being made to the system during the release cycle.

Software releases can be managed remotely with the right coordination and collaboration between all stakeholders. If you would like to talk to me about managing releases remotely, please send me a note at sagar@vnvdevops.com.

What is release management?

LinkedIn – linkedin.com/in/sagarkarma

Twitter – @sagarvnvdevops

Finished 11 weeks of quarantine

Wow. Just wow. I completed 77 days at home. Haven’t left Katy, leave the house only to exercise or to buy groceries. It’s starting to get hot down here in Texas and not being able to go out has been different. But, I can deal with it. It gives me time to think about what to do next. I have a Junior in High School and an 8th grader. The Junior has had his year interrupted by this pandemic. He still needs to give the SAT. But, we’re prepared. The 8th grader had work to do from school, so at least she was busy.

We’ve been able to fix up the house a bit. Our garden looks way better than in past years. Things are getting cleaned up inside the house too. Boxes are starting to get emptied and paper starting to get shredded. Well, that’s what 15 years in a house will do, right?

What’s going to happen next? Do I keep working in consulting or do I find something to keep me busy without the regular travel? Because both kids will be in High School next year, I need to save up for college as well. My wife and I won’t be traveling anytime soon, but the real question is, when will we be able to travel again? I do see us doing virtual sessions with colleagues, friends, and relatives for the foreseeable future. Maybe buy stock in Zoom? 😉

Week 12 starts tomorrow.