Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Accelerate DevOps with GitHub
Accelerate DevOps with GitHub

Accelerate DevOps with GitHub: Enhance software delivery performance with GitHub Issues, Projects, Actions, and Advanced Security

eBook
$9.99 $33.99
Paperback
$41.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Accelerate DevOps with GitHub

Chapter 1: Metrics That Matter

The hardest part when implementing DevOps is a shift in conversations with management. Management is used to asking the following questions:

  • How much will it cost?
  • How much will we earn from it?

From a management perspective, these are reasonable questions. But in a DevOps world, they can be toxic and can lead to a large amount of planning upfront if they are answered at the wrong time and in the wrong way. In this chapter, I'll show you metrics that can shift discussions with management away from efforts toward general engineering velocity and developer productivity.

I'll explain how to measure engineering velocity and developer productivity and how to make your DevOps acceleration measurable.

The following topics will be covered in this chapter:

  • Why accelerate?
  • Engineering velocity
  • High-performance companies
  • Measuring metrics that matter
  • The SPACE) framework for developer productivity
  • Objectives and key results

Why accelerate?

The expected lifespan of companies is decreasing rapidly. According to Richard Foster from the Yale School of Management, the average lifespan of a Standard & Poor's (S&P) 500-listed company 100 years ago was 67 years. Today, it is 15 years. Every 2 weeks, an S&P-listed company goes out of the market, and by 2027, it is expected that 75% of the top 500 companies will be replaced by new companies. Another study from the Santa Fe Institute (The Mortality of Companies) concludes that the average lifespan of a United States (US) company across all industries is about 10 years.

To remain competitive, companies must not only solve a customer problem; they also need to deliver products and services that delight their customers, and they must be able to engage with the market and respond quickly to changing demands. Time to market is the most important driver for business agility.

Software is at the heart of every product and service in every industry, not only because the digital experience has become as important as (or maybe even more important than) the physical experience. Software touches every part of a product life cycle, for example:

  • Production:
    • Supply chain management
    • Cost optimization/predictive maintenance/robotics
    • Product individualization (lot size 1)
  • Sales, after-sales, and service:
    • Webshop
    • Customer service and support
    • Social media
    • Digital assistant
  • Digital product:
    • Companion app
    • Integrations
    • Mobile experience
    • New business models (pay-by-use, rent, and so on)

These are just examples to illustrate that most interactions your customers have with your company are digital. You do not just buy a car today—you are already aware of the brand from social media and the press. You buy and configure a car on a website or in a store with a salesperson, but also by looking at the screen of a tablet. The price of the car is influenced by the optimization of your assembly line by robotics and artificial intelligence (AI). The first thing you do with the car is to connect your phone. While driving you listen to music, make a phone call, or respond to a text message using your voice. The driving assistant keeps you safe by braking for you if something is in your way and by making sure you stay in your lane; and soon, cars will do most of the driving autonomously. If you have a problem with a car or an app, the chances that you'll use the app or email to contact after-sales are high, especially for the younger generations. A car is mainly a digital product. Not only are there millions of lines of code that run in a car, but there are also millions of lines of code that power cars' apps, websites, and the assembly line, (see Figure 1.1).

Figure 1.1 – Software and data at the heart of the customer experience

Figure 1.1 – Software and data at the heart of the customer experience

The good thing is that software can be changed much faster than hardware can. To accelerate your time to market and your business agility, software is the key driver. It is much more flexible than hardware components and can be changed in days or weeks, not months or years. It also allows a much better connection to your customers. A customer that is using your app is more likely to respond to a survey than one in a physical shop. Also, hardware does not provide you with telemetry of how your products are being used.

To be one of the companies that stay in business for longer than 10 years, your company must leverage the power of software to accelerate its market response and delight customers with a great digital experience.

Engineering velocity

How does your company measure developer velocity? The most common approach is effort. There used to be some companies that used metrics such as lines of code or code test coverage, but those are obviously bad choices, and I'm not aware of any company today that still does this. If you can solve a problem in one line of code or in 100 lines of code, one line is obviously preferable since every line comes with a maintenance cost. The same goes for code test coverage. The coverage itself says nothing about the quality of the tests, and bad tests also introduce additional maintenance costs.

Note

I try to keep the wording agnostic to the development method. I've seen teams adopt DevOps practices that use Agile, Scrum, Scaled Agile Framework (SAFe), and Kanban, but also Waterfall. But every system has its own terminology, and I try to keep it as neutral as possible. I talk about requirements and not user stories or product backlog items, for example, but most of the examples I use are based upon Scrum.

The most common approach to measure developer velocity is by estimating requirements. You break down your requirements into small items—such as user stories —and the product owner assigns a business value. The development team then estimates the story and assigns a value for its effort. It doesn't matter if you use story points, hours, days, or any other number. It's basically a representation of the effort that is required to deliver the requirement.

Measuring velocity with effort

Measuring velocity with estimated effort and business value can have side effects if you report the numbers to management. There is some kind of observer effect: people try to improve the numbers. In the case of effort and business value, that's easy—you can just assign bigger numbers to the stories. And this is what normally happens, especially if you compare the numbers across teams: developers will assign bigger numbers to the stories, and product owners will assign bigger business value.

While this is not optimal for measuring developer velocity, it also does no big harm if the estimation is done in the normal conversation between the team and the product owner. But if the estimation is done outside your normal development process, estimates can even be toxic and have very negative side effects.

Toxic estimates

The search for the answer to the question How much will it cost? for a bigger feature or initiative normally leads to an estimation outside the normal development process and before a decision to implement it. But how do we estimate a complex feature and initiative?

Everything we do in software development is new. If you had done it already, you could use the software instead of writing it anew, so even a complete rewrite of an existing module is still new as it uses a new architecture or new frameworks. Something that has never been done before can only be estimated to a limited certainty. It's guessing, and the larger the complexity, the bigger the cone of uncertainty (see Figure 1.2).

Figure 1.2 – The cone of uncertainty

Figure 1.2 – The cone of uncertainty

The cone of uncertainty is used in project management and its premise is that at the beginning of a project, cost estimation has a certain degree of uncertainty that then is reduced due to rolling planning until it is zero at the end of the project. The x axis is normally the time taken, but it can also relate to complexity and abstraction: the more abstract and complex a requirement is, the bigger the uncertainty in estimation.

To better estimate complex features or initiatives, these are broken down into smaller parts that can better be estimated. You also need to come up with a solutions architecture as part of the work breakdown. Since this is done outside the normal development process and in time upfront and outside the context, it has some unwanted side effects, as outlined here:

  • Normally, the entire team is not present. This leads to less diversity, less communication, and therefore less creativity when it comes to problem-solving.
  • The focus is on finding problems. The more problems you can detect beforehand, the more accurate your estimates probably are. In particular, if you treat estimates later to measure performance, people learn fast that they can buy more time if they find more problems and can therefore add higher estimates to the requirements.
  • If in doubt, the engineers who are assigned with the task of estimation take the more complex solution. If, for example, they are not sure if they can solve a problem with an existing framework, they might consider writing their own solution to be on the safe side.

If these numbers were only used by management to decide upon the implementation of a feature, it would not do that much harm. But normally, the requirements—including the estimates and the solution architecture—are not thrown away and later are used to implement features. In this case, there is also a less creative solution visible that is optimized for problems and not for solutions. This inevitably leads to less creativity and outside-the-box thinking when implementing features.

#NoEstimates

Estimates are not bad. They can be valuable if they take place at the right time. If the development team and the product owner discuss the next stories, estimates can help to drive the conversation. If the team plays, for example, planning poker to estimate user stories and the estimates differ, this is an indication that people have different ideas on how to implement it. This can lead to valuable discussion and may be more productive, as you can skip some stories with a common understanding. This is also true for the business value. If the team does not understand why the product owner assigns a very high or very low number, this can also lead to important discussions. Maybe the team already knows a way how to achieve a successful outcome, or there are discrepancies in the perception of different personas.

But many teams feel more comfortable without estimating the requirements at all. This is often referred to under the hashtag #noestimates. Especially in highly experimental environments, estimation is often considered a waste of time. Remote and distributed teams also often prefer not to estimate. They often take discussions from in-person meetings to discussions on issues and pull requests (PRs). This also helps when documenting the discussions and helps teams to work in a more asynchronous way, which can help to bridge different time zones.

With developer velocity off the table, teams should be allowed to decide on their own if they want to estimate or not. This also might change over time. Some teams gain value from this, while some do not. Let teams decide what works for them and what doesn't work.

The correct way to estimate high-level initiatives

So, what is the best way to estimate more complex features or initiatives so that the product owner can decide if these are worth implementing? Get the entire team together and ask the following question: Can this be delivered in days, weeks, or months? Another option is to use an analogy estimation and compare the initiative to something that has already been delivered. The question is, then: Is this initiative smaller, equal, or more complex than the previous one delivered?

The most important thing is not to break the requirements down or to already lay out a solution architecture—what is important is just the gut feeling of all engineers. Then, have everyone assign a minimum and a maximum number for the unit. For the analogy estimation, use percentages relative to the original initiative and calculate the results using historical data.

The easiest way to report this would look like this:

Given the current team,
if we prioritize the initiative <initiative name>,
the team is confident to deliver the feature in between <smallest minimum> and <highest maximum>

Taking the smallest minimum and the highest maximum value is the safest way, but it can also lead to distorted numbers if the pessimistic and optimistic estimates are far apart. In this case, the average might be the better number to take, as illustrated here:

Given the current team,
if we prioritize the initiative <initiative name>,
the team is confident to deliver the feature in between <average minimum> and <average maximum>

But taking the average (the arithmetic mean; in Excel, =AVERAGE() is used for this) means having a higher or lower deviation, depending on the distribution of the single estimates. The higher the deviation, the less confident you really can be that you can deliver that feature in that period. To get an idea of how your estimates are distributed, you can calculate the standard deviation (=STDEV.P() in Excel). You can look at the deviation for the minimum and the maximum, but also the estimate of each member. The smaller the deviation, the closer the values are to the average. Since standard deviations are absolute values, they cannot be compared with other estimations. To have a relative number, you can use the coefficient of variation (CV): the standard deviation divided by the average, typically represented as a percentage (=STDEV.P() / AVERAGE() in Excel). The higher the value, the more distributed the values from the average; the lower the value, the more confident each team member is with their estimates or the entire team is with regard to minimum and maximum. See the example in the following table:

Table 1.1 –

Table 1.1 – Example for calculating estimations

To express uncertainty in the deviation of the values, you can add a confidence level to the estimation. This can be text (such as low, medium, or high) or a percentage level, as illustrated here:

Given the current team,
if we prioritize the initiative <initiative name>,
the team is <confident level> confident to deliver the feature in <arithmetic mean>

I don't use a fixed formula here because this would involve knowing the team. If you look at the data in the example (Table 1.1), you can see that the average of the minimum (2,7) and the maximum (6,3) are not so far away. If you look at the individual team members, you can see that there are more pessimistic and optimistic members. If past estimations confirm this, it gives you very high confidence that the average is realistic, even if the minimum and maximum values have a pretty high CV. Your estimate could look like this:

Given the current team,
if we prioritize the initiative fancy-new-thing,
the team is 85% confident to deliver the feature in 4.5 months"

This kind of estimation is not rocket science. It has nothing to do with complex estimation and forecasting systems such as the three-point estimation technique (https://en.wikipedia.org/wiki/Three-point_estimation), PERT distribution (https://en.wikipedia.org/wiki/PERT_distribution), or the Monte Carlo simulation method (https://en.wikipedia.org/wiki/Monte_Carlo_method), and they all depend upon a detailed breakdown of the requirements and an estimation on a task (work) level. The idea is to avoid planning upfront and breaking down the requirements and relying more on the gut feeling of your engineering team. The technique here is just to give you some insights into the data points you collect across your team. It's still just guessing.

From developer to engineering velocity

Effort is not a good metric for measuring developer velocity, especially if it is based upon estimates, and in cross-functional teams, velocity does not only depend upon developers. So, how do you shift from a developer velocity to an engineering velocity?

High-performance companies

Organizations with a high engineering velocity outperform their competitors and disrupt markets. But what exactly are high-performance companies?

The Developer Velocity Index

In April 2020, McKinsey published their research about the Developer Velocity Index (DVI) (Srivastava S., Trehan K., Wagle D. & Wang J. (2020)). This is a study taken among 440 large organizations from 12 industries that considers 46 drivers across 13 capabilities. The drivers are not only engineering capabilities—they also contain working practices and organizational enablement such as the company culture. The study shows that the companies in the top quartile of the DVI outperform other companies in their market by four to five times, and not only on overall business performance. Companies in the top quartile score between 40 and 60% higher in the following areas:

  • Innovation
  • Customer satisfaction
  • Brand perception
  • Talent management

The study conducted interviews with more than 100 senior engineering leaders at 440 large organizations across 12 industries. The interview contained 46 drivers across 13 capabilities in 3 categories, outlined as follows:

  • Technology: Architecture; infrastructure and cloud adoption; testing; tools
  • Working practices: Engineering practices; security and compliance; open source adoption, agile team practices
  • Organizational enablement: Team characteristics; product management; organizational agility; culture; talent management

The DVI, therefore, goes way beyond pure developer velocity. It analyzes the engineering velocity and all the factors that influence it and relates them to business outcomes such as revenue, shareholder returns, operating margin, and nonfinancial performance indicators such as innovation, customer satisfaction, and brand perception.

The state of DevOps

The findings align with the results from the DevOps Research and Assessment (DORA) State of DevOps report (https://www.devops-research.com/research.html#reports) but take them one step further by adding the business outcomes. The DevOps Report 2019 states how elite performers compare against low performers (Forsgren N., Smith D., Humble J. & Frazelle J. (2019)), as outlined here:

  • Faster value delivery: They have a 106-times faster lead time (LT) from commit to deploy.
  • Advanced stability and quality: They recover 2,604 times faster from incidents and have a 7-times lower change failure rate (CFR).
  • Higher throughput: They do 208 times more frequent code deployments.

High-performance companies not only excel in throughput and stability but are also more innovative, have higher customer satisfaction, and greater business performance, (see Figure 1.3).

Figure 1.3 – High-performance companies

Figure 1.3 – High-performance companies

Focusing on the measures that highlight the capabilities that set apart high-performance companies from medium and low performers, you can make your transformation visible and provide management with metrics that hopefully matter more to them than lines of code or estimation-based velocity.

Measuring metrics that matter

"The key to successful change is measuring and understanding the right things with a focus on capabilities."

– Forsgren. N., Humble, J. & Kim, G. (2018) p. 38

To measure where you are on your transformation journey, it's best to focus on the four metrics that are used in DORA—two for performance and two for stability, as follows:

  • Delivery performance metrics:
    • Delivery lead time
    • Deployment frequency
  • Stability metrics:
    • Mean time to restore
    • Change fail rate

Delivery lead time

The delivery lead time (DLT) is the time from when your engineers start working on a feature until the feature is available to the end users. You could say from code commit to production—but you normally start the clock when the team starts to work on a requirement and changes the state of it to doing or something similar.

It is not easy to get this metric automated from the system. I will show you in Chapter 7, Running Your Workflows, how you can use GitHub Actions and Projects together to automate the metric. If you don't get the metric out of the system, you can set up a survey with the following options:

  • Less than 1 hour
  • Less than 1 day
  • Less than 1 week
  • Less than 1 month
  • Less than 6 months
  • More than 6 months

Depending on where you are on the scale, you conduct the survey more or less often. Of course, system-generated values would be preferable, but if you are on the upper steps of that scale (months), it doesn't matter. It gets more interesting if you measure hours or days.

Why not lead time?

From a Lean management perspective, the LT would be the better metric: how long does a learning from customer feedback flow through the entire system? But requirements in software engineering are difficult. Normally, a lot of steps are involved before the actual engineering work begins. The outcome could vary a lot and the metric is hard to guess if you must rely on survey data. Some requirements could stay for months in the queue—some, only a few hours. From an engineering perspective, it's much better to focus on DLT. You will learn more about LT in Chapter 18, Lean Product Development and Lean Startup.

Deployment frequency

The deployment frequency focuses on speed. How long does it take to deliver your changes? A metric that focuses more on throughput is the DF. How often do you deploy your changes to production? The DF indicates your batch size. In Lean manufacturing, it is desirable to reduce the batch size. A higher DF would indicate a smaller batch size.

At first glance, it looks easy to measure DF in your system. But at a closer look, how many of your deployments really make it to production? In Chapter 7, Running Your Workflows, I will explain how you can capture the metric using GitHub Actions.

If you can't measure the metric yet, you can also use a survey. Use the following options:

  • On-demand (multiple times per day)
  • Between once per hour and once per day
  • Between once per day and once per week
  • Between once per week and once per month
  • Between once per month and once every 6 months
  • Less than every 6 months

Mean time to restore

A good measure for stability is the mean time to restore (MTTR). This measures how long it takes to restore your product or service if you have an outage. If you measure your uptime, it is basically the time span in which your service is not available. To measure your uptime, you can use a smoke test—for example, in Application Insights (see https://docs.microsoft.com/en-us/azure/azure-monitor/app/monitor-web-app-availability). If your application is installed on client machines and not accessible, it's more complicated. Often, you can fall back on the time for a specific ticket type in your helpdesk system.

If you can't measure it at all, you can still fall back to a survey with the following options:

  • Less than 1 hour
  • Less than 1 day
  • Less than 1 week
  • Less than 1 month
  • Less than 6 months
  • More than 6 months

But this should only be the last resort. The MTTR should be a metric you should easily get out of your systems.

Change fail rate

As with DLT for performance, MTTR is the metric for time when it comes to stability. The pendant of DF that focuses on throughput is the change fail rate (CFR). For the question How many of your deployments cause a failure in production?, the CFR is specified as a percentage. To decide which of your deployments count toward this metric, you should use the same definition as for the DF.

The Four Keys dashboard

These four metrics based upon the DORA research are a great way to measure where you are on your DevOps journey. They are a good starting point to change your conversations with management. Put them on a dashboard and be proud of them. And don't worry if you're not yet an elite performer—the important thing is to be on the journey and to improve continuously.

It's very simple to start with survey-based values. But if you want to use automatically generated system data you can use the Four Keys Project to display the data in a nice dashboard, (see Figure 1.4).

Figure 1.4 – The Four Keys dashboard

Figure 1.4 – The Four Keys dashboard

The project is open source and based upon Google Cloud (see https://github.com/GoogleCloudPlatform/fourkeys), but it depends on webhooks to get the data from your tools. You will learn in Chapter 7, Running Your Workflows, how to use webhooks to send your data to the dashboard.

What you shouldn't do

It is important that these metrics are not used to compare teams with each other. You can aggregate them to get an organizational overview, but don't compare individual teams! Every team has different circumstances. It's only important that the metrics evolve in the right direction.

Also, the metrics should not become the goal. It is not desirable to just get better metrics. The focus should always be on the capabilities that lead to these metrics and that we discuss in this book. Focus on these capabilities and the metrics will follow.

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Release software faster and with confidence
  • Increase your productivity by spending more time on software delivery and less on fixing bugs and administrative tasks
  • Deliver high-quality software that is more stable, scalable, and secure

Description

This practical guide to DevOps uses GitHub as the DevOps platform and shows how you can leverage the power of GitHub for collaboration, lean management, and secure and fast software delivery. The chapters provide simple solutions to common problems, thereby helping teams that are already on their DevOps journey to further advance into DevOps and speed up their software delivery performance. From finding the right metrics to measure your success to learning from other teams’ success stories without merely copying what they’ve done, this book has it all in one place. As you advance, you’ll find out how you can leverage the power of GitHub to accelerate your value delivery – by making work visible with GitHub Projects, measuring the right metrics with GitHub Insights, using solid and proven engineering practices with GitHub Actions and Advanced Security, and moving to event-based and loosely coupled software architecture. By the end of this GitHub book, you'll have understood what factors influence software delivery performance and how you can measure your capabilities, thus realizing where you stand in your journey and how you can move forward.

Who is this book for?

This book is for developers, solutions architects, DevOps engineers, and SREs, as well as for engineering or product managers who want to enhance their software delivery performance. Whether you're new to DevOps, already have experience with GitHub Enterprise, or come from a platform such as Azure DevOps, Team Foundation Server, GitLab, Bitbucket, Puppet, Chef, or Jenkins but struggle to achieve maximum performance, you’ll find this book beneficial.

What you will learn

  • Effectively measure software delivery performance
  • Adopt DevOps and lean management techniques in your teams
  • Plan, track, and visualize your work using GitHub Issues and Projects
  • Use continuous delivery with GitHub Actions and Packages
  • Scale quality through testing in production and chaos engineering
  • “Shift left” security and secure your entire software supply chain
  • Use DevSecOps practices with GitHub Advanced Security
  • Secure your code with code scanning, secret scanning, and Dependabot

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Sep 09, 2022
Length: 540 pages
Edition : 1st
Language : English
ISBN-13 : 9781801814676
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Sep 09, 2022
Length: 540 pages
Edition : 1st
Language : English
ISBN-13 : 9781801814676
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 194.97
Solutions Architect's Handbook
$89.99
Go for DevOps
$62.99
Accelerate DevOps with GitHub
$41.99
Total $ 194.97 Stars icon
Banner background image

Table of Contents

30 Chapters
Part 1: Lean Management and Collaboration Chevron down icon Chevron up icon
Chapter 1: Metrics That Matter Chevron down icon Chevron up icon
Chapter 2: Plan, Track, and Visualize Your Work Chevron down icon Chevron up icon
Chapter 3: Teamwork and Collaborative Development Chevron down icon Chevron up icon
Chapter 4: Asynchronous Work: Collaborate from Anywhere Chevron down icon Chevron up icon
Chapter 5: The Influence of Open and Inner Source on Software Delivery Performance Chevron down icon Chevron up icon
Part 2: Engineering DevOps Practices Chevron down icon Chevron up icon
Chapter 6: Automation with GitHub Actions Chevron down icon Chevron up icon
Chapter 7: Running Your Workflows Chevron down icon Chevron up icon
Chapter 8: Managing Dependencies Using GitHub Packages Chevron down icon Chevron up icon
Chapter 9: Deploying to Any Platform Chevron down icon Chevron up icon
Chapter 10: Feature Flags and the Feature Lifecycle Chevron down icon Chevron up icon
Chapter 11: Trunk-Based Development Chevron down icon Chevron up icon
Part 3: Release with Confidence Chevron down icon Chevron up icon
Chapter 12: Shift Left Testing for Increased Quality Chevron down icon Chevron up icon
Chapter 13: Shift-Left Security and DevSecOps Chevron down icon Chevron up icon
Chapter 14: Securing Your Code Chevron down icon Chevron up icon
Chapter 15: Securing Your Deployments Chevron down icon Chevron up icon
Part 4: Software Architecture Chevron down icon Chevron up icon
Chapter 16: Loosely Coupled Architecture and Microservices Chevron down icon Chevron up icon
Chapter 17: Empower Your Teams Chevron down icon Chevron up icon
Part 5: Lean Product Management Chevron down icon Chevron up icon
Chapter 18: Lean Product Development and Lean Startup Chevron down icon Chevron up icon
Chapter 19: Experimentation and A|B Testing Chevron down icon Chevron up icon
Part 6: GitHub for your Enterprise Chevron down icon Chevron up icon
Chapter 20: GitHub – The Home for All Developers Chevron down icon Chevron up icon
Chapter 21: Migrating to GitHub Chevron down icon Chevron up icon
Chapter 22: Organizing Your Teams Chevron down icon Chevron up icon
Chapter 23: Transform Your Enterprise Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Full star icon 5
(11 Ratings)
5 star 100%
4 star 0%
3 star 0%
2 star 0%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




David McKinstry Sep 10, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I’ve had the opportunity to see the author’s work in the community so I was interested to see his take on DevOps with GitHub… and I wasn’t disappointed.In summary, I appreciate the broad view of DevOps and not a narrow view as I’ve seen in many other books. In fact, including modern topics such as remote work, it may be the broadest set of “DevOps practices” that I’ve seen in one place. At 400+ pages it isn’t necessarily a book that I would recommend reading cover-to-cover in order. Luckily you can pick and chose the chapters that make sense, and review the others when it makes sense.The book does provide an interesting balance. It reviews and extends on some long held DevOps concepts and practices, brings in up-to-date research and references, and still manages to find some time to go deep on topics. The book goes deep enough to understand both general practices and a best practices use of GitHub supporting those practices. There are plenty of screen captures showing GitHub in action. But it does not generally go deep enough to provide a step-by-step. It does help the reader understand the breadth of options and an idea of what to look for in product documentation (usually in the references section).The downsides? It is a long technical book. I found myself reading because I was interested but not because it was necessarily easy. There were certainly places that I chose to skim and came back to later. And after reading the first few chapters I found my self skipping around based on my interests. There is also a risk that some content will become outdated due to the change of pace in tools like GitHub.In my opinion, if you are interested in a modernized view of broad DevOps concepts and best practices, and want to see how they are supported in GitHub, it is an excellent investment!
Amazon Verified review Amazon
Joshua Johanning Sep 21, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I've interacted a little bit with the author in the community, and was excited to see that he had published a book. There aren't a ton of books out there relating to GitHub, and none are as expansive as this one.Even if you aren't using GitHub, this book is still an invaluable resource. There are several sections on non-tech related aspects of DevOps, such as capturing metrics that are useful, planning work, and teamwork/collaborative cultures. And if you are using GitHub, you are in luck, because pretty much every aspect of the tool is covered here.This book is going to be useful for anyone who's in the DevOps field and I would highly recommend.
Amazon Verified review Amazon
Martin Stühmer Sep 13, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Neue Trends und Tools werden nahezu täglich hervorgebracht. Dieses Buch stellt eine Vielzahl von spannenden und überaus nützlichen Tools vor, die jeder einmal gesehen haben sollte. Der tiefe Einblick den der Autor gewährt, seine Art, Probleme zu beleuchten und zu erklären, und die einfachen pragmatischen Lösungsansätze. Sie machen das Buch zu einer sehr guten Ergänzung des Lernmaterials für alle, die sich mit dem Thema befassen oder in Zukunft befassen möchten.Gerade im Bereich der Integration von GitHub und der damit verbundenen riesigen Toolbox bietet dieses Buch sehr tiefgehende und wissenswerte Punkte.Die Investition in dieses Buch lohnt sich meiner Meinung nach definitiv, wenn man sich für umfangreiche DevOps-Konzepte und Best Practice Beispiele interessiert und erfahren möchte, wie sich GitHub hierbei integrieren lässt.
Amazon Verified review Amazon
Amazon Customer Sep 09, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Although the book is based on GitHub (product 5%), it shares experience and information that applies to the other core pieces of the DevOps pie - process (15%), and people (80%) in these six parts. The book has become my first-point-of-contact for topics such as Metrics that matter, OKRs (objectives, key, results), YAML basics, Feature Flags, Trunk-based Development, working with Git, Code Security, Testing, and much more. What caught my eye throughout the book is Michael's focus on "keeping it simple" - love it!
Amazon Verified review Amazon
Damian Brady Sep 12, 2022
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I've been a fan of the author for a while in the DevOps community, so I was particularly interested in reading this book. A deep knowledge doesn't always translate to a useful read, but in this case it absolutely did.What impressed me in particular was the deliberate strategy of digging into the theory and principles of DevOps followed by instruction on how to implement what's been discussed. I love this structure - it's both strategy and how-to which serves all audiences from management to team leads and individual engineers, whether they use GitHub or another toolset.The author is opinionated on many principles and practices but those opinions are clearly-reasoned and explained with excellent examples and justifications.There are some fantastic insights into many aspects of software engineering and delivery that aren't often reflected upon. Rather than stopping simply at observation, the author suggests solutions and different ways of working. So rather than just theories and suggestions, you end up with actionable content.For example, early in the book the author makes some pointed observations on how and why poorly-timed estimation can be toxic. But rather than stopping there, he talks about what to do about it.Another thing that struck me was that there is really comprehensive coverage of each chapter and heading. Let's face it - the book isn't a short read. So in a book that covers so much ground it would be understandable to have a shallow look at some areas. But this isn't the case. Each heading could be a blog post or even a short white paper. You're never left feeling he just played lip service to a heading he knew the book should have.My only negative is one that's sadly unavoidable for technical books - updates and new features that come to GitHub will mean out of date information in time. Ironically this problem is made worse because GitHub follows many of the practices promoted in this book!However, at the time of this review, the content is very current, and the significant non-product content is very unlikely to date any time soon.In all, this is a very comprehensive and well-written book. I'd recommend it to anyone struggling with implementing DevOps concepts - whether they're using GitHub or not.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.