From 656eccbd5b20f49dbe999c941bc2f5ac132379b8 Mon Sep 17 00:00:00 2001 From: "Martin Hinshelwood nkdAgility.com" Date: Tue, 26 Nov 2024 13:59:46 +0000 Subject: [PATCH 1/4] Update --- .powershell/_includes/YoutubeAPI.ps1 | 146 + .../build/Update-YoutubeChannelData.ps1 | 227 +- .powershell/{build => dev}/test.ps1 | 0 .../videos/syncNKDAgilityTV-Transcripts.ps1 | 94 +- .../single-use/videos/syncNKDAgilityTV.ps1 | 190 -- .../single-use/youtube/GetAccessToken,ps1 | 107 + .../youtube/9PBpgfsojQI/transcript.en.srt | 440 +++ .../youtube/9TbjaO1_Nz8/transcript.en.srt | 228 ++ .../youtube/9VHasQBlQc8/transcript.en.srt | 232 ++ .../youtube/9kZicmokyZ4/transcript.en.srt | 44 + .../youtube/9z9BgSi2zeA/transcript.en.srt | 72 + .../youtube/A0Y-zySHXyc/transcript.en.srt | 504 ++++ .../youtube/A8URbBCljnQ/transcript.en.srt | 1960 ++++++++++++ .../youtube/AaCM_pmZb4k/transcript.en.srt | 960 ++++++ .../videos/youtube/FFrTLuRhyVo/data.json | 66 + .../youtube/XZip9ZcLyDs/data.captions.json | 8 + .../youtube/ZQZeM20TO4c/data.captions.json | 8 + .../youtube/a2sXBMPHl2Y/transcript.en.srt | 344 +++ .../youtube/a6aw7xmS2oc/transcript.en.srt | 540 ++++ .../youtube/kOj-O99mUZE/data.captions.json | 8 + .../videos/youtube/whKX9Mn1eb8/data.json | 67 + site/data/youtube.json | 2636 +++++++++-------- 22 files changed, 7254 insertions(+), 1627 deletions(-) create mode 100644 .powershell/_includes/YoutubeAPI.ps1 rename .powershell/{build => dev}/test.ps1 (100%) delete mode 100644 .powershell/single-use/videos/syncNKDAgilityTV.ps1 create mode 100644 .powershell/single-use/youtube/GetAccessToken,ps1 create mode 100644 site/content/resources/videos/youtube/9PBpgfsojQI/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/9TbjaO1_Nz8/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/9VHasQBlQc8/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/9kZicmokyZ4/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/9z9BgSi2zeA/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/A0Y-zySHXyc/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/A8URbBCljnQ/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/AaCM_pmZb4k/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/FFrTLuRhyVo/data.json create mode 100644 site/content/resources/videos/youtube/XZip9ZcLyDs/data.captions.json create mode 100644 site/content/resources/videos/youtube/ZQZeM20TO4c/data.captions.json create mode 100644 site/content/resources/videos/youtube/a2sXBMPHl2Y/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/a6aw7xmS2oc/transcript.en.srt create mode 100644 site/content/resources/videos/youtube/kOj-O99mUZE/data.captions.json create mode 100644 site/content/resources/videos/youtube/whKX9Mn1eb8/data.json diff --git a/.powershell/_includes/YoutubeAPI.ps1 b/.powershell/_includes/YoutubeAPI.ps1 new file mode 100644 index 000000000..2aba44fa1 --- /dev/null +++ b/.powershell/_includes/YoutubeAPI.ps1 @@ -0,0 +1,146 @@ + +# Function to fetch video list from YouTube API and save a single youtube.json file +function Get-YoutubePublicChannelVideos { + param ( + [string]$channelId, + [string]$apiKey + ) + + Write-Host "Getting Video List for $channelId" + $nextPageToken = $null + $page = 1; + $allVideosData = @() + + do { + # YouTube API endpoint to get videos from a channel, including nextPageToken + $searchApiUrl = "https://www.googleapis.com/youtube/v3/search?key=$apiKey&part=snippet&channelId=$channelId&type=video&maxResults=$maxResults&pageToken=$nextPageToken" + + # Fetch video list + $searchResponse = Invoke-RestMethod -Uri $searchApiUrl -Method Get + Write-Host " Parsing Page $page with $($searchResponse.items.Count) videos and etag: $($searchResponse.etag)" + $allVideosData += $searchResponse.items + + # Get the nextPageToken to continue fetching more videos + $nextPageToken = $searchResponse.nextPageToken + $page++ + } while ($nextPageToken) + Write-Host " Found $($allVideosData.Count) videos" + return $allVideosData; +} + +# Function to test if a file is older than a specified number of hours +function Test-FileAge { + param ( + [Parameter(Mandatory = $true)] + [string]$filePath, + [Parameter(Mandatory = $true)] + [int]$hours + ) + + if (-not (Test-Path -Path $filePath)) { + # File doesn't exist, consider it old + return $true + } + + $fileInfo = Get-Item -Path $filePath + $lastWriteTime = $fileInfo.LastWriteTime + $timeDifference = (Get-Date) - $lastWriteTime + + return $timeDifference.TotalHours -ge $hours +} + +# Function to update data.json for a single video +function Get-YoutubeVideoData { + param ( + [Parameter(Mandatory = $true)] + [string]$videoId + ) + + # Ensure API key is defined + if (-not $apiKey) { + Write-Host "API Key is missing. Please set the API Key." -ForegroundColor Red + return $null + } + + # Ensure videoId is valid + if (-not $videoId) { + Write-Host "Invalid videoId provided." -ForegroundColor Red + return $null + } + + Write-Host "Working on Data for: $videoId" -ForegroundColor Green + $videoDetailsUrl = "https://www.googleapis.com/youtube/v3/videos?key=$apiKey&id=$videoId&part=snippet,contentDetails" + + try { + $videoDetails = Invoke-RestMethod -Uri $videoDetailsUrl -Method Get -ErrorAction Stop + if ($null -eq $videoDetails -or $null -eq $videoDetails.items -or $videoDetails.items.Count -eq 0) { + Write-Host "No data found for video: $videoId" -ForegroundColor Yellow + return $null + } + + $videoData = $videoDetails.items[0] + + Write-Host "Data found for video: $videoId" -ForegroundColor Green + return $videoData + } + catch { + Write-Host "Error fetching data for video: $videoId" -ForegroundColor Red + Write-Host $_.Exception.Message -ForegroundColor Red + return $null + } +} + +# Function to get captions data for a single video +function Get-YouTubeCaptionsData { + param ( + [Parameter(Mandatory = $true)] + [string]$videoId + ) + + # Ensure API key is defined + if (-not $apiKey) { + Write-Host "API Key is missing. Please set the API Key." -ForegroundColor Red + return $null + } + + # Ensure videoId is valid + if (-not $videoId) { + Write-Host "Invalid videoId provided." -ForegroundColor Red + return $null + } + + Write-Host "Getting caption data for: $videoId" -ForegroundColor Green + $captionsUrl = "https://www.googleapis.com/youtube/v3/captions?key=$apiKey&videoId=$videoId&part=snippet" + + try { + # Get captions for the video + $captionsResponse = Invoke-RestMethod -Uri $captionsUrl -Method Get -ErrorAction Stop + $captionsData = @() + + if ($null -ne $captionsResponse -and $null -ne $captionsResponse.items -and $captionsResponse.items.Count -gt 0) { + foreach ($caption in $captionsResponse.items) { + $captionsData += @{ + "captionId" = $caption.id + "language" = $caption.snippet.language + "trackKind" = $caption.snippet.trackKind + "isDraft" = $caption.snippet.isDraft + "status" = $caption.snippet.status + "lastUpdated" = $caption.snippet.lastUpdated + } + } + } + else { + Write-Host "No captions found for video: $videoId" -ForegroundColor Yellow + } + + return $captionsData + } + catch { + Write-Host "Error fetching captions for video: $videoId" -ForegroundColor Red + Write-Host $_.Exception.Message -ForegroundColor Red + return $null + } +} + + +Write-Host "YoutubeAPI.ps1 loaded" -ForegroundColor Green \ No newline at end of file diff --git a/.powershell/build/Update-YoutubeChannelData.ps1 b/.powershell/build/Update-YoutubeChannelData.ps1 index 3ef7ee68f..fbb28ff6a 100644 --- a/.powershell/build/Update-YoutubeChannelData.ps1 +++ b/.powershell/build/Update-YoutubeChannelData.ps1 @@ -1,109 +1,192 @@ -Write-Host "Running v2" +# Helpers +. ./.powershell/_includes/YoutubeAPI.ps1 -# Define variables - -$apiKey = $env:YOUTUBE_API_KEY -$channelId = "UCkYqhFNmhCzkefHsHS652hw" -$outputDir = "site\content\resources\videos\youtube" -$dataDirectory = ".\site\data" -$refreshData = $false +Write-Host "Running v3" -$maxResults = 800 # Create the output directory if it doesn't exist if (-not (Test-Path $outputDir)) { New-Item -Path $outputDir -ItemType Directory } -# Function to fetch video list from YouTube API and save a single youtube.json file -function Fetch-YoutubeVideoList { - param () - $nextPageToken = $null - $page = 1; - $allVideosData = @() +# Function to get captions for a video +function Get-YouTubeCaptions { + param ( + [string]$videoId, + [string]$accessToken + ) - do { - # YouTube API endpoint to get videos from a channel, including nextPageToken - $searchApiUrl = "https://www.googleapis.com/youtube/v3/search?key=$apiKey&part=snippet&channelId=$channelId&type=video&maxResults=$maxResults&pageToken=$nextPageToken" + $captionsApiUrl = "https://www.googleapis.com/youtube/v3/captions?part=id,snippet&videoId=$videoId" + $headers = @{"Authorization" = "Bearer $accessToken" } - # Fetch video list - $searchResponse = Invoke-RestMethod -Uri $searchApiUrl -Method Get + $response = Invoke-RestMethod -Uri $captionsApiUrl -Headers $headers -Method Get + return $response.items +} - $allVideosData += $searchResponse.items +# Function to download a caption file with a check if $captionContent is empty +function Download-YouTubeCaption { + param ( + [string]$captionId, + [string]$accessToken, + [string]$outputPath + ) - # Get the nextPageToken to continue fetching more videos - $nextPageToken = $searchResponse.nextPageToken - $page++ - } while ($nextPageToken) + # Specify the format as SRT by adding 'tfmt=srt' to the URL + $downloadUrl = "https://www.googleapis.com/youtube/v3/captions/$captionId/?tfmt=srt" + $headers = @{"Authorization" = "Bearer $accessToken" } - # Save all video data to a single youtube.json file - $dataFilePath = Join-Path $dataDirectory "youtube.json" - $allVideosData | ConvertTo-Json -Depth 10 | Set-Content -Path $dataFilePath + # Use Invoke-WebRequest for binary or non-JSON/XML responses + $response = Invoke-WebRequest -Uri $downloadUrl -Headers $headers -Method Get - Write-Host "All video data saved to youtube.json." + # Check if the response has content + if (-not [string]::IsNullOrEmpty($response.Content)) { + # Save the caption content to a file + [System.IO.File]::WriteAllBytes($outputPath, $response.Content) + Write-Host "Caption saved to: $outputPath" + return $true # Return true to indicate success + } + else { + Write-Host "No caption content available for captionId: $captionId" + return $false # Return false to indicate no content + } } -# Function to update data.json for a single video -function Update-YoutubeDataFile { - param ( - [string]$videoId - ) +# Function to loop through outputDir folders and download captions based on folder names (which are video IDs) +# It will only download the caption if the transcript file does not already exist +function Download-AllYouTubeCaptions { + param ([string]$accessToken) + + # Get all folders in $outputDir + $videoFolders = Get-ChildItem -Path $outputDir -Directory + $downloadCount = 0 # Initialize counter for downloaded transcripts + + foreach ($folder in $videoFolders) { + if ($downloadCount -ge $downloadLimit) { + Write-Host "Reached download limit of $downloadLimit transcripts. Stopping." + break + } + + $videoId = $folder.Name # The folder name is assumed to be the videoId + Write-Host "Processing video ID: $videoId" + $matchingFiles = Get-ChildItem -Path $folder -Filter "transcript.*.srt" -File + + # Skip if there are already transcript files in the folder + if ($matchingFiles.Count -gt 0) { + Write-Host "Transcript files already exist for $videoId" + continue + } + + $captions = Get-YouTubeCaptions -videoId $videoId -accessToken $accessToken + + foreach ($caption in $captions) { + if ($downloadCount -ge $downloadLimit) { + Write-Host "Reached download limit of $downloadLimit transcripts. Stopping." + break + } + + $captionId = $caption.id + $language = $caption.snippet.language + $outputPath = Join-Path $folder.FullName "transcript.$language.srt" + + # Check if the transcript already exists + if (-not (Test-Path $outputPath)) { + Write-Host "Downloading Transcript in $language for $captionId" + $success = Download-YouTubeCaption -captionId $captionId -accessToken $accessToken -outputPath $outputPath + + if ($success) { + $downloadCount++ + } + } + else { + Write-Host "Transcript in $language for $captionId already exists" + } + } + } + + Write-Host "Downloaded $downloadCount transcript(s)." +} + +# Define variables +$apiKey = $env:YOUTUBE_API_KEY +$channelId = "UCkYqhFNmhCzkefHsHS652hw" +$outputDir = "site\content\resources\videos\youtube" +$dataDirectory = ".\site\data" +$refreshData = $false +$transcriptDownloadLimit = 10 +$videoUpdateLimit = 1 +$dataFilePath = Join-Path $dataDirectory "youtube.json" +if (Test-FileAge -filePath $dataFilePath -hours 3) { + $allVideosData = Get-YoutubePublicChannelVideos -channelId $channelId -apiKey $env:YOUTUBE_API_KEY # Call this to fetch video list and save to youtube.json + # Save all video data to a single youtube.json file + + $allVideosData | ConvertTo-Json -Depth 10 | Set-Content -Path $dataFilePath + Write-Host "$dataFilePath saved with $($allVideosData.Count) videos." -ForegroundColor Green +} +else { + Write-Host "$dataFilePath is up to date." -ForegroundColor Yellow +} + +$videoUpdateLimit = 1 +$videoUpdateCount = 0 +$captionsUpdateLimit = 1 +$captionsUpdateCount = 0 +foreach ($video in $allVideosData) { + + Write-Host "Get Video Data for $($video.id.videoId)" -ForegroundColor Green + $videoId = $video.id.videoId # Create the directory named after the video ID $videoDir = Join-Path $outputDir $videoId if (-not (Test-Path $videoDir)) { New-Item -Path $videoDir -ItemType Directory } + # 1. Get Youtube Video Data + # File path for data.json - $jsonFilePath = Join-Path $videoDir "data.json" - if ($videoId -eq "xo4jMxupIM0") { - Write-Host "Updating data.json for video: $videoId" + $jsonFilePathVideos = Join-Path $videoDir "data.json" + if ($refreshData -or -not (Test-Path $jsonFilePathVideos)) { + if ($videoUpdateCount -le $videoUpdateLimit) { + # Call the function to update the data for a single video + $videoData = Get-YoutubeVideoData -videoId $videoId + # Save updated video data to data.json + if ($videoData) { + $videoData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePathVideos + Write-Host "Updated data.json for video: $videoId" + $videoUpdateCount++; + } + } + else { + Write-Host "Reached video update limit of $videoUpdateLimit. skipping." + } } - # Only update if $refreshData is true or data.json doesn't exist - if ($refreshData -or -not (Test-Path $jsonFilePath)) { - # Fetch full video details from YouTube API - $videoDetailsUrl = "https://www.googleapis.com/youtube/v3/videos?key=$apiKey&id=$videoId&part=snippet,contentDetails" - $videoDetails = Invoke-RestMethod -Uri $videoDetailsUrl -Method Get - $videoData = $videoDetails.items[0] - - if ($videoData) { + # 2. Get Youtube Captions List + $jsonFilePathCaptions = Join-Path $videoDir "data.captions.json" + if ($refreshData -or -not (Test-Path $jsonFilePathCaptions)) { + if ($captionsUpdateCount -le $videoUpdateLimit) { + # Call the function to update the data for a single video + $captionData = Get-YouTubeCaptionsData -videoId $videoId # Save updated video data to data.json - $videoData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePath - Write-Host "Updated data.json for video: $videoId" + if ($captionData) { + $captionData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePathCaptions + Write-Host "Updated data.captions.json for video: $videoId" + $captionsUpdateCount++; + } } else { - Write-Host "No data found for video: $videoId" + Write-Host "Reached capations update limit of $videoUpdateLimit. skipping." } + } - else { - Write-Host "Data for video $videoId is already up to date." - } -} - -# Function to iterate through youtube.json and update data.json for each video -function Update-YoutubeDataFilesFromJson { - param () - $dataFilePath = Join-Path $dataDirectory "youtube.json" - if (-not (Test-Path $dataFilePath)) { - Write-Host "youtube.json file not found. Please run Fetch-YoutubeVideoList first." - return - } + +} - # Load video list from youtube.json - $allVideosData = Get-Content -Path $dataFilePath | ConvertFrom-Json - foreach ($video in $allVideosData) { - $videoId = $video.id.videoId - # Call the function to update the data for a single video - Update-YoutubeDataFile -videoId $videoId - } +# Update-YoutubeDataFilesFromJson # Call this to update data.json files from youtube.json - Write-Host "All video data files updated from youtube.json." -} +# # Set a limit for the number of transcripts to download -#Fetch-YoutubeVideoList # Call this to fetch video list and save to youtube.json -Update-YoutubeDataFilesFromJson # Call this to update data.json files from youtube.json +# Download-AllYouTubeCaptions -accessToken $env:GOOGLE_ACCESS_TOKEN \ No newline at end of file diff --git a/.powershell/build/test.ps1 b/.powershell/dev/test.ps1 similarity index 100% rename from .powershell/build/test.ps1 rename to .powershell/dev/test.ps1 diff --git a/.powershell/single-use/videos/syncNKDAgilityTV-Transcripts.ps1 b/.powershell/single-use/videos/syncNKDAgilityTV-Transcripts.ps1 index dba12ebbb..bef23270f 100644 --- a/.powershell/single-use/videos/syncNKDAgilityTV-Transcripts.ps1 +++ b/.powershell/single-use/videos/syncNKDAgilityTV-Transcripts.ps1 @@ -1,60 +1,5 @@ -# Variables for OAuth credentials -$clientId = $env:google_clientId -$clientSecret = $env:google_clientSecret -$redirectUri = "http://localhost:8080" -$scope = "https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube.force-ssl" -$channelId = "UCkYqhFNmhCzkefHsHS652hw" $outputDir = "site\content\resources\videos\youtube" -$maxResults = 1 # Limit the number of results per API call (page) -$totalResultsLimit = 1 # Set a limit on the total number of results fetched - -# Function to get OAuth access token -function Get-OAuthToken { - param ( - [string]$clientId, - [string]$clientSecret, - [string]$redirectUri, - [string]$scope - ) - - # Step 1: Get authorization code - $authUrl = "https://accounts.google.com/o/oauth2/auth?client_id=$clientId&redirect_uri=$redirectUri&response_type=code&scope=$scope" - Write-Host "Open this URL in your browser to authorize the application:" - Write-Host $authUrl - Start-Process $authUrl - - # Step 2: Set up a local web server to listen for the OAuth callback - $listener = New-Object System.Net.HttpListener - $listener.Prefixes.Add($redirectUri + "/") - $listener.Start() - - Write-Host "Waiting for authorization response..." - - # Step 3: Wait for the OAuth response and extract the authorization code - $context = $listener.GetContext() - $response = $context.Response - $authCode = ($context.Request.Url.Query -split 'code=')[1] -split '&'[0] - - # Send a response to the browser - $responseString = "Authorization successful. You can close this tab now." - $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) - $response.ContentLength64 = $buffer.Length - $response.OutputStream.Write($buffer, 0, $buffer.Length) - $response.OutputStream.Close() - $listener.Stop() - - # Step 4: Exchange the authorization code for an access token - $tokenRequestBody = @{ - code = $authCode[0] - client_id = $clientId - client_secret = $clientSecret - redirect_uri = $redirectUri - grant_type = "authorization_code" - } - - $tokenResponse = Invoke-RestMethod -Uri "https://oauth2.googleapis.com/token" -Method Post -Body $tokenRequestBody - return $tokenResponse.access_token -} +$downloadLimit = 10 # Set a limit for the number of transcripts to download # Function to get captions for a video function Get-YouTubeCaptions { @@ -90,9 +35,11 @@ function Download-YouTubeCaption { # Save the caption content to a file [System.IO.File]::WriteAllBytes($outputPath, $response.Content) Write-Host "Caption saved to: $outputPath" + return $true # Return true to indicate success } else { Write-Host "No caption content available for captionId: $captionId" + return $false # Return false to indicate no content } } @@ -103,37 +50,56 @@ function Download-AllYouTubeCaptions { # Get all folders in $outputDir $videoFolders = Get-ChildItem -Path $outputDir -Directory + $downloadCount = 0 # Initialize counter for downloaded transcripts foreach ($folder in $videoFolders) { + if ($downloadCount -ge $downloadLimit) { + Write-Host "Reached download limit of $downloadLimit transcripts. Stopping." + break + } + $videoId = $folder.Name # The folder name is assumed to be the videoId Write-Host "Processing video ID: $videoId" + $matchingFiles = Get-ChildItem -Path $folder -Filter "transcript.*.srt" -File + + # Skip if there are already transcript files in the folder + if ($matchingFiles.Count -gt 0) { + Write-Host "Transcript files already exist for $videoId" + continue + } $captions = Get-YouTubeCaptions -videoId $videoId -accessToken $accessToken foreach ($caption in $captions) { + if ($downloadCount -ge $downloadLimit) { + Write-Host "Reached download limit of $downloadLimit transcripts. Stopping." + break + } + $captionId = $caption.id $language = $caption.snippet.language - $outputPath = Join-Path $folder.FullName "transcript.$language.srt" + # Check if the transcript already exists if (-not (Test-Path $outputPath)) { Write-Host "Downloading Transcript in $language for $captionId" - Download-YouTubeCaption -captionId $captionId -accessToken $accessToken -outputPath $outputPath + $success = Download-YouTubeCaption -captionId $captionId -accessToken $accessToken -outputPath $outputPath + + if ($success) { + $downloadCount++ + } } else { Write-Host "Transcript in $language for $captionId already exists" } } - - } + + Write-Host "Downloaded $downloadCount transcript(s)." } # Main execution flow -# Step 1: Get OAuth token -$accessToken = Get-OAuthToken -clientId $clientId -clientSecret $clientSecret -redirectUri $redirectUri -scope $scope - # Step 2: Download captions for all videos by iterating over folder names (which represent video IDs), # only downloading the transcript if it does not already exist -Download-AllYouTubeCaptions -accessToken $accessToken +Download-AllYouTubeCaptions -accessToken $env:GOOGLE_ACCESS_TOKEN diff --git a/.powershell/single-use/videos/syncNKDAgilityTV.ps1 b/.powershell/single-use/videos/syncNKDAgilityTV.ps1 deleted file mode 100644 index 0efc00ff7..000000000 --- a/.powershell/single-use/videos/syncNKDAgilityTV.ps1 +++ /dev/null @@ -1,190 +0,0 @@ -# Define variables -$apiKey = $env:google_apiKey -$channelId = "UCkYqhFNmhCzkefHsHS652hw" -$outputDir = "site\content\resources\videos\youtube" -$dataDirectory = ".\site\data" -$refreshData = $false - -$maxResults = 800 - -# Create the output directory if it doesn't exist -if (-not (Test-Path $outputDir)) { - New-Item -Path $outputDir -ItemType Directory -} - -# Function to generate markdown files from existing data.json files -# Function to fetch video details from YouTube API and update data.json files for all videos -function Update-YoutubeDataFiles { - param () - - $nextPageToken = $null - $page = 1; - do { - # YouTube API endpoint to get videos from a channel, including nextPageToken - $searchApiUrl = "https://www.googleapis.com/youtube/v3/search?key=$apiKey&part=snippet&channelId=$channelId&type=video&maxResults=$maxResults&pageToken=$nextPageToken" - - # Fetch video list - $searchResponse = Invoke-RestMethod -Uri $searchApiUrl -Method Get - - $dataFilePath = Join-Path $dataDirectory "youtube-$page.json" - $searchResponse | ConvertTo-Json -Depth 10 | Set-Content -Path $dataFilePath - - foreach ($video in $searchResponse.items) { - $videoId = $video.id.videoId - - # Call the new function to update the data for a single video - Update-YoutubeDataFile -videoId $videoId -outputDir $outputDir -refreshData $refreshData - } - - # Get the nextPageToken to continue fetching more videos - $nextPageToken = $searchResponse.nextPageToken - $page++ - } while ($nextPageToken) - - Write-Host "All video data files updated." -} - -# Function to update data.json for a single video -function Update-YoutubeDataFile { - param ( - [string]$videoId - - ) - - # Create the directory named after the video ID - $videoDir = Join-Path $outputDir $videoId - if (-not (Test-Path $videoDir)) { - New-Item -Path $videoDir -ItemType Directory - } - - # File path for data.json - $jsonFilePath = Join-Path $videoDir "data.json" - if ($videoId -eq "xo4jMxupIM0") { - Write-Host "Updating data.json for video: $videoId" - } - # Only update if $refreshData is true or data.json doesn't exist - if ($refreshData -or -not (Test-Path $jsonFilePath)) { - # Fetch full video details from YouTube API - $videoDetailsUrl = "https://www.googleapis.com/youtube/v3/videos?key=$apiKey&id=$videoId&part=snippet,contentDetails" - $videoDetails = Invoke-RestMethod -Uri $videoDetailsUrl -Method Get - $videoData = $videoDetails.items[0] - - if ($videoData) { - # Save updated video data to data.json - $videoData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePath - Write-Host "Updated data.json for video: $videoId" - } - else { - Write-Host "No data found for video: $videoId" - } - } - else { - Write-Host "Data for video $videoId is already up to date." - } -} - - - -# Function to generate markdown content for a video -function Get-NewMarkdownContents { - param ( - [pscustomobject]$videoData, - [string]$videoId - ) - - $videoSnippet = $videoData.snippet - $fullDescription = $videoSnippet.description - $durationISO = $videoData.contentDetails.duration - - # Convert duration to seconds - $timeSpan = [System.Xml.XmlConvert]::ToTimeSpan($durationISO) - $durationInSeconds = $timeSpan.TotalSeconds - - # Check if the video is a short (60 seconds or less) - $isShort = $durationInSeconds -le 60 - - # Get the highest resolution thumbnail - $thumbnails = $videoSnippet.thumbnails - $thumbnailUrl = $thumbnails.maxres.url - if (-not $thumbnailUrl) { - $thumbnailUrl = $thumbnails.high.url # Fallback to high resolution - } - - # Format the title to be URL-safe and remove invalid characters - $title = $videoSnippet.title -replace '[#"]', ' ' -replace ':', ' - ' -replace '\s+', ' ' # Ensure only one space in a row - $publishedAt = Get-Date $videoSnippet.publishedAt -Format "yyyy-MM-ddTHH:mm:ssZ" - $urlSafeTitle = ($title -replace '[:\/\\*?"<>|#%.]', '-' -replace '\s+', '-').ToLower() - - # Remove consecutive dashes - $urlSafeTitle = $urlSafeTitle -replace '-+', '-' - - # Create the external URL for the original video - $externalUrl = "https://www.youtube.com/watch?v=$videoId" - - # Return the markdown content without etag and with properly formatted title - return @" ---- -title: "$title" -date: $publishedAt -videoId: $videoId -url: /resources/videos/$urlSafeTitle -canonicalUrl: $externalUrl -preview: $thumbnailUrl -duration: $durationInSeconds -isShort: $isShort ---- - -{{< youtube $videoId >}} - -# $title - -$fullDescription - -[Watch on YouTube]($externalUrl) -"@ -} - -# Function to generate markdown files from existing data.json files -function Update-YoutubeMarkdownFiles { - param () - - # Iterate through each video folder - Get-ChildItem -Path $outputDir -Directory | ForEach-Object { - $videoDir = $_.FullName - - $markdownFile = Join-Path $videoDir "index.md" - if (Test-Path $markdownFile) { - $content = Get-Content -Path $markdownFile - if ($content -match 'canonicalUrl:') { - Write-Host "Markdown file for video $($videoDir) has been customised. Skipping." - continue - } - } - Write-Host "Testing needed!" - exit # The above code needs tested! - - $jsonFilePath = Join-Path $videoDir "data.json" - - if (Test-Path $jsonFilePath) { - # Load the video data from data.json - $videoData = Get-Content -Path $jsonFilePath | ConvertFrom-Json - $videoId = $videoData.id - - # Generate markdown content - $markdownContent = Get-NewMarkdownContents -videoData $videoData -videoId $videoId - - # Markdown file path inside the video ID folder - $filePath = Join-Path $videoDir "index.md" - - # Write the markdown content - Set-Content -Path $filePath -Value $markdownContent - Write-Host "Markdown created for video: $($videoData.snippet.title)" - } - } - - Write-Host "All markdown files updated." -} - - -Update-YoutubeDataFiles # Call this to update data.json files from YouTube API -Update-YoutubeMarkdownFiles # Call this to update markdown files from existing data.json files diff --git a/.powershell/single-use/youtube/GetAccessToken,ps1 b/.powershell/single-use/youtube/GetAccessToken,ps1 new file mode 100644 index 000000000..1754af499 --- /dev/null +++ b/.powershell/single-use/youtube/GetAccessToken,ps1 @@ -0,0 +1,107 @@ +# Function to get OAuth token using a refresh token +function Get-OAuthTokenFromRefreshToken { + param ( + [string]$clientId, + [string]$clientSecret, + [string]$refreshToken + ) + + # Request body for token refresh + $tokenRequestBody = @{ + client_id = $clientId + client_secret = $clientSecret + refresh_token = $refreshToken + grant_type = "refresh_token" + } + + # Request new access token + $tokenResponse = Invoke-RestMethod -Uri "https://oauth2.googleapis.com/token" -Method Post -Body $tokenRequestBody -ContentType "application/x-www-form-urlencoded" + return $tokenResponse.access_token +} + +# Function to get authorization code from user +function Get-AuthorizationCode { + param ( + [string]$clientId, + [string]$scope, + [string]$redirectUri + ) + + # Construct the authorization URL + $authUrl = "https://accounts.google.com/o/oauth2/auth?client_id=$clientId&redirect_uri=$redirectUri&response_type=code&scope=$scope" + Write-Host "Open this URL in your browser to authorize the application:" + Write-Host $authUrl + + # Open the URL in the default browser + Start-Process $authUrl + + # Step 2: Set up a local web server to listen for the OAuth callback + $listener = New-Object System.Net.HttpListener + $listener.Prefixes.Add($redirectUri + "/") + $listener.Start() + + Write-Host "Waiting for authorization response..." + + # Step 3: Wait for the OAuth response and extract the authorization code + $context = $listener.GetContext() + $response = $context.Response + $authCode = ($context.Request.Url.Query -split 'code=')[1] -split '&'[0] + + # Send a response to the browser + $responseString = "Authorization successful. You can close this tab now." + $buffer = [System.Text.Encoding]::UTF8.GetBytes($responseString) + $response.ContentLength64 = $buffer.Length + $response.OutputStream.Write($buffer, 0, $buffer.Length) + $response.OutputStream.Close() + $listener.Stop() + + return $authCode +} + +# Function to exchange authorization code for access and refresh tokens +function Get-TokensFromAuthCode { + param ( + [string]$clientId, + [string]$clientSecret, + [string]$authCode, + [string]$redirectUri + ) + + # Request body for exchanging the authorization code for tokens + $tokenRequestBody = @{ + code = $authCode + client_id = $clientId + client_secret = $clientSecret + redirect_uri = $redirectUri + grant_type = "authorization_code" + } + + # Exchange the authorization code for an access token and refresh token + $tokenResponse = Invoke-RestMethod -Uri "https://oauth2.googleapis.com/token" -Method Post -Body $tokenRequestBody -ContentType "application/x-www-form-urlencoded" + return $tokenResponse +} + +# Variables for OAuth credentials +$clientId = $env:google_clientId # Set your Google client ID here, or use environment variables +$clientSecret = $env:google_clientSecret # Set your Google client secret here, or use environment variables +$scope = "https://www.googleapis.com/auth/youtube.readonly https://www.googleapis.com/auth/youtube.force-ssl" +$redirectUri = "http://localhost:8080" + +# Step 1: Get authorization code from user (one-time process) +$authCode = Get-AuthorizationCode -clientId $clientId -scope $scope -redirectUri $redirectUri + +# Step 2: Exchange authorization code for tokens +$tokens = Get-TokensFromAuthCode -clientId $clientId -clientSecret $clientSecret -authCode $authCode -redirectUri $redirectUri + +# Output the tokens +Write-Host "Access Token: $($tokens.access_token)" +Write-Host "Refresh Token: $($tokens.refresh_token)" + +# Save the refresh token for future use +$refreshToken = $tokens.refresh_token + +# Step 3: Get OAuth token using refresh token (subsequent use) +$accessToken = Get-OAuthTokenFromRefreshToken -clientId $clientId -clientSecret $clientSecret -refreshToken $refreshToken + +# Output the access token +Write-Host "Access Token for unattended use: $accessToken" diff --git a/site/content/resources/videos/youtube/9PBpgfsojQI/transcript.en.srt b/site/content/resources/videos/youtube/9PBpgfsojQI/transcript.en.srt new file mode 100644 index 000000000..25746250b --- /dev/null +++ b/site/content/resources/videos/youtube/9PBpgfsojQI/transcript.en.srt @@ -0,0 +1,440 @@ +1 +00:00:07,799 --> 00:00:10,400 +foreign + +2 +00:00:13,219 --> 00:00:19,859 +2023 is predicted to be a very tough + +3 +00:00:16,740 --> 00:00:22,560 +year what do you think will be needed to + +4 +00:00:19,859 --> 00:00:25,760 +win and improve + +5 +00:00:22,560 --> 00:00:25,760 +in 2023 + +6 +00:00:28,320 --> 00:00:34,620 +businesses need to be more astute + +7 +00:00:31,560 --> 00:00:37,380 +than they are now I I work with + +8 +00:00:34,620 --> 00:00:38,460 +organization after organization that + +9 +00:00:37,380 --> 00:00:41,940 +have + +10 +00:00:38,460 --> 00:00:45,300 +no idea what their cohesive corporate + +11 +00:00:41,940 --> 00:00:47,579 +strategy is they have no idea what level + +12 +00:00:45,300 --> 00:00:49,680 +of quality they really want in the + +13 +00:00:47,579 --> 00:00:52,620 +products that they create + +14 +00:00:49,680 --> 00:00:56,879 +um and they have no idea + +15 +00:00:52,620 --> 00:00:59,399 +of what is really needed in to + +16 +00:00:56,879 --> 00:01:03,239 +understand what it is we need to we need + +17 +00:00:59,399 --> 00:01:04,979 +to build and addressing those things + +18 +00:01:03,239 --> 00:01:08,159 +is going to make the difference between + +19 +00:01:04,979 --> 00:01:11,600 +being successful in 2023 and being + +20 +00:01:08,159 --> 00:01:15,840 +unsuccessful in 2023 the the organizer + +21 +00:01:11,600 --> 00:01:17,400 +there's quite often a fine line between + +22 +00:01:15,840 --> 00:01:19,140 +businesses being profitable and + +23 +00:01:17,400 --> 00:01:21,720 +businesses not being profitable and it + +24 +00:01:19,140 --> 00:01:24,000 +can be very small things that that make + +25 +00:01:21,720 --> 00:01:26,280 +that difference between profit + +26 +00:01:24,000 --> 00:01:29,159 +profitability and not and if you're + +27 +00:01:26,280 --> 00:01:33,020 +Building Products that are delivered in + +28 +00:01:29,159 --> 00:01:35,880 +a market where there is lots of choice + +29 +00:01:33,020 --> 00:01:39,060 +then you have to be more attractive than + +30 +00:01:35,880 --> 00:01:42,840 +your competitors to your customers + +31 +00:01:39,060 --> 00:01:46,380 +um and if you're slow at delivering what + +32 +00:01:42,840 --> 00:01:49,020 +customers are asking for if you're + +33 +00:01:46,380 --> 00:01:51,720 +um don't have all the features + +34 +00:01:49,020 --> 00:01:55,020 +that they're looking for in in that + +35 +00:01:51,720 --> 00:01:55,920 +particular Market if you're + +36 +00:01:55,020 --> 00:01:57,659 +um + +37 +00:01:55,920 --> 00:01:59,939 +losing + +38 +00:01:57,659 --> 00:02:02,600 +your skilled employees because they're + +39 +00:01:59,939 --> 00:02:02,600 +unhappy + +40 +00:02:02,939 --> 00:02:06,659 +right and taking their Knowledge and + +41 +00:02:04,740 --> 00:02:07,860 +Skills elsewhere perhaps to your + +42 +00:02:06,659 --> 00:02:10,020 +competitors + +43 +00:02:07,860 --> 00:02:13,080 +then you're not going to be successful + +44 +00:02:10,020 --> 00:02:14,940 +if if the market is hard right if + +45 +00:02:13,080 --> 00:02:16,739 +everybody's under hardship those that + +46 +00:02:14,940 --> 00:02:19,379 +are going to be successful are the ones + +47 +00:02:16,739 --> 00:02:22,920 +that are investing in people + +48 +00:02:19,379 --> 00:02:24,959 +and investing in their ways of working + +49 +00:02:22,920 --> 00:02:26,760 +if your ways of working are more + +50 +00:02:24,959 --> 00:02:28,500 +effective than your competitors you'll + +51 +00:02:26,760 --> 00:02:29,340 +be successful + +52 +00:02:28,500 --> 00:02:32,000 +um + +53 +00:02:29,340 --> 00:02:32,000 +I think that's + +54 +00:02:32,580 --> 00:02:36,180 +an + +55 +00:02:34,260 --> 00:02:37,920 +that's that's really what it is you need + +56 +00:02:36,180 --> 00:02:40,260 +you need to be more effective than your + +57 +00:02:37,920 --> 00:02:44,819 +competitors and + +58 +00:02:40,260 --> 00:02:48,900 +scrum and kanban are tools that you can + +59 +00:02:44,819 --> 00:02:51,959 +use to highlight through data right + +60 +00:02:48,900 --> 00:02:53,580 +visualization of data the current state + +61 +00:02:51,959 --> 00:02:55,920 +of what's going on in some of those + +62 +00:02:53,580 --> 00:02:58,379 +spaces so that you can look at it and + +63 +00:02:55,920 --> 00:02:59,640 +know what what you need to improve + +64 +00:02:58,379 --> 00:03:02,640 +so + +65 +00:02:59,640 --> 00:03:04,920 +the big things to to invest in product + +66 +00:03:02,640 --> 00:03:07,080 +ownership is hugely lacking in + +67 +00:03:04,920 --> 00:03:09,180 +organizations most organizations have + +68 +00:03:07,080 --> 00:03:12,720 +have no idea what a product backlog + +69 +00:03:09,180 --> 00:03:13,800 +should look like they've it's yeah it's + +70 +00:03:12,720 --> 00:03:17,519 +just + +71 +00:03:13,800 --> 00:03:19,980 +no idea what it what no idea how to + +72 +00:03:17,519 --> 00:03:22,019 +analyze their Market that their business + +73 +00:03:19,980 --> 00:03:23,340 +exists in + +74 +00:03:22,019 --> 00:03:26,580 +um and they need people in their + +75 +00:03:23,340 --> 00:03:28,200 +organization that can do that and those + +76 +00:03:26,580 --> 00:03:30,239 +folks aren't going to magically be able + +77 +00:03:28,200 --> 00:03:32,159 +to do it they need they need training + +78 +00:03:30,239 --> 00:03:34,680 +right they need to they need training + +79 +00:03:32,159 --> 00:03:36,120 +and they need practice + +80 +00:03:34,680 --> 00:03:38,879 +um and that's that's one of the reasons + +81 +00:03:36,120 --> 00:03:41,940 +that we offer an extra hour of + +82 +00:03:38,879 --> 00:03:43,680 +coaching right 60 Minutes of one-on-one + +83 +00:03:41,940 --> 00:03:46,019 +coaching for every student because I + +84 +00:03:43,680 --> 00:03:47,879 +know how so difficult it is you come and + +85 +00:03:46,019 --> 00:03:50,700 +take our product owner product owner + +86 +00:03:47,879 --> 00:03:52,620 +class and then three months later you've + +87 +00:03:50,700 --> 00:03:54,060 +got all these questions and no way to + +88 +00:03:52,620 --> 00:03:57,120 +get answers because your business won't + +89 +00:03:54,060 --> 00:03:58,560 +fund uh uh a one-hour coaching session + +90 +00:03:57,120 --> 00:04:01,099 +with the trainer you had three months + +91 +00:03:58,560 --> 00:04:04,080 +ago so we just include it in the process + +92 +00:04:01,099 --> 00:04:07,200 +and and and in fact if + +93 +00:04:04,080 --> 00:04:08,819 +man if people just wanted a chat I've + +94 +00:04:07,200 --> 00:04:10,680 +Got Away on my website to book 30 + +95 +00:04:08,819 --> 00:04:13,439 +minutes book a coffee with Martin right + +96 +00:04:10,680 --> 00:04:16,560 +and just have a chat about product + +97 +00:04:13,439 --> 00:04:18,479 +ownership about how to get more out of + +98 +00:04:16,560 --> 00:04:20,400 +it how it's actually just product + +99 +00:04:18,479 --> 00:04:22,320 +management Right add your product + +100 +00:04:20,400 --> 00:04:23,759 +management and the product owner is the + +101 +00:04:22,320 --> 00:04:25,560 +same thing + +102 +00:04:23,759 --> 00:04:28,080 +um and how do you leverage those + +103 +00:04:25,560 --> 00:04:30,360 +capabilities that that scrum can enable + +104 +00:04:28,080 --> 00:04:32,520 +for your business or kanban as well can + +105 +00:04:30,360 --> 00:04:33,900 +enable for your business + +106 +00:04:32,520 --> 00:04:36,060 +um I + +107 +00:04:33,900 --> 00:04:37,680 +to get better + +108 +00:04:36,060 --> 00:04:39,300 +at delivering value + +109 +00:04:37,680 --> 00:04:42,919 +that's going to be the big difference + +110 +00:04:39,300 --> 00:04:42,919 +are we delivering value to our customers + diff --git a/site/content/resources/videos/youtube/9TbjaO1_Nz8/transcript.en.srt b/site/content/resources/videos/youtube/9TbjaO1_Nz8/transcript.en.srt new file mode 100644 index 000000000..39ff91cad --- /dev/null +++ b/site/content/resources/videos/youtube/9TbjaO1_Nz8/transcript.en.srt @@ -0,0 +1,228 @@ +1 +00:00:05,839 --> 00:00:12,540 +I would definitely recommend the the PSP + +2 +00:00:09,660 --> 00:00:15,780 +Auto and entrepreneur + +3 +00:00:12,540 --> 00:00:18,180 +um I invite the advanced pspo as well + +4 +00:00:15,780 --> 00:00:21,539 +but the the + +5 +00:00:18,180 --> 00:00:25,680 +that that key focus on value + +6 +00:00:21,539 --> 00:00:28,760 +from the from the pspo and what add your + +7 +00:00:25,680 --> 00:00:32,520 +product management looks like + +8 +00:00:28,760 --> 00:00:36,180 +are all key things that an entrepreneur + +9 +00:00:32,520 --> 00:00:38,579 +needs to bring into their way of doing + +10 +00:00:36,180 --> 00:00:41,280 +things their story of how how things + +11 +00:00:38,579 --> 00:00:43,140 +happen for them because usually + +12 +00:00:41,280 --> 00:00:45,120 +especially for entrepreneurs their + +13 +00:00:43,140 --> 00:00:47,460 +organizations are very small especially + +14 +00:00:45,120 --> 00:00:49,980 +at the start and they're going to be + +15 +00:00:47,460 --> 00:00:53,879 +fulfilling the role of product owner and + +16 +00:00:49,980 --> 00:00:56,280 +they're going to set the tone for + +17 +00:00:53,879 --> 00:00:58,860 +leadership and product management inside + +18 +00:00:56,280 --> 00:01:01,079 +of their organization and even if later + +19 +00:00:58,860 --> 00:01:02,820 +on they're handing that torch off to + +20 +00:01:01,079 --> 00:01:04,799 +somebody else because they're they're + +21 +00:01:02,820 --> 00:01:06,600 +being successful they're making good + +22 +00:01:04,799 --> 00:01:07,560 +decisions and then they're getting a + +23 +00:01:06,600 --> 00:01:09,840 +little bit bigger and they're able to + +24 +00:01:07,560 --> 00:01:13,140 +hand that torch off + +25 +00:01:09,840 --> 00:01:14,460 +that torch needs to come with uh here's + +26 +00:01:13,140 --> 00:01:16,320 +what we're trying to achieve here's + +27 +00:01:14,460 --> 00:01:18,420 +where we're going yes we have really + +28 +00:01:16,320 --> 00:01:20,520 +thought about value and I think it's + +29 +00:01:18,420 --> 00:01:22,259 +even more important for an entrepreneur + +30 +00:01:20,520 --> 00:01:24,299 +because you want to get past that + +31 +00:01:22,259 --> 00:01:25,560 +startup phase + +32 +00:01:24,299 --> 00:01:27,360 +um and I don't know what percentage of + +33 +00:01:25,560 --> 00:01:28,799 +organizations fail I don't know the + +34 +00:01:27,360 --> 00:01:32,280 +exact percentage of organizations + +35 +00:01:28,799 --> 00:01:35,479 +startups that fail but it's most of them + +36 +00:01:32,280 --> 00:01:39,900 +right most startups are going to fail + +37 +00:01:35,479 --> 00:01:42,119 +and one of the reasons that they fail is + +38 +00:01:39,900 --> 00:01:44,159 +that they don't have that tight focus on + +39 +00:01:42,119 --> 00:01:47,040 +value they don't understand what's value + +40 +00:01:44,159 --> 00:01:49,259 +what's value to their customers and they + +41 +00:01:47,040 --> 00:01:51,659 +haven't had those conversations written + +42 +00:01:49,259 --> 00:01:55,079 +it down understand it discussed it and + +43 +00:01:51,659 --> 00:01:59,220 +we have loads of tools in the product + +44 +00:01:55,079 --> 00:02:02,460 +owner class that you can use as part of + +45 +00:01:59,220 --> 00:02:04,619 +that story how how do I figure out what + +46 +00:02:02,460 --> 00:02:06,960 +those things are how do I think about + +47 +00:02:04,619 --> 00:02:10,200 +those things in order to bring everybody + +48 +00:02:06,960 --> 00:02:11,640 +in my in my team along with me and help + +49 +00:02:10,200 --> 00:02:13,860 +us understand what it is we're trying to + +50 +00:02:11,640 --> 00:02:15,900 +achieve + +51 +00:02:13,860 --> 00:02:17,700 +thanks for watching the video If you + +52 +00:02:15,900 --> 00:02:20,879 +enjoyed it please like follow And + +53 +00:02:17,700 --> 00:02:23,459 +subscribe I always reply to comments and + +54 +00:02:20,879 --> 00:02:26,520 +if you want to have a chat about this or + +55 +00:02:23,459 --> 00:02:28,200 +anything else agile scrum or devops then + +56 +00:02:26,520 --> 00:02:31,040 +please book a coffee with me through + +57 +00:02:28,200 --> 00:02:31,040 +naked agility + diff --git a/site/content/resources/videos/youtube/9VHasQBlQc8/transcript.en.srt b/site/content/resources/videos/youtube/9VHasQBlQc8/transcript.en.srt new file mode 100644 index 000000000..4103c1508 --- /dev/null +++ b/site/content/resources/videos/youtube/9VHasQBlQc8/transcript.en.srt @@ -0,0 +1,232 @@ +1 +00:00:00,120 --> 00:00:08,679 +in order to be successful organizations + +2 +00:00:03,679 --> 00:00:10,320 +need trust and Trust comes from the + +3 +00:00:08,679 --> 00:00:13,719 +virtue of + +4 +00:00:10,320 --> 00:00:16,880 +patience your organization needs + +5 +00:00:13,719 --> 00:00:18,680 +patience and tolerance with the people + +6 +00:00:16,880 --> 00:00:21,519 +in the organization who are doing the + +7 +00:00:18,680 --> 00:00:24,800 +best they can within the context that + +8 +00:00:21,519 --> 00:00:27,240 +they have and hopefully trying to create + +9 +00:00:24,800 --> 00:00:28,599 +the best possible product if they're + +10 +00:00:27,240 --> 00:00:31,279 +trying to create the best possible + +11 +00:00:28,599 --> 00:00:34,239 +product um and something goes wrong + +12 +00:00:31,279 --> 00:00:36,480 +there's a failure um things don't go + +13 +00:00:34,239 --> 00:00:38,360 +like we expect or we create something + +14 +00:00:36,480 --> 00:00:41,079 +that doesn't look like we + +15 +00:00:38,360 --> 00:00:43,440 +expect sometimes that's just a fact of + +16 +00:00:41,079 --> 00:00:45,360 +life right not everything's going to go + +17 +00:00:43,440 --> 00:00:48,920 +the way you want it not all of the + +18 +00:00:45,360 --> 00:00:51,840 +outcomes are going to be what you want + +19 +00:00:48,920 --> 00:00:55,640 +everything that we create when we're + +20 +00:00:51,840 --> 00:00:58,280 +building products is something that may + +21 +00:00:55,640 --> 00:01:01,039 +or may not work out may or may not be + +22 +00:00:58,280 --> 00:01:03,399 +successful um and we're we're taking a + +23 +00:01:01,039 --> 00:01:05,199 +BET right we're saying we think this + +24 +00:01:03,399 --> 00:01:07,720 +feature this capability is going to be + +25 +00:01:05,199 --> 00:01:09,960 +successful or we think these practices + +26 +00:01:07,720 --> 00:01:11,960 +are going to work for us as we're trying + +27 +00:01:09,960 --> 00:01:14,840 +to do things in the organization we + +28 +00:01:11,960 --> 00:01:17,880 +think this new tool is going to work and + +29 +00:01:14,840 --> 00:01:20,840 +we don't know any of those things are + +30 +00:01:17,880 --> 00:01:22,840 +true until we actually get to the end of + +31 +00:01:20,840 --> 00:01:25,200 +that process or at least someway through + +32 +00:01:22,840 --> 00:01:28,520 +that process and we have something + +33 +00:01:25,200 --> 00:01:30,320 +usable that we can validate um with our + +34 +00:01:28,520 --> 00:01:34,119 +with our customers with our us ERS with + +35 +00:01:30,320 --> 00:01:38,640 +our with in our world um to be able to + +36 +00:01:34,119 --> 00:01:42,280 +um create good outcomes so businesses + +37 +00:01:38,640 --> 00:01:45,119 +need to be patient with teams leaders + +38 +00:01:42,280 --> 00:01:47,360 +need to be patient with people um + +39 +00:01:45,119 --> 00:01:48,840 +product owners need to be patient with + +40 +00:01:47,360 --> 00:01:50,960 +the product right with the people that + +41 +00:01:48,840 --> 00:01:54,520 +are building stuff in the product are we + +42 +00:01:50,960 --> 00:01:56,399 +getting to where we need to go if we get + +43 +00:01:54,520 --> 00:02:00,159 +um uh + +44 +00:01:56,399 --> 00:02:02,920 +frustrated and create a blame cult + +45 +00:02:00,159 --> 00:02:04,520 +within our organization we are not going + +46 +00:02:02,920 --> 00:02:07,960 +to be successful cuz we're going to + +47 +00:02:04,520 --> 00:02:10,920 +erode the trust that is the foundation + +48 +00:02:07,960 --> 00:02:14,640 +to empiricism and one of the key things + +49 +00:02:10,920 --> 00:02:16,519 +we need to build trust is patience if + +50 +00:02:14,640 --> 00:02:19,120 +you are having difficulty getting the + +51 +00:02:16,519 --> 00:02:21,480 +most out of the Seven Virtues of agility + +52 +00:02:19,120 --> 00:02:24,160 +then my team at naked agility can help + +53 +00:02:21,480 --> 00:02:26,800 +you or find a consultant coach or + +54 +00:02:24,160 --> 00:02:28,959 +trainer who can it's essential for you + +55 +00:02:26,800 --> 00:02:31,319 +to find help as soon as you can and not + +56 +00:02:28,959 --> 00:02:33,319 +wait you use the links below to get in + +57 +00:02:31,319 --> 00:02:37,640 +touch because you don't just need + +58 +00:02:33,319 --> 00:02:37,640 +agility you need naked agility + diff --git a/site/content/resources/videos/youtube/9kZicmokyZ4/transcript.en.srt b/site/content/resources/videos/youtube/9kZicmokyZ4/transcript.en.srt new file mode 100644 index 000000000..da46a6bb3 --- /dev/null +++ b/site/content/resources/videos/youtube/9kZicmokyZ4/transcript.en.srt @@ -0,0 +1,44 @@ +1 +00:00:00,120 --> 00:00:05,960 +you need evidence-based Management in + +2 +00:00:02,480 --> 00:00:09,679 +your environment so that you can + +3 +00:00:05,960 --> 00:00:12,880 +understand and measure the impact of the + +4 +00:00:09,679 --> 00:00:15,759 +changes that you make to your system on + +5 +00:00:12,880 --> 00:00:18,279 +your overall ability be successful we're + +6 +00:00:15,759 --> 00:00:20,240 +we're here to deliver value to the + +7 +00:00:18,279 --> 00:00:22,160 +business in whatever shape or form that + +8 +00:00:20,240 --> 00:00:23,800 +takes we need to be able to measure it + +9 +00:00:22,160 --> 00:00:26,359 +so that when we do make changes to the + +10 +00:00:23,800 --> 00:00:30,199 +system um that we can see whether we've + +11 +00:00:26,359 --> 00:00:30,199 +been successful or not + diff --git a/site/content/resources/videos/youtube/9z9BgSi2zeA/transcript.en.srt b/site/content/resources/videos/youtube/9z9BgSi2zeA/transcript.en.srt new file mode 100644 index 000000000..f605016db --- /dev/null +++ b/site/content/resources/videos/youtube/9z9BgSi2zeA/transcript.en.srt @@ -0,0 +1,72 @@ +1 +00:00:00,199 --> 00:00:06,319 +if you're hiring an agile coach not only + +2 +00:00:03,600 --> 00:00:08,000 +do they need to be able to engage and + +3 +00:00:06,319 --> 00:00:10,400 +gain credibility with the technical + +4 +00:00:08,000 --> 00:00:12,960 +folks they also need to be able to + +5 +00:00:10,400 --> 00:00:15,160 +engage and gain credibility with + +6 +00:00:12,960 --> 00:00:17,480 +management and leadership in your + +7 +00:00:15,160 --> 00:00:20,960 +organization this means that they need + +8 +00:00:17,480 --> 00:00:24,680 +deep technical understanding of business + +9 +00:00:20,960 --> 00:00:26,679 +uh particularly within your context so + +10 +00:00:24,680 --> 00:00:29,160 +if you're a financial organization + +11 +00:00:26,679 --> 00:00:31,559 +you're going to want an agile coach who + +12 +00:00:29,160 --> 00:00:34,239 +understands uh the financial + +13 +00:00:31,559 --> 00:00:36,960 +ramifications in business of your + +14 +00:00:34,239 --> 00:00:38,559 +organization if you're a tech company + +15 +00:00:36,960 --> 00:00:41,920 +then they need to understand the + +16 +00:00:38,559 --> 00:00:44,320 +business of tech so that they can more + +17 +00:00:41,920 --> 00:00:48,879 +effectively help leadership and + +18 +00:00:44,320 --> 00:00:48,879 +management be more agile + diff --git a/site/content/resources/videos/youtube/A0Y-zySHXyc/transcript.en.srt b/site/content/resources/videos/youtube/A0Y-zySHXyc/transcript.en.srt new file mode 100644 index 000000000..ea1f23794 --- /dev/null +++ b/site/content/resources/videos/youtube/A0Y-zySHXyc/transcript.en.srt @@ -0,0 +1,504 @@ +1 +00:00:04,799 --> 00:00:08,280 +what are the bariers that prevent + +2 +00:00:06,839 --> 00:00:11,639 +Developers + +3 +00:00:08,280 --> 00:00:14,219 +from fully accepting a product owner as + +4 +00:00:11,639 --> 00:00:16,320 +the final decision maker wow there's a + +5 +00:00:14,219 --> 00:00:19,020 +lot of barriers to that I see that all + +6 +00:00:16,320 --> 00:00:20,160 +all the time at the moment + +7 +00:00:19,020 --> 00:00:23,100 +um + +8 +00:00:20,160 --> 00:00:25,920 +other other people not respecting other + +9 +00:00:23,100 --> 00:00:27,660 +people who are perhaps more senior not + +10 +00:00:25,920 --> 00:00:31,019 +respecting the product owner is probably + +11 +00:00:27,660 --> 00:00:34,500 +the biggest barrier right it's it's + +12 +00:00:31,019 --> 00:00:36,899 +other people coming down and saying + +13 +00:00:34,500 --> 00:00:39,360 +something different to the team from the + +14 +00:00:36,899 --> 00:00:41,600 +product owner or + +15 +00:00:39,360 --> 00:00:45,120 +um going behind the product owner's back + +16 +00:00:41,600 --> 00:00:48,480 +or agreeing with the product owner in in + +17 +00:00:45,120 --> 00:00:50,399 +in person but then get it in a larger + +18 +00:00:48,480 --> 00:00:52,440 +environment with more people and perhaps + +19 +00:00:50,399 --> 00:00:54,840 +recording is on + +20 +00:00:52,440 --> 00:00:57,000 +um than disagreeing with them and seeing + +21 +00:00:54,840 --> 00:00:58,920 +it different uh I didn't experience + +22 +00:00:57,000 --> 00:01:01,320 +recently where + +23 +00:00:58,920 --> 00:01:05,159 +um a product owner the product owner was + +24 +00:01:01,320 --> 00:01:07,020 +really really frustrated uh because + +25 +00:01:05,159 --> 00:01:10,140 +they'd + +26 +00:01:07,020 --> 00:01:13,020 +um been collaborating with somebody in + +27 +00:01:10,140 --> 00:01:15,119 +the organization to to to to to get the + +28 +00:01:13,020 --> 00:01:17,040 +backlog all like this is what we need + +29 +00:01:15,119 --> 00:01:18,299 +this is what we're doing and they've + +30 +00:01:17,040 --> 00:01:20,159 +been collaborating them with them quite + +31 +00:01:18,299 --> 00:01:21,540 +heavily they've had lots of private + +32 +00:01:20,159 --> 00:01:23,759 +meetings with them where they + +33 +00:01:21,540 --> 00:01:26,040 +collaborated and literally written the + +34 +00:01:23,759 --> 00:01:28,080 +backlog items word for word like that + +35 +00:01:26,040 --> 00:01:30,720 +key stakeholder that's the way they + +36 +00:01:28,080 --> 00:01:32,939 +wanted it and collaborated heavily on + +37 +00:01:30,720 --> 00:01:35,159 +that and then + +38 +00:01:32,939 --> 00:01:38,340 +um they get into + +39 +00:01:35,159 --> 00:01:40,799 +the the the the the the Sprint planning + +40 +00:01:38,340 --> 00:01:43,220 +and the stakeholders like no that's not + +41 +00:01:40,799 --> 00:01:43,220 +what I want + +42 +00:01:43,500 --> 00:01:49,619 +and it's like + +43 +00:01:45,860 --> 00:01:52,619 +that that is explicitly there's a couple + +44 +00:01:49,619 --> 00:01:54,600 +of things there right apart from being a + +45 +00:01:52,619 --> 00:01:57,299 +bit douchey right that's that's there's + +46 +00:01:54,600 --> 00:02:00,420 +that that's one piece but because it's + +47 +00:01:57,299 --> 00:02:03,000 +then in that group team Forum it + +48 +00:02:00,420 --> 00:02:04,619 +undermines + +49 +00:02:03,000 --> 00:02:06,600 +the ownership of the product by the + +50 +00:02:04,619 --> 00:02:08,399 +product owner right that totally + +51 +00:02:06,600 --> 00:02:11,400 +undermines it + +52 +00:02:08,399 --> 00:02:12,540 +and if the developers the people doing + +53 +00:02:11,400 --> 00:02:14,160 +the work + +54 +00:02:12,540 --> 00:02:17,099 +see that the product owner is being + +55 +00:02:14,160 --> 00:02:18,720 +undermined well I can't really listen to + +56 +00:02:17,099 --> 00:02:22,560 +the product owner I still have to run it + +57 +00:02:18,720 --> 00:02:25,560 +by Bob or I still need to speak to Janet + +58 +00:02:22,560 --> 00:02:27,660 +or whoever it is that that is doing the + +59 +00:02:25,560 --> 00:02:30,420 +undermining and as more and more of + +60 +00:02:27,660 --> 00:02:33,959 +those things happen + +61 +00:02:30,420 --> 00:02:37,140 +the less unless the developers are able + +62 +00:02:33,959 --> 00:02:38,580 +to to feel that they are able to respect + +63 +00:02:37,140 --> 00:02:40,020 +product owner as the final decision + +64 +00:02:38,580 --> 00:02:42,780 +maker right + +65 +00:02:40,020 --> 00:02:44,940 +and if you look at the scrum guide + +66 +00:02:42,780 --> 00:02:48,060 +who needs to respect the product order + +67 +00:02:44,940 --> 00:02:50,459 +as the final decision maker everybody in + +68 +00:02:48,060 --> 00:02:52,140 +the organization everybody not not just + +69 +00:02:50,459 --> 00:02:56,040 +the people below them + +70 +00:02:52,140 --> 00:02:58,800 +but also all of the people about them + +71 +00:02:56,040 --> 00:03:00,420 +if if you're above a product owner and + +72 +00:02:58,800 --> 00:03:02,519 +the product owner is consistently not + +73 +00:03:00,420 --> 00:03:04,500 +making the right decisions + +74 +00:03:02,519 --> 00:03:08,760 +get rid of that product owner and get a + +75 +00:03:04,500 --> 00:03:11,099 +new one that's your call right you've + +76 +00:03:08,760 --> 00:03:12,720 +hired somebody to do a job if you don't + +77 +00:03:11,099 --> 00:03:14,819 +think they're doing a good job you don't + +78 +00:03:12,720 --> 00:03:16,980 +undermine them + +79 +00:03:14,819 --> 00:03:21,900 +you get rid of them + +80 +00:03:16,980 --> 00:03:23,760 +right and that maintains that respect of + +81 +00:03:21,900 --> 00:03:25,379 +product management that respect of + +82 +00:03:23,760 --> 00:03:27,659 +product ownership + +83 +00:03:25,379 --> 00:03:29,580 +right that the team sees that the person + +84 +00:03:27,659 --> 00:03:32,280 +that's appointed is respected by + +85 +00:03:29,580 --> 00:03:34,800 +management even if management might not + +86 +00:03:32,280 --> 00:03:38,280 +necessarily 100 agree with all of the + +87 +00:03:34,800 --> 00:03:41,060 +the the the the decisions that are made + +88 +00:03:38,280 --> 00:03:43,500 +but if most of the decisions are made + +89 +00:03:41,060 --> 00:03:44,760 +result in value delivered to the + +90 +00:03:43,500 --> 00:03:47,400 +business because that is the true + +91 +00:03:44,760 --> 00:03:49,860 +outcome right what what you what you + +92 +00:03:47,400 --> 00:03:52,560 +find yeah I I I'm gonna add an + +93 +00:03:49,860 --> 00:03:55,379 +additional bit because what you find is + +94 +00:03:52,560 --> 00:03:58,319 +that that disrespect + +95 +00:03:55,379 --> 00:04:00,720 +or undermining of authority of the + +96 +00:03:58,319 --> 00:04:03,780 +product owner comes from a position of + +97 +00:04:00,720 --> 00:04:06,360 +of maybe one key stakeholder not one + +98 +00:04:03,780 --> 00:04:08,700 +thing to to + +99 +00:04:06,360 --> 00:04:10,319 +give all the information not wanting to + +100 +00:04:08,700 --> 00:04:12,239 +take accountability for their decision + +101 +00:04:10,319 --> 00:04:14,640 +right + +102 +00:04:12,239 --> 00:04:19,680 +um and it + +103 +00:04:14,640 --> 00:04:23,400 +it just results in nobody + +104 +00:04:19,680 --> 00:04:24,780 +having any capability + +105 +00:04:23,400 --> 00:04:26,520 +leadership doesn't take the + +106 +00:04:24,780 --> 00:04:27,840 +accountability the product owner can't + +107 +00:04:26,520 --> 00:04:30,300 +take the accountability because they're + +108 +00:04:27,840 --> 00:04:32,100 +continuously undermined or the ideas are + +109 +00:04:30,300 --> 00:04:34,280 +changed without their knowledge or + +110 +00:04:32,100 --> 00:04:38,100 +understanding and the developers + +111 +00:04:34,280 --> 00:04:39,780 +there's no credibility in that story so + +112 +00:04:38,100 --> 00:04:43,320 +then if I were to come back to the + +113 +00:04:39,780 --> 00:04:45,479 +question and answer it in one word uh + +114 +00:04:43,320 --> 00:04:48,060 +what are the barriers there's only one + +115 +00:04:45,479 --> 00:04:49,740 +what is the barrier that prevents + +116 +00:04:48,060 --> 00:04:51,180 +developers from fully accepting a + +117 +00:04:49,740 --> 00:04:54,540 +product owner at the final decision + +118 +00:04:51,180 --> 00:04:57,060 +maker and it's accountability or in + +119 +00:04:54,540 --> 00:04:59,220 +three words a lot + +120 +00:04:57,060 --> 00:05:01,080 +thanks for watching the video If you + +121 +00:04:59,220 --> 00:05:04,199 +enjoyed it please like follow And + +122 +00:05:01,080 --> 00:05:06,840 +subscribe I always reply to comments and + +123 +00:05:04,199 --> 00:05:09,900 +if you want to have a chat about this or + +124 +00:05:06,840 --> 00:05:11,580 +anything else agile scrum or devops then + +125 +00:05:09,900 --> 00:05:14,360 +please book a coffee with me through + +126 +00:05:11,580 --> 00:05:14,360 +naked agility + diff --git a/site/content/resources/videos/youtube/A8URbBCljnQ/transcript.en.srt b/site/content/resources/videos/youtube/A8URbBCljnQ/transcript.en.srt new file mode 100644 index 000000000..933f4a809 --- /dev/null +++ b/site/content/resources/videos/youtube/A8URbBCljnQ/transcript.en.srt @@ -0,0 +1,1960 @@ +1 +00:00:20,270 --> 00:00:24,939 +[Music] + +2 +00:00:22,880 --> 00:00:24,939 +you + +3 +00:00:26,070 --> 00:00:29,239 +[Music] + +4 +00:00:34,060 --> 00:00:39,380 +hello my name is Martin Henchy wood + +5 +00:00:37,370 --> 00:00:42,680 +I'm the owner at Naked agility in + +6 +00:00:39,380 --> 00:00:45,410 +Glasgow Scotland and I've had a couple + +7 +00:00:42,680 --> 00:00:49,160 +of questions come in from a few Foulke + +8 +00:00:45,410 --> 00:00:51,980 +and I wanted to cover a few of those + +9 +00:00:49,160 --> 00:00:56,300 +things so first off I'm going to be + +10 +00:00:51,980 --> 00:01:00,680 +doing this as often as I can I think + +11 +00:00:56,300 --> 00:01:05,290 +it's important to help people in in this + +12 +00:01:00,680 --> 00:01:07,520 +this time it can be very difficult to + +13 +00:01:05,290 --> 00:01:10,700 +figure out what's going on and get + +14 +00:01:07,520 --> 00:01:13,760 +things done so we're going to going to + +15 +00:01:10,700 --> 00:01:15,740 +look at this so the first thing that I + +16 +00:01:13,760 --> 00:01:20,229 +want to talk about a little bit was + +17 +00:01:15,740 --> 00:01:22,820 +remote working a lot of us are in that + +18 +00:01:20,229 --> 00:01:25,820 +if I probably most of us are in that + +19 +00:01:22,820 --> 00:01:29,390 +space of having to work remotely we're + +20 +00:01:25,820 --> 00:01:35,000 +gonna be working distributed from our + +21 +00:01:29,390 --> 00:01:38,200 +our teams and while we talk about in + +22 +00:01:35,000 --> 00:01:42,770 +scrum and agile in general we talk about + +23 +00:01:38,200 --> 00:01:45,290 +co-located teams the reality is when + +24 +00:01:42,770 --> 00:01:49,280 +these types of circumstances arise and + +25 +00:01:45,290 --> 00:01:51,680 +and even just based on your + +26 +00:01:49,280 --> 00:01:53,270 +organizational context you might work in + +27 +00:01:51,680 --> 00:01:56,150 +an organization that doesn't have + +28 +00:01:53,270 --> 00:01:59,770 +everybody in the same place and it can + +29 +00:01:56,150 --> 00:02:06,280 +make things very difficult so while in + +30 +00:01:59,770 --> 00:02:15,170 +one of the the values of scrum is focus + +31 +00:02:06,280 --> 00:02:16,659 +openness we are trying to have a group + +32 +00:02:15,170 --> 00:02:20,840 +of people who can work together + +33 +00:02:16,659 --> 00:02:24,860 +effectively regardless of the context so + +34 +00:02:20,840 --> 00:02:26,690 +we need to think about the values we + +35 +00:02:24,860 --> 00:02:29,510 +want to have people working together as + +36 +00:02:26,690 --> 00:02:31,879 +closely as possible and obviously in the + +37 +00:02:29,510 --> 00:02:34,790 +current context that closely as possible + +38 +00:02:31,879 --> 00:02:37,760 +is over webcam and using video + +39 +00:02:34,790 --> 00:02:40,749 +conferencing technology so we just have + +40 +00:02:37,760 --> 00:02:43,950 +to figure that out but don't forget to + +41 +00:02:40,749 --> 00:02:48,300 +continuously and + +42 +00:02:43,950 --> 00:02:52,140 +even though we are separated by space + +43 +00:02:48,300 --> 00:02:55,680 +and and only doing videoconferencing we + +44 +00:02:52,140 --> 00:02:58,260 +still need to be able to figure out what + +45 +00:02:55,680 --> 00:03:00,900 +the best way to use the tools that we've + +46 +00:02:58,260 --> 00:03:02,070 +got so don't get stuck on a tool that is + +47 +00:03:00,900 --> 00:03:05,340 +not working for you + +48 +00:03:02,070 --> 00:03:08,940 +make sure you continuously adapt try new + +49 +00:03:05,340 --> 00:03:12,780 +things figure it out I did a web + +50 +00:03:08,940 --> 00:03:15,980 +conference on Wednesday using Microsoft + +51 +00:03:12,780 --> 00:03:20,510 +teams and I found that it wasn't + +52 +00:03:15,980 --> 00:03:24,000 +particularly awesome for for that set up + +53 +00:03:20,510 --> 00:03:27,090 +just in the way that I wanted to do it + +54 +00:03:24,000 --> 00:03:29,610 +it wasn't quite working I'm going to try + +55 +00:03:27,090 --> 00:03:32,100 +some other technologies but I used teams + +56 +00:03:29,610 --> 00:03:34,290 +a lot for other things so I think it's + +57 +00:03:32,100 --> 00:03:37,050 +important when you're remote working to + +58 +00:03:34,290 --> 00:03:39,330 +think about how you interact with other + +59 +00:03:37,050 --> 00:03:42,330 +people are are you interacting with your + +60 +00:03:39,330 --> 00:03:43,950 +teammates enough do they do they know + +61 +00:03:42,330 --> 00:03:46,050 +what you're working on do you know what + +62 +00:03:43,950 --> 00:03:49,680 +they are working on make sure we have + +63 +00:03:46,050 --> 00:03:52,620 +that focus and context to understand + +64 +00:03:49,680 --> 00:03:54,450 +what's going on and what we're doing we + +65 +00:03:52,620 --> 00:03:57,390 +talked about this a lot in the + +66 +00:03:54,450 --> 00:04:02,489 +professional scrum master class I'm + +67 +00:03:57,390 --> 00:04:06,720 +hoping to do some remote PSM once the + +68 +00:04:02,489 --> 00:04:09,420 +the scrum community figures out how best + +69 +00:04:06,720 --> 00:04:11,940 +to achieve that we're gonna try some + +70 +00:04:09,420 --> 00:04:13,200 +stuff and see see if it works I have a + +71 +00:04:11,940 --> 00:04:16,019 +class coming up that I'm going to move + +72 +00:04:13,200 --> 00:04:16,850 +to to remote and we'll see see what + +73 +00:04:16,019 --> 00:04:19,650 +happens + +74 +00:04:16,850 --> 00:04:22,410 +so I think it's also important to think + +75 +00:04:19,650 --> 00:04:26,870 +about taking taking some time that idea + +76 +00:04:22,410 --> 00:04:33,750 +of poo-poo the chain while we're in this + +77 +00:04:26,870 --> 00:04:36,780 +remote state and we're maybe don't have + +78 +00:04:33,750 --> 00:04:41,250 +such laser focus on delivering value + +79 +00:04:36,780 --> 00:04:43,380 +than we had when we were in person high + +80 +00:04:41,250 --> 00:04:46,590 +bandwidth in person and we can still + +81 +00:04:43,380 --> 00:04:51,060 +focus on some of the things that need + +82 +00:04:46,590 --> 00:04:53,039 +our our help so in the the scrum world + +83 +00:04:51,060 --> 00:04:55,449 +particularly in all of product + +84 +00:04:53,039 --> 00:04:58,539 +development the work at + +85 +00:04:55,449 --> 00:05:00,340 +we're doing is really complex and it's + +86 +00:04:58,539 --> 00:05:04,139 +not really suited to that production + +87 +00:05:00,340 --> 00:05:06,999 +line mentality but our DevOps pipeline + +88 +00:05:04,139 --> 00:05:10,900 +is suited to that production line + +89 +00:05:06,999 --> 00:05:14,710 +mentality and if we want to UM take an + +90 +00:05:10,900 --> 00:05:16,749 +idea from our product owner and turn it + +91 +00:05:14,710 --> 00:05:18,759 +into working software we've got that bit + +92 +00:05:16,749 --> 00:05:20,919 +that we can't understand how long it's + +93 +00:05:18,759 --> 00:05:24,789 +going to take because it's it's the + +94 +00:05:20,919 --> 00:05:26,650 +creative endeavor of solving that + +95 +00:05:24,789 --> 00:05:29,050 +cognitive problem so we're going to + +96 +00:05:26,650 --> 00:05:32,050 +solve that problem but then we make a + +97 +00:05:29,050 --> 00:05:35,620 +change to the software we commit that to + +98 +00:05:32,050 --> 00:05:38,499 +our repository and then somehow it goes + +99 +00:05:35,620 --> 00:05:39,999 +off and ends up in production how + +100 +00:05:38,499 --> 00:05:43,930 +quickly does that happen + +101 +00:05:39,999 --> 00:05:46,080 +and how that that is your production + +102 +00:05:43,930 --> 00:05:48,879 +line that's the bit that we want to + +103 +00:05:46,080 --> 00:05:51,729 +shorten and figure out and how to make + +104 +00:05:48,879 --> 00:05:54,969 +as fast as possible and I usually use an + +105 +00:05:51,729 --> 00:05:56,889 +example from Brian Harry who was the + +106 +00:05:54,969 --> 00:06:01,240 +product unit manager for Azure DevOps + +107 +00:05:56,889 --> 00:06:03,550 +and he talked about zero build I think + +108 +00:06:01,240 --> 00:06:06,699 +he called it a zero build an awesome + +109 +00:06:03,550 --> 00:06:10,569 +phrase but he he talked about it as and + +110 +00:06:06,699 --> 00:06:14,110 +if he does our build of the product so + +111 +00:06:10,569 --> 00:06:17,499 +the team creates a version of visual + +112 +00:06:14,110 --> 00:06:19,990 +studio and TFS at the time and then they + +113 +00:06:17,499 --> 00:06:21,879 +ship it to production it has to go + +114 +00:06:19,990 --> 00:06:23,169 +through a whole bunch of or at the time + +115 +00:06:21,879 --> 00:06:27,629 +it had to go through a whole bunch of + +116 +00:06:23,169 --> 00:06:30,459 +checks so there was legal there was + +117 +00:06:27,629 --> 00:06:34,779 +validation though all kinds of steps + +118 +00:06:30,459 --> 00:06:36,580 +along that way and he would look at not + +119 +00:06:34,779 --> 00:06:40,029 +how long it took to get through that + +120 +00:06:36,580 --> 00:06:42,310 +process because there may be things just + +121 +00:06:40,029 --> 00:06:44,589 +now while we're not so good that would + +122 +00:06:42,310 --> 00:06:45,939 +fail so that's going to go back into the + +123 +00:06:44,589 --> 00:06:48,339 +feedback loop so you're not looking at + +124 +00:06:45,939 --> 00:06:50,009 +how long it takes to get your software + +125 +00:06:48,339 --> 00:06:52,419 +out the door because there's some stuff + +126 +00:06:50,009 --> 00:06:55,300 +engineering-wise we need to fix in there + +127 +00:06:52,419 --> 00:06:57,310 +and that's good to disrupt our data but + +128 +00:06:55,300 --> 00:07:01,870 +once we've got that version of the + +129 +00:06:57,310 --> 00:07:04,990 +product in production if we do another + +130 +00:07:01,870 --> 00:07:07,120 +brand new build from exactly the same + +131 +00:07:04,990 --> 00:07:08,830 +version of code that passed all the + +132 +00:07:07,120 --> 00:07:11,350 +checks and + +133 +00:07:08,830 --> 00:07:13,630 +see how long it takes that to go through + +134 +00:07:11,350 --> 00:07:17,800 +the process so that's your zero bill + +135 +00:07:13,630 --> 00:07:20,110 +does zero changes in the code the zero + +136 +00:07:17,800 --> 00:07:22,720 +changes in the platform how long does it + +137 +00:07:20,110 --> 00:07:25,450 +take you to get that into production and + +138 +00:07:22,720 --> 00:07:27,760 +that's your your zero build time that's + +139 +00:07:25,450 --> 00:07:30,700 +what you want to focus on as a + +140 +00:07:27,760 --> 00:07:32,950 +production line as we need to make this + +141 +00:07:30,700 --> 00:07:35,050 +as short as possible we need to reduce + +142 +00:07:32,950 --> 00:07:38,020 +the process and in order to do that you + +143 +00:07:35,050 --> 00:07:43,780 +need to get feedback from every stage + +144 +00:07:38,020 --> 00:07:45,700 +along the way I just found this diagram + +145 +00:07:43,780 --> 00:07:49,000 +on the internet that is enough stages + +146 +00:07:45,700 --> 00:07:50,920 +that I think was valid so you need to + +147 +00:07:49,000 --> 00:07:54,100 +focus on engineering excellence you need + +148 +00:07:50,920 --> 00:07:56,830 +to focus on improving your definition of + +149 +00:07:54,100 --> 00:08:00,280 +done but also focus on team building you + +150 +00:07:56,830 --> 00:08:03,730 +want your team to care that these things + +151 +00:08:00,280 --> 00:08:04,690 +are important it's important to get into + +152 +00:08:03,730 --> 00:08:08,110 +production as quickly as possible + +153 +00:08:04,690 --> 00:08:10,420 +because without feedback we're we may + +154 +00:08:08,110 --> 00:08:12,010 +not be building the right thing I need + +155 +00:08:10,420 --> 00:08:14,920 +to figure out how to do that and or does + +156 +00:08:12,010 --> 00:08:16,450 +that mean to focus on on people and + +157 +00:08:14,920 --> 00:08:21,840 +something I've been looking at recently + +158 +00:08:16,450 --> 00:08:24,370 +is how to use extreme gamification and + +159 +00:08:21,840 --> 00:08:27,700 +to help people understand how to work + +160 +00:08:24,370 --> 00:08:30,820 +together a little bit better some of + +161 +00:08:27,700 --> 00:08:33,210 +those things that I'm trying to get I + +162 +00:08:30,820 --> 00:08:36,850 +get people to look at it is through + +163 +00:08:33,210 --> 00:08:39,760 +board games those are a board game that + +164 +00:08:36,850 --> 00:08:44,020 +I had in mind called pandemic which is a + +165 +00:08:39,760 --> 00:08:47,650 +cooperative game of of saving humanity + +166 +00:08:44,020 --> 00:08:49,300 +from pandemic so it's kind of apt but + +167 +00:08:47,650 --> 00:08:52,330 +one of the things that you see when a + +168 +00:08:49,300 --> 00:08:55,510 +group of people play that game is that + +169 +00:08:52,330 --> 00:08:57,640 +it's very that game is very prone to one + +170 +00:08:55,510 --> 00:09:00,760 +person telling everybody else what to do + +171 +00:08:57,640 --> 00:09:03,370 +which is kind of analogous with software + +172 +00:09:00,760 --> 00:09:07,480 +development so if you can get a team + +173 +00:09:03,370 --> 00:09:10,660 +together for our it's 45 minutes to an + +174 +00:09:07,480 --> 00:09:12,190 +hour to play the game and do a diagnosis + +175 +00:09:10,660 --> 00:09:15,820 +at the end get the team to play the game + +176 +00:09:12,190 --> 00:09:18,310 +together and then talk about who you + +177 +00:09:15,820 --> 00:09:20,050 +know you're observing potentially is a + +178 +00:09:18,310 --> 00:09:21,760 +scrum master and then + +179 +00:09:20,050 --> 00:09:24,910 +have a discussion about the different + +180 +00:09:21,760 --> 00:09:27,220 +interactions that you saw during the + +181 +00:09:24,910 --> 00:09:29,860 +game so you can have that kinda safe + +182 +00:09:27,220 --> 00:09:33,070 +environment where you can run a little + +183 +00:09:29,860 --> 00:09:35,230 +experiment with your team it's fun for + +184 +00:09:33,070 --> 00:09:36,490 +them so they get into it and they forget + +185 +00:09:35,230 --> 00:09:39,520 +that you're running an experiment + +186 +00:09:36,490 --> 00:09:41,440 +because they're getting into the game + +187 +00:09:39,520 --> 00:09:44,230 +and solving the the puzzle that they're + +188 +00:09:41,440 --> 00:09:46,330 +trying to solve but you can you can have + +189 +00:09:44,230 --> 00:09:48,670 +us two observations and usually you'll + +190 +00:09:46,330 --> 00:09:50,440 +find that there's one or two people that + +191 +00:09:48,670 --> 00:09:52,450 +are very loud everybody else follows + +192 +00:09:50,440 --> 00:09:54,670 +along how do you make sure you get + +193 +00:09:52,450 --> 00:09:56,440 +everybody's opinion here'd the people + +194 +00:09:54,670 --> 00:10:01,180 +that are very loud to understand and + +195 +00:09:56,440 --> 00:10:02,920 +that they're maybe being overbearing in + +196 +00:10:01,180 --> 00:10:06,430 +in that conversation so that's part of + +197 +00:10:02,920 --> 00:10:10,150 +that focus and on people and how people + +198 +00:10:06,430 --> 00:10:13,770 +work together and I think cooperative at + +199 +00:10:10,150 --> 00:10:17,080 +fun games are definitely a way to to + +200 +00:10:13,770 --> 00:10:22,290 +help make some of those ideas a little + +201 +00:10:17,080 --> 00:10:28,420 +bit more real so I also got a question + +202 +00:10:22,290 --> 00:10:33,060 +from one of my old friends Ian frame he + +203 +00:10:28,420 --> 00:10:36,940 +was talking about UX in the context of + +204 +00:10:33,060 --> 00:10:40,690 +larger organizations and how do you make + +205 +00:10:36,940 --> 00:10:45,760 +sure that UX is not just an afterthought + +206 +00:10:40,690 --> 00:10:51,970 +now I've worked with the author of lean + +207 +00:10:45,760 --> 00:10:53,200 +UX Jeff on this that we have a class + +208 +00:10:51,970 --> 00:10:56,830 +from scrum that are called the + +209 +00:10:53,200 --> 00:11:00,160 +professional scrum with UX which he + +210 +00:10:56,830 --> 00:11:03,910 +describes as I as an olive branch to the + +211 +00:11:00,160 --> 00:11:05,710 +UX community the US community is off + +212 +00:11:03,910 --> 00:11:09,000 +doing their own thing because they're + +213 +00:11:05,710 --> 00:11:11,230 +getting pushed away by engineering teams + +214 +00:11:09,000 --> 00:11:14,550 +but really the thing that they're doing + +215 +00:11:11,230 --> 00:11:18,250 +is one of the most important parts of + +216 +00:11:14,550 --> 00:11:21,730 +product delivery understanding what your + +217 +00:11:18,250 --> 00:11:24,310 +product is what you're gonna do to solve + +218 +00:11:21,730 --> 00:11:26,620 +the business need how you're going to do + +219 +00:11:24,310 --> 00:11:28,930 +that and how those interactions and + +220 +00:11:26,620 --> 00:11:31,300 +behaviors of users that you're going to + +221 +00:11:28,930 --> 00:11:33,100 +change and I think that's that's so + +222 +00:11:31,300 --> 00:11:36,670 +unbelievably important too + +223 +00:11:33,100 --> 00:11:40,450 +at product owner and building the right + +224 +00:11:36,670 --> 00:11:42,460 +thing story that it it's it's going to + +225 +00:11:40,450 --> 00:11:45,010 +be detrimental to any organization that + +226 +00:11:42,460 --> 00:11:51,850 +is leaving it behind and you need to get + +227 +00:11:45,010 --> 00:11:54,420 +your your UX skills available on the + +228 +00:11:51,850 --> 00:11:57,130 +scrum teams with the people that are + +229 +00:11:54,420 --> 00:12:00,550 +doing the work because they are doing + +230 +00:11:57,130 --> 00:12:05,800 +work as well and I do think there's some + +231 +00:12:00,550 --> 00:12:08,470 +I guess confusion and difficulty around + +232 +00:12:05,800 --> 00:12:09,730 +what happens with long-running work you + +233 +00:12:08,470 --> 00:12:14,530 +might have a bunch of stuff that tastes + +234 +00:12:09,730 --> 00:12:17,650 +longer than Sprint to complete so how do + +235 +00:12:14,530 --> 00:12:22,270 +we deal with that and the reality is we + +236 +00:12:17,650 --> 00:12:23,980 +we have that built in to scrum in scrum + +237 +00:12:22,270 --> 00:12:27,390 +we have something called refinement + +238 +00:12:23,980 --> 00:12:29,860 +which is that work that the team does on + +239 +00:12:27,390 --> 00:12:32,890 +things that are coming up in future + +240 +00:12:29,860 --> 00:12:36,160 +sprints to create the most awesome + +241 +00:12:32,890 --> 00:12:39,130 +ordered backlog possible and so that + +242 +00:12:36,160 --> 00:12:42,670 +everybody on the team fully understands + +243 +00:12:39,130 --> 00:12:44,680 +what is in the backlog that you're + +244 +00:12:42,670 --> 00:12:46,690 +planning on bringing into the sprint by + +245 +00:12:44,680 --> 00:12:49,240 +the time you get to the sprint planning + +246 +00:12:46,690 --> 00:12:51,340 +session so in order to do that you have + +247 +00:12:49,240 --> 00:12:53,410 +to spend a bunch of time refining that + +248 +00:12:51,340 --> 00:12:55,720 +product backlog probably looking out + +249 +00:12:53,410 --> 00:12:59,350 +into the future the recommendation is to + +250 +00:12:55,720 --> 00:13:01,960 +start with about a current sprint plus + +251 +00:12:59,350 --> 00:13:04,810 +two more whatever that means to you that + +252 +00:13:01,960 --> 00:13:08,110 +might be your effective planning horizon + +253 +00:13:04,810 --> 00:13:11,560 +but really you need to plan as far out + +254 +00:13:08,110 --> 00:13:14,260 +as you need to action the things that + +255 +00:13:11,560 --> 00:13:15,910 +you find so if you find you need some + +256 +00:13:14,260 --> 00:13:19,470 +extra information or you need to do some + +257 +00:13:15,910 --> 00:13:23,530 +paper prototyping or you need to get + +258 +00:13:19,470 --> 00:13:26,170 +some some something in front of users in + +259 +00:13:23,530 --> 00:13:28,360 +order to understand better what the need + +260 +00:13:26,170 --> 00:13:29,800 +is you need to know far enough in + +261 +00:13:28,360 --> 00:13:31,810 +advance for you to deal with those + +262 +00:13:29,800 --> 00:13:35,080 +things so how do you do that in this + +263 +00:13:31,810 --> 00:13:37,720 +refinement and so there's a lot of UX + +264 +00:13:35,080 --> 00:13:41,860 +work working with the product owner and + +265 +00:13:37,720 --> 00:13:43,330 +the development team in refinement just + +266 +00:13:41,860 --> 00:13:45,110 +like there's a lot of security work + +267 +00:13:43,330 --> 00:13:46,910 +there there's a lot of architecture + +268 +00:13:45,110 --> 00:13:49,339 +car there's a lot of testing work all of + +269 +00:13:46,910 --> 00:13:52,190 +all of the skills are required in the + +270 +00:13:49,339 --> 00:13:55,480 +scrum team so there's this terminology + +271 +00:13:52,190 --> 00:13:58,100 +that I hear used a lot called dual track + +272 +00:13:55,480 --> 00:14:01,550 +dual track agile dual track scrubs + +273 +00:13:58,100 --> 00:14:02,779 +you'll track UX well whatever you want + +274 +00:14:01,550 --> 00:14:05,329 +to call it people are using lots of + +275 +00:14:02,779 --> 00:14:07,610 +different terminology but the idea + +276 +00:14:05,329 --> 00:14:10,730 +behind dual track is not that there's + +277 +00:14:07,610 --> 00:14:13,610 +two separate streams of work and it's + +278 +00:14:10,730 --> 00:14:17,200 +that there's there's one development + +279 +00:14:13,610 --> 00:14:21,470 +team that moves through different modes + +280 +00:14:17,200 --> 00:14:23,810 +for a particular backlog item so you get + +281 +00:14:21,470 --> 00:14:26,000 +something on your backlog pbi product + +282 +00:14:23,810 --> 00:14:27,350 +backlog item it might be a user story it + +283 +00:14:26,000 --> 00:14:29,560 +might be a requirement whatever you call + +284 +00:14:27,350 --> 00:14:34,010 +it there's something on your backlog and + +285 +00:14:29,560 --> 00:14:37,630 +it probably starts a little bit vague + +286 +00:14:34,010 --> 00:14:41,329 +so we maybe need to do some amount of + +287 +00:14:37,630 --> 00:14:44,000 +discovery work to understand what that + +288 +00:14:41,329 --> 00:14:48,500 +item is to get the team up to speed to + +289 +00:14:44,000 --> 00:14:54,860 +really focus on and how to to bring all + +290 +00:14:48,500 --> 00:14:58,010 +of that together and then that will move + +291 +00:14:54,860 --> 00:14:59,540 +into maybe a combination of discovery + +292 +00:14:58,010 --> 00:15:02,060 +and delivery maybe we're going to figure + +293 +00:14:59,540 --> 00:15:07,630 +out what's the smallest possible thing + +294 +00:15:02,060 --> 00:15:11,089 +that we can build that will help us + +295 +00:15:07,630 --> 00:15:12,560 +understand whether to continue to invest + +296 +00:15:11,089 --> 00:15:21,640 +in that or that we need to build + +297 +00:15:12,560 --> 00:15:26,060 +something else that's that and yep + +298 +00:15:21,640 --> 00:15:29,600 +that's that a discovery versus delivery + +299 +00:15:26,060 --> 00:15:32,510 +work and then maybe you your entire + +300 +00:15:29,600 --> 00:15:34,190 +engineering team dives into delivery for + +301 +00:15:32,510 --> 00:15:37,699 +the period of a sprint + +302 +00:15:34,190 --> 00:15:40,339 +so we deliver a bunch of things and then + +303 +00:15:37,699 --> 00:15:41,690 +we shoot back up into discovery again + +304 +00:15:40,339 --> 00:15:44,029 +where we're going to analyze the data + +305 +00:15:41,690 --> 00:15:46,730 +that we're collecting for that we're + +306 +00:15:44,029 --> 00:15:48,620 +going to look at what our hypothesis was + +307 +00:15:46,730 --> 00:15:50,300 +and whether the features that we've + +308 +00:15:48,620 --> 00:15:52,010 +built have managed to change user + +309 +00:15:50,300 --> 00:15:55,640 +behavior in the way that we expect + +310 +00:15:52,010 --> 00:15:58,160 +create the outcomes that we expect and + +311 +00:15:55,640 --> 00:15:58,940 +then we come up with what are we going + +312 +00:15:58,160 --> 00:16:03,530 +to go do + +313 +00:15:58,940 --> 00:16:06,470 +next to solve that problem so that will + +314 +00:16:03,530 --> 00:16:09,110 +bring us back down into delivery again + +315 +00:16:06,470 --> 00:16:11,780 +so we keep going through that cycle for + +316 +00:16:09,110 --> 00:16:14,630 +a particular idea and that result might + +317 +00:16:11,780 --> 00:16:19,070 +result in many PBIS that are delivered + +318 +00:16:14,630 --> 00:16:21,620 +over multiple Sprint's as we flip + +319 +00:16:19,070 --> 00:16:24,260 +between discovery and delivery and + +320 +00:16:21,620 --> 00:16:27,470 +somewhere in between so the reality is + +321 +00:16:24,260 --> 00:16:30,400 +that things on your backlog and are not + +322 +00:16:27,470 --> 00:16:33,410 +just you I work they're not just + +323 +00:16:30,400 --> 00:16:35,390 +engineering work just like they're not + +324 +00:16:33,410 --> 00:16:37,430 +just coding work not just testing work + +325 +00:16:35,390 --> 00:16:40,520 +not just architecture or security work + +326 +00:16:37,430 --> 00:16:44,900 +and each product backlog item should + +327 +00:16:40,520 --> 00:16:49,070 +represent a unit of value and that unit + +328 +00:16:44,900 --> 00:16:53,570 +of value should include coding testing + +329 +00:16:49,070 --> 00:16:56,210 +security architecture as well as UX as + +330 +00:16:53,570 --> 00:16:58,070 +well so what are the UX ideas you need + +331 +00:16:56,210 --> 00:17:00,740 +to do in there and deciding how much + +332 +00:16:58,070 --> 00:17:03,470 +time you want to spend on UX for a + +333 +00:17:00,740 --> 00:17:09,290 +particular backlog item will depend on + +334 +00:17:03,470 --> 00:17:11,750 +and how unsure you are of whether that + +335 +00:17:09,290 --> 00:17:14,210 +thing will provide value sometimes if + +336 +00:17:11,750 --> 00:17:17,600 +it's just a small simple low-risk thing + +337 +00:17:14,210 --> 00:17:22,160 +I would just go build it and see if it's + +338 +00:17:17,600 --> 00:17:24,560 +useful and if it's a high risk a big + +339 +00:17:22,160 --> 00:17:26,540 +thing then maybe I want to do some paper + +340 +00:17:24,560 --> 00:17:28,480 +prototyping maybe I want to do some + +341 +00:17:26,540 --> 00:17:31,430 +additional investigation work as a + +342 +00:17:28,480 --> 00:17:33,260 +development team around that so it's + +343 +00:17:31,430 --> 00:17:36,080 +important that the entire development + +344 +00:17:33,260 --> 00:17:39,110 +team is involved in that process and in + +345 +00:17:36,080 --> 00:17:41,510 +the the PSU professional scrum with UX + +346 +00:17:39,110 --> 00:17:44,660 +we focus very heavily on team + +347 +00:17:41,510 --> 00:17:48,110 +accountability for UX but there are many + +348 +00:17:44,660 --> 00:17:50,650 +things in UX that you need a significant + +349 +00:17:48,110 --> 00:17:54,460 +amount of expertise to be able to + +350 +00:17:50,650 --> 00:17:57,590 +deliver on you need expedience training + +351 +00:17:54,460 --> 00:18:02,210 +understanding within the UX world of + +352 +00:17:57,590 --> 00:18:04,400 +many years so everybody can't learn all + +353 +00:18:02,210 --> 00:18:07,430 +of that just like everybody can be deep + +354 +00:18:04,400 --> 00:18:09,580 +security expects experts or deep testing + +355 +00:18:07,430 --> 00:18:14,059 +experts are deep pudding + +356 +00:18:09,580 --> 00:18:15,830 +you're going to have deep UX experts but + +357 +00:18:14,059 --> 00:18:19,129 +there are is a certain amount of work + +358 +00:18:15,830 --> 00:18:22,429 +that makes sense for everybody to help + +359 +00:18:19,129 --> 00:18:25,269 +out with so one of the things we focus + +360 +00:18:22,429 --> 00:18:29,480 +on I have one on the wall behind me is + +361 +00:18:25,269 --> 00:18:31,730 +lean UX canvas this is from Jeff's + +362 +00:18:29,480 --> 00:18:36,500 +website this is the second version lanky + +363 +00:18:31,730 --> 00:18:40,669 +is v5 but it says v2 on it but just lean + +364 +00:18:36,500 --> 00:18:43,309 +UX canvas and we focus on this for an + +365 +00:18:40,669 --> 00:18:46,850 +engineering team because it helps them + +366 +00:18:43,309 --> 00:18:48,919 +understand the value and context within + +367 +00:18:46,850 --> 00:18:51,080 +work which they're making decisions + +368 +00:18:48,919 --> 00:18:54,230 +every day on how to build parse the + +369 +00:18:51,080 --> 00:18:56,990 +product and so this is a really + +370 +00:18:54,230 --> 00:19:00,440 +important tool that I think anybody on + +371 +00:18:56,990 --> 00:19:03,350 +an engineering team can learn how to how + +372 +00:19:00,440 --> 00:19:10,850 +to use and utilize but you still need + +373 +00:19:03,350 --> 00:19:14,210 +that deep UX expertise to tackle some of + +374 +00:19:10,850 --> 00:19:16,879 +those harder core things that you might + +375 +00:19:14,210 --> 00:19:18,679 +do so something you should have is all + +376 +00:19:16,879 --> 00:19:22,730 +of the things in your backlog should + +377 +00:19:18,679 --> 00:19:27,460 +include some amount of UX work depending + +378 +00:19:22,730 --> 00:19:30,590 +on the context also we talked about + +379 +00:19:27,460 --> 00:19:32,629 +emergent design just like we talked + +380 +00:19:30,590 --> 00:19:34,460 +about emergent architecture a product + +381 +00:19:32,629 --> 00:19:39,649 +backlog supports emergent architecture + +382 +00:19:34,460 --> 00:19:41,750 +and that idea is that um in sprint one + +383 +00:19:39,649 --> 00:19:46,429 +when you're working towards your first + +384 +00:19:41,750 --> 00:19:48,379 +unit of usable increment your first + +385 +00:19:46,429 --> 00:19:51,230 +piece of working software at the end of + +386 +00:19:48,379 --> 00:19:54,830 +sprint one you're going to probably + +387 +00:19:51,230 --> 00:19:56,149 +spend quite a lot of time on UX just as + +388 +00:19:54,830 --> 00:19:57,919 +you're gonna spend quite a lot of time + +389 +00:19:56,149 --> 00:20:02,210 +on architecture and quite a lot of time + +390 +00:19:57,919 --> 00:20:04,639 +on infrastructure so the amount of value + +391 +00:20:02,210 --> 00:20:07,389 +that you deliver in early Sprint's is + +392 +00:20:04,639 --> 00:20:10,879 +probably going to be quite small + +393 +00:20:07,389 --> 00:20:12,950 +maybe during the sprint you spend during + +394 +00:20:10,879 --> 00:20:16,410 +your first two weeks print you and the + +395 +00:20:12,950 --> 00:20:21,510 +whole team spend four days + +396 +00:20:16,410 --> 00:20:23,940 +working on UX how are we going to build + +397 +00:20:21,510 --> 00:20:25,500 +this what value we get or what user + +398 +00:20:23,940 --> 00:20:27,630 +behaviors we'll be trying to change and + +399 +00:20:25,500 --> 00:20:30,300 +that sets you up for the next couple of + +400 +00:20:27,630 --> 00:20:33,660 +Sprint's where you spend most of your + +401 +00:20:30,300 --> 00:20:36,450 +time in that delivery with a little bit + +402 +00:20:33,660 --> 00:20:38,340 +of discovery before you need to jump + +403 +00:20:36,450 --> 00:20:43,950 +back to food you're spending a lot more + +404 +00:20:38,340 --> 00:20:45,810 +time on discovery so that idea of team + +405 +00:20:43,950 --> 00:20:47,780 +accountability we're all working + +406 +00:20:45,810 --> 00:20:51,510 +together we are all as a team + +407 +00:20:47,780 --> 00:20:55,290 +accountable for users getting the best + +408 +00:20:51,510 --> 00:20:57,090 +experience they can and I think that's + +409 +00:20:55,290 --> 00:20:58,890 +really important focus on those + +410 +00:20:57,090 --> 00:21:00,990 +behaviors that you want to change in + +411 +00:20:58,890 --> 00:21:02,460 +users and it will help you focus your + +412 +00:21:00,990 --> 00:21:04,440 +product backlog as well working with + +413 +00:21:02,460 --> 00:21:07,830 +your product owner while the product + +414 +00:21:04,440 --> 00:21:11,190 +owner is accountable for value delivery + +415 +00:21:07,830 --> 00:21:13,560 +the entire scrum team is responsible and + +416 +00:21:11,190 --> 00:21:15,690 +we are all in it together and if the + +417 +00:21:13,560 --> 00:21:19,470 +product owner is not successful we're + +418 +00:21:15,690 --> 00:21:21,690 +just as much out of a job as they are so + +419 +00:21:19,470 --> 00:21:24,290 +I think that it's important that we all + +420 +00:21:21,690 --> 00:21:27,900 +work together to solve those problems + +421 +00:21:24,290 --> 00:21:32,100 +hopefully that was our youthful at quick + +422 +00:21:27,900 --> 00:21:33,750 +dive into those three things and I + +423 +00:21:32,100 --> 00:21:36,920 +talked a little bit about remote working + +424 +00:21:33,750 --> 00:21:39,260 +and about take taking some time for + +425 +00:21:36,920 --> 00:21:42,180 +engineering excellence team building + +426 +00:21:39,260 --> 00:21:45,030 +doing doing some things around that and + +427 +00:21:42,180 --> 00:21:49,320 +I talked a little bit about integrating + +428 +00:21:45,030 --> 00:21:53,580 +UX into your overall strategy I hope you + +429 +00:21:49,320 --> 00:21:56,280 +found this useful remember the values + +430 +00:21:53,580 --> 00:21:58,080 +and principles of scrum those ideas of + +431 +00:21:56,280 --> 00:22:02,160 +transparency so we can get those + +432 +00:21:58,080 --> 00:22:04,350 +feedback loops is built upon trust and + +433 +00:22:02,160 --> 00:22:07,710 +in order to get trust the scrum + +434 +00:22:04,350 --> 00:22:11,280 +community feels the commitment courage + +435 +00:22:07,710 --> 00:22:13,890 +focus respect and openness or of utmost + +436 +00:22:11,280 --> 00:22:15,330 +importance so if you're trying to make a + +437 +00:22:13,890 --> 00:22:17,100 +decision about how you're going to do + +438 +00:22:15,330 --> 00:22:22,050 +something especially during this crisis + +439 +00:22:17,100 --> 00:22:24,390 +think about how and how will the way + +440 +00:22:22,050 --> 00:22:26,580 +we've decided to do something support + +441 +00:22:24,390 --> 00:22:29,070 +those values the + +442 +00:22:26,580 --> 00:22:31,049 +kick those values to the Carib or are + +443 +00:22:29,070 --> 00:22:34,580 +they going to add to those values and + +444 +00:22:31,049 --> 00:22:38,340 +help us create more trust build + +445 +00:22:34,580 --> 00:22:40,679 +transparency and create feedback loops + +446 +00:22:38,340 --> 00:22:43,039 +if you want to get in touch with me you + +447 +00:22:40,679 --> 00:22:45,570 +have any additional questions please + +448 +00:22:43,039 --> 00:22:48,450 +please do there's my email address my + +449 +00:22:45,570 --> 00:22:51,510 +whatsapp and my Twitter you can get in + +450 +00:22:48,450 --> 00:22:55,799 +touch me on all of those places and I've + +451 +00:22:51,510 --> 00:22:59,299 +done two presentations recently that I + +452 +00:22:55,799 --> 00:23:01,919 +wanted to call out one is an enterprise + +453 +00:22:59,299 --> 00:23:07,080 +evolution that shows that you can - + +454 +00:23:01,919 --> 00:23:09,299 +which is from the the Microsoft story + +455 +00:23:07,080 --> 00:23:12,240 +the story of how the azure DevOps team + +456 +00:23:09,299 --> 00:23:14,809 +of the TFS team went from delivering + +457 +00:23:12,240 --> 00:23:17,220 +every two years in a waterfall manner + +458 +00:23:14,809 --> 00:23:19,230 +towards delivering to production every + +459 +00:23:17,220 --> 00:23:23,029 +three weeks and the improvements that + +460 +00:23:19,230 --> 00:23:25,440 +they made they started back in 2012 + +461 +00:23:23,029 --> 00:23:27,480 +delivering only 22 features to + +462 +00:23:25,440 --> 00:23:31,860 +production each year and now they're + +463 +00:23:27,480 --> 00:23:34,230 +delivering over 270 features to + +464 +00:23:31,860 --> 00:23:35,610 +production each year so it's a big + +465 +00:23:34,230 --> 00:23:36,990 +change with the same number of people + +466 +00:23:35,610 --> 00:23:39,720 +and it's about paying back your + +467 +00:23:36,990 --> 00:23:41,610 +technical debt getting better at working + +468 +00:23:39,720 --> 00:23:46,470 +together improving communication lines + +469 +00:23:41,610 --> 00:23:50,159 +and getting all of that sorted last week + +470 +00:23:46,470 --> 00:23:54,630 +I also did a presentation on detecting + +471 +00:23:50,159 --> 00:23:58,049 +agile BS which is from the Department of + +472 +00:23:54,630 --> 00:24:00,630 +Defense article of the same name the + +473 +00:23:58,049 --> 00:24:03,649 +white paper I would definitely recommend + +474 +00:24:00,630 --> 00:24:06,419 +going and reading detecting agile BS and + +475 +00:24:03,649 --> 00:24:09,659 +seeing what's going on there is fairly + +476 +00:24:06,419 --> 00:24:12,899 +awesome article well thank you very much + +477 +00:24:09,659 --> 00:24:16,639 +I hope you found that useful if + +478 +00:24:12,899 --> 00:24:22,289 +anybody's got any questions then please + +479 +00:24:16,639 --> 00:24:24,360 +let me know I don't see any questions + +480 +00:24:22,289 --> 00:24:27,360 +coming in yet that doesn't mean they're + +481 +00:24:24,360 --> 00:24:29,700 +not there it just means my tool might + +482 +00:24:27,360 --> 00:24:35,399 +not have been + +483 +00:24:29,700 --> 00:24:37,740 +very good pulling pulling them out I'm + +484 +00:24:35,399 --> 00:24:38,639 +just going to check and then if there's + +485 +00:24:37,740 --> 00:24:44,639 +no questions + +486 +00:24:38,639 --> 00:24:47,760 +that's folks want answered I might well + +487 +00:24:44,639 --> 00:24:51,450 +I don't see any questions so thank you + +488 +00:24:47,760 --> 00:24:55,110 +very much for having listening to me and + +489 +00:24:51,450 --> 00:25:00,649 +I hope you have a good a good day in a + +490 +00:24:55,110 --> 00:25:00,649 +good weekend okay thank you very much + diff --git a/site/content/resources/videos/youtube/AaCM_pmZb4k/transcript.en.srt b/site/content/resources/videos/youtube/AaCM_pmZb4k/transcript.en.srt new file mode 100644 index 000000000..0447aedd2 --- /dev/null +++ b/site/content/resources/videos/youtube/AaCM_pmZb4k/transcript.en.srt @@ -0,0 +1,960 @@ +1 +00:00:04,799 --> 00:00:10,080 +well that's a great question what are + +2 +00:00:06,960 --> 00:00:13,080 +hierarchies of competence + +3 +00:00:10,080 --> 00:00:15,179 +versus hierarchies of control and why + +4 +00:00:13,080 --> 00:00:19,080 +does it matter + +5 +00:00:15,179 --> 00:00:21,300 +well the hmm let's define each one so a + +6 +00:00:19,080 --> 00:00:24,000 +hierarchy of control + +7 +00:00:21,300 --> 00:00:27,900 +is where everybody's + +8 +00:00:24,000 --> 00:00:29,519 +told what to do usually obviously in a + +9 +00:00:27,900 --> 00:00:31,980 +hierarchy right because it's hierarchies + +10 +00:00:29,519 --> 00:00:34,500 +of control but you've you've got um the + +11 +00:00:31,980 --> 00:00:37,620 +traditional organizational structure + +12 +00:00:34,500 --> 00:00:40,079 +the pyramid right you've got the small + +13 +00:00:37,620 --> 00:00:42,780 +number of people at the top that are the + +14 +00:00:40,079 --> 00:00:44,219 +thinkers right the deciders + +15 +00:00:42,780 --> 00:00:46,200 +and then you get the majority of people + +16 +00:00:44,219 --> 00:00:48,120 +at the bottom who are the doers + +17 +00:00:46,200 --> 00:00:50,160 +and steering + +18 +00:00:48,120 --> 00:00:54,120 +flows down right + +19 +00:00:50,160 --> 00:00:56,699 +so in order for uh uh + +20 +00:00:54,120 --> 00:00:58,320 +um something to be decided + +21 +00:00:56,699 --> 00:01:00,539 +right there needs to be some kind of + +22 +00:00:58,320 --> 00:01:01,800 +trigger that a decision needs made and + +23 +00:01:00,539 --> 00:01:03,180 +sometimes that's just going to come from + +24 +00:01:01,800 --> 00:01:04,920 +the top because the person at the top + +25 +00:01:03,180 --> 00:01:07,080 +has an idea and everybody shall follow + +26 +00:01:04,920 --> 00:01:08,760 +it right everybody shall do it + +27 +00:01:07,080 --> 00:01:11,220 +um but sometimes it's a market trigger + +28 +00:01:08,760 --> 00:01:12,960 +right and when it's a market trigger + +29 +00:01:11,220 --> 00:01:14,880 +this is hierarchies of control in a + +30 +00:01:12,960 --> 00:01:16,979 +market trigger you've got the the the + +31 +00:01:14,880 --> 00:01:19,080 +markets are actually at the bottom the + +32 +00:01:16,979 --> 00:01:20,400 +people talking directly to the markets + +33 +00:01:19,080 --> 00:01:21,720 +are not the people at the top they're + +34 +00:01:20,400 --> 00:01:23,100 +the people at the bottom they're talking + +35 +00:01:21,720 --> 00:01:24,780 +to the shareholders right which is a + +36 +00:01:23,100 --> 00:01:26,759 +different sort of Market but who are + +37 +00:01:24,780 --> 00:01:27,840 +talking to your to your actual Market of + +38 +00:01:26,759 --> 00:01:29,880 +your customers + +39 +00:01:27,840 --> 00:01:32,520 +so there's some kind of trigger and it + +40 +00:01:29,880 --> 00:01:34,979 +has to be important enough that this + +41 +00:01:32,520 --> 00:01:36,900 +person who has no Authority whatsoever + +42 +00:01:34,979 --> 00:01:37,920 +and maybe doesn't give a crap right + +43 +00:01:36,900 --> 00:01:40,439 +because they're just doing what they're + +44 +00:01:37,920 --> 00:01:43,560 +told it has to be painful enough for + +45 +00:01:40,439 --> 00:01:46,740 +this person that they filter that up + +46 +00:01:43,560 --> 00:01:48,119 +to the next level right and then it + +47 +00:01:46,740 --> 00:01:49,979 +needs to be painful enough for that + +48 +00:01:48,119 --> 00:01:52,020 +person above I.E there's enough people + +49 +00:01:49,979 --> 00:01:54,180 +below giving that feedback that they're + +50 +00:01:52,020 --> 00:01:55,680 +like oh I need to escalate this and then + +51 +00:01:54,180 --> 00:01:58,140 +it escalates and it escalates and + +52 +00:01:55,680 --> 00:02:00,119 +escalation is is the word to watch out + +53 +00:01:58,140 --> 00:02:01,380 +for right so we're managing by + +54 +00:02:00,119 --> 00:02:04,079 +escalation + +55 +00:02:01,380 --> 00:02:06,180 +you've got this item this problem is + +56 +00:02:04,079 --> 00:02:08,340 +escalated up the chain until it gets to + +57 +00:02:06,180 --> 00:02:10,140 +somebody who for want of a better + +58 +00:02:08,340 --> 00:02:12,120 +expression this is how my dad phrased it + +59 +00:02:10,140 --> 00:02:15,120 +you get to somebody who it's beneath + +60 +00:02:12,120 --> 00:02:17,040 +them to deal with your problem right and + +61 +00:02:15,120 --> 00:02:19,739 +they just say to somebody below them + +62 +00:02:17,040 --> 00:02:21,900 +just fix it I don't care right just fix + +63 +00:02:19,739 --> 00:02:23,160 +it or they just make a decision and it + +64 +00:02:21,900 --> 00:02:24,720 +doesn't matter whether it's the right or + +65 +00:02:23,160 --> 00:02:26,580 +wrong decision nobody cares they just + +66 +00:02:24,720 --> 00:02:28,379 +make one right because at that level + +67 +00:02:26,580 --> 00:02:31,200 +they're not connected to the environment + +68 +00:02:28,379 --> 00:02:33,239 +and so I worked at Merrill Lynch for a + +69 +00:02:31,200 --> 00:02:34,860 +few years and before it was bought over + +70 +00:02:33,239 --> 00:02:36,540 +by Bank of America so Bank of America + +71 +00:02:34,860 --> 00:02:38,520 +Merrill Lynch now but + +72 +00:02:36,540 --> 00:02:41,239 +um there were there were 16 people + +73 +00:02:38,520 --> 00:02:45,599 +between me and the CEO + +74 +00:02:41,239 --> 00:02:47,640 +how long do you think it would take in + +75 +00:02:45,599 --> 00:02:51,000 +that pyramidal structure for that + +76 +00:02:47,640 --> 00:02:53,220 +trigger to get all the way to the top a + +77 +00:02:51,000 --> 00:02:55,379 +decision to be made and then that to + +78 +00:02:53,220 --> 00:02:57,180 +filter all the way down and remember it + +79 +00:02:55,379 --> 00:02:59,160 +has to be the same message that filters + +80 +00:02:57,180 --> 00:03:00,660 +down to the bottom which is never the + +81 +00:02:59,160 --> 00:03:02,280 +case because you know politics happens + +82 +00:03:00,660 --> 00:03:04,260 +in here as well + +83 +00:03:02,280 --> 00:03:07,080 +so that's that's a that's hierarchies of + +84 +00:03:04,260 --> 00:03:11,819 +control you're you're maximizing the + +85 +00:03:07,080 --> 00:03:14,280 +amount of time it takes for a a signal a + +86 +00:03:11,819 --> 00:03:16,680 +message to get to the person who needs + +87 +00:03:14,280 --> 00:03:18,000 +to act action it and then and then for + +88 +00:03:16,680 --> 00:03:21,300 +the change come on we'll be back down + +89 +00:03:18,000 --> 00:03:24,239 +and and that was great when + +90 +00:03:21,300 --> 00:03:26,400 +we were in the industrial revolution + +91 +00:03:24,239 --> 00:03:30,300 +right where these these practices came + +92 +00:03:26,400 --> 00:03:32,459 +from where in fact the the Mantra is + +93 +00:03:30,300 --> 00:03:34,200 +slow and steady wins the race right + +94 +00:03:32,459 --> 00:03:35,700 +would be would be the watchword of the + +95 +00:03:34,200 --> 00:03:37,680 +day because the customers aren't + +96 +00:03:35,700 --> 00:03:40,019 +changing their mind all the time the + +97 +00:03:37,680 --> 00:03:41,640 +customers aren't exposed to a hundred + +98 +00:03:40,019 --> 00:03:44,340 +different companies doing the same thing + +99 +00:03:41,640 --> 00:03:46,200 +and then picking that you're making the + +100 +00:03:44,340 --> 00:03:49,500 +product that they are buying end of + +101 +00:03:46,200 --> 00:03:51,780 +story right perhaps really really really + +102 +00:03:49,500 --> 00:03:54,239 +rich people could afford to import a + +103 +00:03:51,780 --> 00:03:56,940 +product from somewhere else in the world + +104 +00:03:54,239 --> 00:03:58,739 +um but otherwise it's all all kind of + +105 +00:03:56,940 --> 00:04:01,440 +more local + +106 +00:03:58,739 --> 00:04:03,659 +um um industry right you you if you want + +107 +00:04:01,440 --> 00:04:05,580 +a ship and you're a shipping company you + +108 +00:04:03,659 --> 00:04:08,040 +go to your local Shipyard in Glasgow if + +109 +00:04:05,580 --> 00:04:10,140 +you're in Glasgow or perhaps Southampton + +110 +00:04:08,040 --> 00:04:11,700 +but you're not gonna buy a ship from a + +111 +00:04:10,140 --> 00:04:13,439 +shipyard in China right that doesn't + +112 +00:04:11,700 --> 00:04:15,720 +make any sense whatsoever you would even + +113 +00:04:13,439 --> 00:04:17,400 +know that Shipyard existed right no + +114 +00:04:15,720 --> 00:04:20,340 +marketing no Communications at that + +115 +00:04:17,400 --> 00:04:23,400 +level so so so that's hierarchies of + +116 +00:04:20,340 --> 00:04:26,220 +control work great then but today with + +117 +00:04:23,400 --> 00:04:29,880 +the speed of Market change right because + +118 +00:04:26,220 --> 00:04:31,740 +there are no static markets anymore you + +119 +00:04:29,880 --> 00:04:33,419 +need this decision process to be much + +120 +00:04:31,740 --> 00:04:36,479 +much quicker + +121 +00:04:33,419 --> 00:04:39,180 +so hierarchies of competence + +122 +00:04:36,479 --> 00:04:42,120 +are about kind of I guess kind of + +123 +00:04:39,180 --> 00:04:44,820 +flipping on its head while still having + +124 +00:04:42,120 --> 00:04:47,940 +a little bit of hierarchy because kinda + +125 +00:04:44,820 --> 00:04:51,380 +uh there I I believe that there's + +126 +00:04:47,940 --> 00:04:54,120 +definitely a human need for for for + +127 +00:04:51,380 --> 00:04:57,240 +hierarchy right + +128 +00:04:54,120 --> 00:05:00,680 +um any time you see a group of people + +129 +00:04:57,240 --> 00:05:03,720 +who are challenged to complete some task + +130 +00:05:00,680 --> 00:05:06,600 +whether it's here's a pile of ropes and + +131 +00:05:03,720 --> 00:05:09,199 +stuff across that river right they're + +132 +00:05:06,600 --> 00:05:12,139 +going to you're going to have + +133 +00:05:09,199 --> 00:05:16,639 +leaders that emerge + +134 +00:05:12,139 --> 00:05:20,040 +based on their understanding or ability + +135 +00:05:16,639 --> 00:05:21,180 +within that particular context right so + +136 +00:05:20,040 --> 00:05:23,340 +if you gave the same group of people + +137 +00:05:21,180 --> 00:05:25,800 +another task it might be a different + +138 +00:05:23,340 --> 00:05:28,500 +leader that emerges + +139 +00:05:25,800 --> 00:05:31,259 +based on the context that they're in + +140 +00:05:28,500 --> 00:05:34,620 +that would be a hierarchy created based + +141 +00:05:31,259 --> 00:05:38,940 +on competence I choose to succeed + +142 +00:05:34,620 --> 00:05:41,220 +succeed secede succeed some of my + +143 +00:05:38,940 --> 00:05:43,560 +control over what it is we're doing to + +144 +00:05:41,220 --> 00:05:45,180 +you so that we can all collaborate + +145 +00:05:43,560 --> 00:05:48,479 +together to get to the outcome that we + +146 +00:05:45,180 --> 00:05:50,460 +desire and I'm Deli I am choosing to + +147 +00:05:48,479 --> 00:05:51,600 +secede that control to you because I + +148 +00:05:50,460 --> 00:05:54,720 +believe you are the most competent + +149 +00:05:51,600 --> 00:05:57,419 +person to do it and you'll see in larger + +150 +00:05:54,720 --> 00:06:01,020 +groups of people there might be multiple + +151 +00:05:57,419 --> 00:06:03,720 +different competing ideas for how to + +152 +00:06:01,020 --> 00:06:05,940 +solve the problem and perhaps you'll end + +153 +00:06:03,720 --> 00:06:07,740 +up with two groups of people with two + +154 +00:06:05,940 --> 00:06:09,780 +leaders that are both trying to solve in + +155 +00:06:07,740 --> 00:06:11,220 +different ways and then you see which is + +156 +00:06:09,780 --> 00:06:12,840 +the better outcome or the quicker + +157 +00:06:11,220 --> 00:06:14,280 +outcome more of the more optimal outcome + +158 +00:06:12,840 --> 00:06:16,440 +right + +159 +00:06:14,280 --> 00:06:18,960 +um and and that's just a natural thing + +160 +00:06:16,440 --> 00:06:22,979 +that we do so the fundamental difference + +161 +00:06:18,960 --> 00:06:25,800 +between hierarchies of control is + +162 +00:06:22,979 --> 00:06:27,479 +in hierarchies of control you as an + +163 +00:06:25,800 --> 00:06:31,020 +individual + +164 +00:06:27,479 --> 00:06:33,300 +um don't choose to follow you are + +165 +00:06:31,020 --> 00:06:34,860 +enforced to follow a specific person + +166 +00:06:33,300 --> 00:06:37,620 +even if you think they're the most + +167 +00:06:34,860 --> 00:06:40,080 +incompetent idiot in the world + +168 +00:06:37,620 --> 00:06:42,000 +um and in that model you actually + +169 +00:06:40,080 --> 00:06:44,520 +there's an expression that you hear a + +170 +00:06:42,000 --> 00:06:46,620 +lot which is promoted to their level of + +171 +00:06:44,520 --> 00:06:48,780 +incompetence you heard that expression + +172 +00:06:46,620 --> 00:06:51,360 +that's that's just fits perfectly with + +173 +00:06:48,780 --> 00:06:54,539 +that model because somebody is seen to + +174 +00:06:51,360 --> 00:06:55,979 +be good at doing a job and then they + +175 +00:06:54,539 --> 00:06:57,780 +promote them to the next level up and + +176 +00:06:55,979 --> 00:06:59,639 +maybe the next level up is All About + +177 +00:06:57,780 --> 00:07:01,919 +Management and has nothing to do with + +178 +00:06:59,639 --> 00:07:03,479 +actually doing the same job and now + +179 +00:07:01,919 --> 00:07:06,300 +they're not good at it but you never + +180 +00:07:03,479 --> 00:07:08,400 +demote people you only promote people + +181 +00:07:06,300 --> 00:07:10,259 +so then they never get promoted again so + +182 +00:07:08,400 --> 00:07:12,539 +they've been promoted to their level of + +183 +00:07:10,259 --> 00:07:15,539 +incompetence one level down they're + +184 +00:07:12,539 --> 00:07:18,180 +awesome this level up they suck right + +185 +00:07:15,539 --> 00:07:19,979 +and so you end up with these massive + +186 +00:07:18,180 --> 00:07:22,380 +management structures and organizations + +187 +00:07:19,979 --> 00:07:23,940 +because you've promoted this person to + +188 +00:07:22,380 --> 00:07:25,139 +the level of incompetence and oh crap + +189 +00:07:23,940 --> 00:07:26,580 +they're not actually doing their job so + +190 +00:07:25,139 --> 00:07:28,440 +we need to find somebody else so we + +191 +00:07:26,580 --> 00:07:30,840 +promote this other person I know they're + +192 +00:07:28,440 --> 00:07:32,400 +actually good at it so out of how many + +193 +00:07:30,840 --> 00:07:34,020 +people at that level + +194 +00:07:32,400 --> 00:07:36,000 +how many people are actually useful + +195 +00:07:34,020 --> 00:07:37,919 +that's that hierarchies of control + +196 +00:07:36,000 --> 00:07:41,039 +create some of those structures + +197 +00:07:37,919 --> 00:07:42,919 +so in hierarchies of competence you have + +198 +00:07:41,039 --> 00:07:47,520 +no + +199 +00:07:42,919 --> 00:07:51,000 +enforced structure in that manner + +200 +00:07:47,520 --> 00:07:53,819 +um a good example might be Netflix I + +201 +00:07:51,000 --> 00:07:56,220 +think holocracy they they they they use + +202 +00:07:53,819 --> 00:07:58,919 +some of those ideas where they have a + +203 +00:07:56,220 --> 00:08:01,319 +board which is kind of the enforced + +204 +00:07:58,919 --> 00:08:03,840 +hierarchy part they have a board who + +205 +00:08:01,319 --> 00:08:07,440 +sets strategic Direction but everybody + +206 +00:08:03,840 --> 00:08:10,259 +in the company's job is it everybody in + +207 +00:08:07,440 --> 00:08:12,599 +the company's job is to figure out what + +208 +00:08:10,259 --> 00:08:17,039 +can they do + +209 +00:08:12,599 --> 00:08:20,220 +to best fulfill that overall strategy + +210 +00:08:17,039 --> 00:08:21,780 +right so that could be I'm gonna go join + +211 +00:08:20,220 --> 00:08:24,000 +this team over here because I like what + +212 +00:08:21,780 --> 00:08:25,979 +they're doing or I've got a cool idea so + +213 +00:08:24,000 --> 00:08:28,500 +I'm going to what's it called when you + +214 +00:08:25,979 --> 00:08:30,000 +attract people to your position + +215 +00:08:28,500 --> 00:08:31,500 +um you know you're going to be the + +216 +00:08:30,000 --> 00:08:33,180 +leader and attract follow attract + +217 +00:08:31,500 --> 00:08:34,979 +followers that's the one I tried + +218 +00:08:33,180 --> 00:08:36,419 +followers and move in a certain + +219 +00:08:34,979 --> 00:08:39,899 +direction + +220 +00:08:36,419 --> 00:08:41,940 +um and that's all ad hoc and dynamic in + +221 +00:08:39,899 --> 00:08:43,380 +that world so you can almost go well + +222 +00:08:41,940 --> 00:08:44,880 +that's that's all the way over here and + +223 +00:08:43,380 --> 00:08:46,680 +maybe your company's not ready for that + +224 +00:08:44,880 --> 00:08:50,220 +we're all the way over here in this + +225 +00:08:46,680 --> 00:08:52,019 +top-down terroristic waterfall model + +226 +00:08:50,220 --> 00:08:54,600 +you gotta figure out what's the first + +227 +00:08:52,019 --> 00:08:56,700 +thing we can do to help move a little + +228 +00:08:54,600 --> 00:08:59,100 +bit more in that direction to leverage + +229 +00:08:56,700 --> 00:09:01,740 +the people that we have and get closer + +230 +00:08:59,100 --> 00:09:03,420 +to the market and have a faster shorter + +231 +00:09:01,740 --> 00:09:06,000 +feedback loop faster turnaround time + +232 +00:09:03,420 --> 00:09:09,440 +between market triggers and actual + +233 +00:09:06,000 --> 00:09:09,440 +things happening in our organization + +234 +00:09:09,779 --> 00:09:13,560 +thanks for watching the video If you + +235 +00:09:11,760 --> 00:09:16,740 +enjoyed it please like follow And + +236 +00:09:13,560 --> 00:09:19,380 +subscribe I always reply to comments and + +237 +00:09:16,740 --> 00:09:22,440 +if you want to have a chat about this or + +238 +00:09:19,380 --> 00:09:24,240 +anything else agile scrum or devops then + +239 +00:09:22,440 --> 00:09:27,019 +please book a coffee with me through + +240 +00:09:24,240 --> 00:09:27,019 +naked agility + diff --git a/site/content/resources/videos/youtube/FFrTLuRhyVo/data.json b/site/content/resources/videos/youtube/FFrTLuRhyVo/data.json new file mode 100644 index 000000000..455f3cfed --- /dev/null +++ b/site/content/resources/videos/youtube/FFrTLuRhyVo/data.json @@ -0,0 +1,66 @@ +{ + "kind": "youtube#video", + "etag": "DdS_AyG94cgbfb_c8OuAM2cLgeM", + "id": "FFrTLuRhyVo", + "snippet": { + "publishedAt": "2024-11-21T17:01:52Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Missed opportunities, the hidden cost of technical debt", + "description": "Missed opportunities, the hidden cost of #technicaldebt visit https://www.nkdagility.com #agile #productdevelopment #productmanagement #projectmanagement #agileproductdevelopment #agileprojectmanagement #agileproductmanagement #projectmanager #productowner #scrummaster", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "tags": [ + "Product Management", + "Product development", + "Product manager", + "Product owner", + "Project management", + "Project manager", + "Scrum master", + "Software", + "Software engineering", + "Technical debt" + ], + "categoryId": "28", + "liveBroadcastContent": "none", + "localized": { + "title": "Missed opportunities, the hidden cost of technical debt", + "description": "Missed opportunities, the hidden cost of #technicaldebt visit https://www.nkdagility.com #agile #productdevelopment #productmanagement #projectmanagement #agileproductdevelopment #agileprojectmanagement #agileproductmanagement #projectmanager #productowner #scrummaster" + } + }, + "contentDetails": { + "duration": "PT36S", + "dimension": "2d", + "definition": "hd", + "caption": "false", + "licensedContent": false, + "contentRating": {}, + "projection": "rectangular" + } +} diff --git a/site/content/resources/videos/youtube/XZip9ZcLyDs/data.captions.json b/site/content/resources/videos/youtube/XZip9ZcLyDs/data.captions.json new file mode 100644 index 000000000..1a256758b --- /dev/null +++ b/site/content/resources/videos/youtube/XZip9ZcLyDs/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-03-27T20:42:39.104606Z", + "captionId": "AUieDaZfcMG0g2UvnirjjlXAUd2zVc5FlbzOOUY8u3PEyrT6-0M", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/ZQZeM20TO4c/data.captions.json b/site/content/resources/videos/youtube/ZQZeM20TO4c/data.captions.json new file mode 100644 index 000000000..c64d048ce --- /dev/null +++ b/site/content/resources/videos/youtube/ZQZeM20TO4c/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-04-25T02:00:13.613799Z", + "captionId": "AUieDaZ51gIBQmrGq5S3R1lZKifHKxGxeMiJdA4tn0T7LgeE9iA", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/a2sXBMPHl2Y/transcript.en.srt b/site/content/resources/videos/youtube/a2sXBMPHl2Y/transcript.en.srt new file mode 100644 index 000000000..1c34144f8 --- /dev/null +++ b/site/content/resources/videos/youtube/a2sXBMPHl2Y/transcript.en.srt @@ -0,0 +1,344 @@ +1 +00:00:04,799 --> 00:00:11,160 +a good question so how can companies + +2 +00:00:07,500 --> 00:00:12,719 +derive a greater benefit from training + +3 +00:00:11,160 --> 00:00:14,280 +if they invest in a private course + +4 +00:00:12,719 --> 00:00:18,119 +rather than just sending people + +5 +00:00:14,280 --> 00:00:20,460 +piecemeal to public classes I I think + +6 +00:00:18,119 --> 00:00:23,460 +it's an interesting question and I think + +7 +00:00:20,460 --> 00:00:26,519 +it's because + +8 +00:00:23,460 --> 00:00:28,619 +um ultimately because you're able in the + +9 +00:00:26,519 --> 00:00:31,920 +context of that class to air your dirty + +10 +00:00:28,619 --> 00:00:33,899 +laundry a little bit more than than if + +11 +00:00:31,920 --> 00:00:36,780 +you go to a public class + +12 +00:00:33,899 --> 00:00:40,079 +um I always try and create a safe space + +13 +00:00:36,780 --> 00:00:42,840 +in public classes that people feel that + +14 +00:00:40,079 --> 00:00:44,520 +they're able to talk about things that + +15 +00:00:42,840 --> 00:00:46,980 +are happening in their company and + +16 +00:00:44,520 --> 00:00:48,539 +everybody else in the rooms going to you + +17 +00:00:46,980 --> 00:00:50,340 +know kind of pretend they didn't hear it + +18 +00:00:48,539 --> 00:00:52,559 +afterwards type of thing so that we can + +19 +00:00:50,340 --> 00:00:55,680 +we can talk about things but you don't + +20 +00:00:52,559 --> 00:00:57,960 +feel as comfortable as perhaps you can + +21 +00:00:55,680 --> 00:01:01,020 +be within the boundaries of a single + +22 +00:00:57,960 --> 00:01:02,879 +organization and quite often and I've + +23 +00:01:01,020 --> 00:01:04,500 +had this with with certain private + +24 +00:01:02,879 --> 00:01:07,380 +classes where + +25 +00:01:04,500 --> 00:01:10,320 +um I I'm talking about + +26 +00:01:07,380 --> 00:01:12,299 +professional scrum and I'm talking about + +27 +00:01:10,320 --> 00:01:15,360 +continuous delivery to production and + +28 +00:01:12,299 --> 00:01:18,360 +I'm talking about unit testing and I'm + +29 +00:01:15,360 --> 00:01:20,159 +talking about uh just all of those + +30 +00:01:18,360 --> 00:01:22,860 +things around around devops and agile + +31 +00:01:20,159 --> 00:01:24,900 +and + +32 +00:01:22,860 --> 00:01:28,380 +there are people in the room that will + +33 +00:01:24,900 --> 00:01:30,180 +say we can't do that here because of XYZ + +34 +00:01:28,380 --> 00:01:32,340 +and what's very interesting is you'll + +35 +00:01:30,180 --> 00:01:34,920 +have somebody in the room that says well + +36 +00:01:32,340 --> 00:01:36,299 +actually on our team we are able to do + +37 +00:01:34,920 --> 00:01:38,220 +that + +38 +00:01:36,299 --> 00:01:39,720 +and say okay well why can this team do + +39 +00:01:38,220 --> 00:01:41,340 +that in your organization but these + +40 +00:01:39,720 --> 00:01:42,720 +teams believe they can't + +41 +00:01:41,340 --> 00:01:44,400 +right that can be an important + +42 +00:01:42,720 --> 00:01:46,799 +discussion to have because if somebody + +43 +00:01:44,400 --> 00:01:48,360 +can do it you can pretty much all do it + +44 +00:01:46,799 --> 00:01:51,600 +right + +45 +00:01:48,360 --> 00:01:55,439 +um the the that that so dirty laundry + +46 +00:01:51,600 --> 00:01:57,299 +that realization of the possible + +47 +00:01:55,439 --> 00:01:59,220 +through talking to other people in your + +48 +00:01:57,299 --> 00:02:01,500 +organization if everybody in the group + +49 +00:01:59,220 --> 00:02:03,360 +is on the same team it's also a little + +50 +00:02:01,500 --> 00:02:05,219 +bit different I've done agile leadership + +51 +00:02:03,360 --> 00:02:08,160 +classes with the whole leadership team + +52 +00:02:05,219 --> 00:02:10,800 +for uh for an organization and that + +53 +00:02:08,160 --> 00:02:14,400 +brings up interesting conversations and + +54 +00:02:10,800 --> 00:02:16,200 +quite often their conversations that the + +55 +00:02:14,400 --> 00:02:18,480 +participants believe they should have + +56 +00:02:16,200 --> 00:02:20,640 +they should have already had right why + +57 +00:02:18,480 --> 00:02:23,520 +do I need to come to this training to + +58 +00:02:20,640 --> 00:02:26,640 +have these conversations but that it's + +59 +00:02:23,520 --> 00:02:29,040 +that they weren't provoked right it's + +60 +00:02:26,640 --> 00:02:31,260 +comfortable to to not have those + +61 +00:02:29,040 --> 00:02:33,000 +conversations do the same thing that + +62 +00:02:31,260 --> 00:02:34,620 +we've always done + +63 +00:02:33,000 --> 00:02:36,480 +um you know running running on the + +64 +00:02:34,620 --> 00:02:39,920 +treadmill getting getting things done + +65 +00:02:36,480 --> 00:02:42,780 +but sometimes you need somebody to + +66 +00:02:39,920 --> 00:02:45,660 +provoke you into thinking differently + +67 +00:02:42,780 --> 00:02:48,060 +provoke you into thinking about how you + +68 +00:02:45,660 --> 00:02:51,060 +do things and I think that's the same is + +69 +00:02:48,060 --> 00:02:52,680 +true for for Consulting and training but + +70 +00:02:51,060 --> 00:02:55,140 +especially for private training there's + +71 +00:02:52,680 --> 00:02:57,300 +a lot of provoking and asking difficult + +72 +00:02:55,140 --> 00:03:00,000 +questions and maybe the questions they + +73 +00:02:57,300 --> 00:03:02,099 +don't want to answer right because in + +74 +00:03:00,000 --> 00:03:03,840 +not one thing to answer it they realize + +75 +00:03:02,099 --> 00:03:06,780 +they realize something about themselves + +76 +00:03:03,840 --> 00:03:08,879 +as well so that for me is the added + +77 +00:03:06,780 --> 00:03:12,120 +value to private classes is that there's + +78 +00:03:08,879 --> 00:03:14,959 +a lot more Candor then maybe there might + +79 +00:03:12,120 --> 00:03:14,959 +be in a public class + +80 +00:03:15,239 --> 00:03:19,080 +thanks for watching the video If you + +81 +00:03:17,220 --> 00:03:22,200 +enjoyed it please like follow And + +82 +00:03:19,080 --> 00:03:24,840 +subscribe I always reply to comments and + +83 +00:03:22,200 --> 00:03:27,840 +if you want to have a chat about this or + +84 +00:03:24,840 --> 00:03:29,580 +anything else agile scrum or devops then + +85 +00:03:27,840 --> 00:03:32,360 +please book a coffee with me through + +86 +00:03:29,580 --> 00:03:32,360 +naked agility + diff --git a/site/content/resources/videos/youtube/a6aw7xmS2oc/transcript.en.srt b/site/content/resources/videos/youtube/a6aw7xmS2oc/transcript.en.srt new file mode 100644 index 000000000..7a1076dec --- /dev/null +++ b/site/content/resources/videos/youtube/a6aw7xmS2oc/transcript.en.srt @@ -0,0 +1,540 @@ +1 +00:00:04,819 --> 00:00:10,139 +uh what are the top two things that a + +2 +00:00:07,620 --> 00:00:13,200 +product owner needs to bear in mind when + +3 +00:00:10,139 --> 00:00:15,360 +adopting the entrepreneur stance + +4 +00:00:13,200 --> 00:00:18,180 +I kind of think of the the entrepreneur + +5 +00:00:15,360 --> 00:00:20,880 +stance as as like the Visionary looking + +6 +00:00:18,180 --> 00:00:23,400 +forward to the future + +7 +00:00:20,880 --> 00:00:25,619 +um and that's where a lot of the stuff + +8 +00:00:23,400 --> 00:00:27,539 +that ends up on your product backlog is + +9 +00:00:25,619 --> 00:00:29,160 +going to be this is just one part of + +10 +00:00:27,539 --> 00:00:33,239 +being a product owner + +11 +00:00:29,160 --> 00:00:37,320 +and I think the the two most important + +12 +00:00:33,239 --> 00:00:41,340 +things to focus on and one is connecting + +13 +00:00:37,320 --> 00:00:43,820 +the team to uh the value that you're + +14 +00:00:41,340 --> 00:00:46,040 +creating does everybody on the team + +15 +00:00:43,820 --> 00:00:48,600 +understand + +16 +00:00:46,040 --> 00:00:50,760 +the connection between the work they're + +17 +00:00:48,600 --> 00:00:52,320 +doing every day and what it is we're + +18 +00:00:50,760 --> 00:00:54,300 +trying to achieve do they understand + +19 +00:00:52,320 --> 00:00:57,300 +that connection so that that would be a + +20 +00:00:54,300 --> 00:01:00,000 +lot around uh Vision communicating it + +21 +00:00:57,300 --> 00:01:01,739 +product goal communicating it Sprint + +22 +00:01:00,000 --> 00:01:03,480 +goals right making that connection + +23 +00:01:01,739 --> 00:01:05,280 +between the work that's happening every + +24 +00:01:03,480 --> 00:01:07,500 +day I think that's probably one of the + +25 +00:01:05,280 --> 00:01:10,500 +most important things and the most + +26 +00:01:07,500 --> 00:01:12,360 +common lacking things + +27 +00:01:10,500 --> 00:01:15,720 +um the other one is where the value + +28 +00:01:12,360 --> 00:01:18,240 +comes from uh one of the things that I + +29 +00:01:15,720 --> 00:01:20,880 +find when I engage with product owners + +30 +00:01:18,240 --> 00:01:22,560 +the first thing I ask them is is how do + +31 +00:01:20,880 --> 00:01:25,740 +you decide what's valuable and what + +32 +00:01:22,560 --> 00:01:28,500 +isn't and quite off often the answer is + +33 +00:01:25,740 --> 00:01:29,400 +I make it up as I go along right which + +34 +00:01:28,500 --> 00:01:33,299 +which + +35 +00:01:29,400 --> 00:01:35,700 +uh while not necessarily 100 wrong a lot + +36 +00:01:33,299 --> 00:01:39,840 +of people have very good + +37 +00:01:35,700 --> 00:01:41,700 +um guts skills at reading the the + +38 +00:01:39,840 --> 00:01:43,740 +reading the market reading the + +39 +00:01:41,700 --> 00:01:46,560 +information that they have + +40 +00:01:43,740 --> 00:01:48,960 +um but really we want to be taking a + +41 +00:01:46,560 --> 00:01:50,700 +more evidence-based approach + +42 +00:01:48,960 --> 00:01:54,320 +so from a product owner's perspective + +43 +00:01:50,700 --> 00:01:56,939 +are you making decisions + +44 +00:01:54,320 --> 00:01:58,979 +based on + +45 +00:01:56,939 --> 00:02:01,020 +information + +46 +00:01:58,979 --> 00:02:02,700 +do you even have the information that + +47 +00:02:01,020 --> 00:02:04,439 +you can get there's going to be lots of + +48 +00:02:02,700 --> 00:02:07,740 +hidden stuff right we're still taking + +49 +00:02:04,439 --> 00:02:09,599 +bets we're still taking risks + +50 +00:02:07,740 --> 00:02:12,900 +um but + +51 +00:02:09,599 --> 00:02:14,520 +do you have enough information to make + +52 +00:02:12,900 --> 00:02:17,040 +more of the right decisions and less of + +53 +00:02:14,520 --> 00:02:18,660 +the wrong decisions uh so for that I + +54 +00:02:17,040 --> 00:02:21,540 +usually look towards Evan's base + +55 +00:02:18,660 --> 00:02:24,420 +management right making sure that I + +56 +00:02:21,540 --> 00:02:27,360 +understand my my current value I have in + +57 +00:02:24,420 --> 00:02:29,700 +the system like uh our product that's + +58 +00:02:27,360 --> 00:02:32,700 +our current value puts features already + +59 +00:02:29,700 --> 00:02:34,319 +in there and our unrealized value what + +60 +00:02:32,700 --> 00:02:36,120 +are the stuff that we need to have in + +61 +00:02:34,319 --> 00:02:38,420 +our system that we haven't built yet so + +62 +00:02:36,120 --> 00:02:41,640 +kind of looking forward into the future + +63 +00:02:38,420 --> 00:02:45,300 +but I also really considering our our + +64 +00:02:41,640 --> 00:02:49,379 +our other more organizational capability + +65 +00:02:45,300 --> 00:02:50,459 +focused metrics where I'm gathering data + +66 +00:02:49,379 --> 00:02:52,200 +from + +67 +00:02:50,459 --> 00:02:54,360 +um both our our ability to innovate + +68 +00:02:52,200 --> 00:02:57,540 +right how much time do we spend on net + +69 +00:02:54,360 --> 00:03:00,300 +new things versus existing things it's + +70 +00:02:57,540 --> 00:03:03,120 +that's the same reason that + +71 +00:03:00,300 --> 00:03:06,060 +um uh we all get upset that Netflix is + +72 +00:03:03,120 --> 00:03:08,940 +canceling our you know favorite show + +73 +00:03:06,060 --> 00:03:12,180 +right because they do a season and the + +74 +00:03:08,940 --> 00:03:13,860 +numbers are good but they're not amazing + +75 +00:03:12,180 --> 00:03:15,959 +and if they're not amazing they know + +76 +00:03:13,860 --> 00:03:17,280 +that the second season is going to be + +77 +00:03:15,959 --> 00:03:19,319 +less amazing than the first season + +78 +00:03:17,280 --> 00:03:21,780 +because it just always is + +79 +00:03:19,319 --> 00:03:23,519 +so they would rather invest that same + +80 +00:03:21,780 --> 00:03:25,920 +money they would invest in doing a + +81 +00:03:23,519 --> 00:03:29,340 +second season of existing show into + +82 +00:03:25,920 --> 00:03:31,319 +doing a first season of a brand new show + +83 +00:03:29,340 --> 00:03:33,659 +that might be more likely to get a + +84 +00:03:31,319 --> 00:03:36,180 +higher return on investment for that for + +85 +00:03:33,659 --> 00:03:37,500 +that first show right we get all upset + +86 +00:03:36,180 --> 00:03:39,900 +because they cancel our favorite show + +87 +00:03:37,500 --> 00:03:42,060 +with their favorite characters right but + +88 +00:03:39,900 --> 00:03:44,220 +in reality they're making commercial + +89 +00:03:42,060 --> 00:03:46,019 +decisions based on the data and the + +90 +00:03:44,220 --> 00:03:47,760 +analytics that they're collecting from + +91 +00:03:46,019 --> 00:03:49,440 +who's watching all the shows and how + +92 +00:03:47,760 --> 00:03:51,299 +they're doing it you need to do that as + +93 +00:03:49,440 --> 00:03:53,099 +a product owner right that's the product + +94 +00:03:51,299 --> 00:03:55,500 +owner making those decisions based on + +95 +00:03:53,099 --> 00:03:57,840 +the data so you've got your your ability + +96 +00:03:55,500 --> 00:04:00,360 +to innovate and then you've also got + +97 +00:03:57,840 --> 00:04:02,519 +your your time to market right how + +98 +00:04:00,360 --> 00:04:04,980 +quickly can you go from + +99 +00:04:02,519 --> 00:04:07,500 +same for Netflix as well right how + +100 +00:04:04,980 --> 00:04:09,599 +quickly can you go from an idea to + +101 +00:04:07,500 --> 00:04:11,580 +getting that thing in front of real + +102 +00:04:09,599 --> 00:04:14,040 +users who are then able to give you + +103 +00:04:11,580 --> 00:04:15,959 +feedback right how quickly can you get + +104 +00:04:14,040 --> 00:04:18,900 +stuff in front of them and I think + +105 +00:04:15,959 --> 00:04:21,419 +that's that's if you think in the in the + +106 +00:04:18,900 --> 00:04:23,880 +in the in the movie TV show space that's + +107 +00:04:21,419 --> 00:04:25,919 +why we're seeing so many limited series + +108 +00:04:23,880 --> 00:04:28,340 +now + +109 +00:04:25,919 --> 00:04:31,440 +um and that's because + +110 +00:04:28,340 --> 00:04:33,419 +we are unhappy with that false sense of + +111 +00:04:31,440 --> 00:04:36,180 +we're getting more later + +112 +00:04:33,419 --> 00:04:37,620 +right we're getting a second season and + +113 +00:04:36,180 --> 00:04:38,940 +we're hoping for a second season and + +114 +00:04:37,620 --> 00:04:40,860 +then we don't get it whereas if they + +115 +00:04:38,940 --> 00:04:42,720 +Market it to us as it's a limited series + +116 +00:04:40,860 --> 00:04:44,460 +we're only making one + +117 +00:04:42,720 --> 00:04:46,320 +if it's if something happens we might + +118 +00:04:44,460 --> 00:04:48,180 +make that but we're only making one then + +119 +00:04:46,320 --> 00:04:50,940 +we don't have that sense of loss as + +120 +00:04:48,180 --> 00:04:52,820 +users and that's product ownership right + +121 +00:04:50,940 --> 00:04:55,919 +they're managing our expectations + +122 +00:04:52,820 --> 00:04:57,919 +they're looking at where the next piece + +123 +00:04:55,919 --> 00:05:01,080 +of value is coming from how can we get + +124 +00:04:57,919 --> 00:05:04,919 +different users increase our market + +125 +00:05:01,080 --> 00:05:07,080 +share into our product uh and and really + +126 +00:05:04,919 --> 00:05:08,759 +understanding value and how it impacts + +127 +00:05:07,080 --> 00:05:12,300 +on that and the decisions that you make + +128 +00:05:08,759 --> 00:05:14,759 +get the data in there as well that was + +129 +00:05:12,300 --> 00:05:16,620 +thanks for watching the video If you + +130 +00:05:14,759 --> 00:05:19,740 +enjoyed it please like follow And + +131 +00:05:16,620 --> 00:05:22,380 +subscribe I always reply to comments and + +132 +00:05:19,740 --> 00:05:25,440 +if you want to have a chat about this or + +133 +00:05:22,380 --> 00:05:27,120 +anything else agile scrum or devops then + +134 +00:05:25,440 --> 00:05:29,960 +please book a coffee with me through + +135 +00:05:27,120 --> 00:05:29,960 +naked agility + diff --git a/site/content/resources/videos/youtube/kOj-O99mUZE/data.captions.json b/site/content/resources/videos/youtube/kOj-O99mUZE/data.captions.json new file mode 100644 index 000000000..a4a214b8a --- /dev/null +++ b/site/content/resources/videos/youtube/kOj-O99mUZE/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-02-06T14:06:06.769852Z", + "captionId": "AUieDaa5C9LjIjRf944WQwI0LDhJr5ixsz8U8rkPTEMGW8kNyIg", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/whKX9Mn1eb8/data.json b/site/content/resources/videos/youtube/whKX9Mn1eb8/data.json new file mode 100644 index 000000000..7ab81887a --- /dev/null +++ b/site/content/resources/videos/youtube/whKX9Mn1eb8/data.json @@ -0,0 +1,67 @@ +{ + "kind": "youtube#video", + "etag": "5dypzIce_piFX1nkSC-1chwUZWU", + "id": "whKX9Mn1eb8", + "snippet": { + "publishedAt": "2024-11-22T14:04:14Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "The superpower of quality engineering", + "description": "The superpower of quality visit https://www.nkdagility.com #agile #agileproductdevelopment #agileproductmanagement #agileprojectmanagement #projectmanager #projectmanagement #productdevelopment #productmanagement #productowner #scrummaster #productmanager #scrum", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "tags": [ + "Software engineering", + "agile", + "agile product development", + "agile product management", + "agile project management", + "prjoect management", + "product development", + "product management", + "product manager", + "product owner", + "project manager" + ], + "categoryId": "28", + "liveBroadcastContent": "none", + "localized": { + "title": "The superpower of quality engineering", + "description": "The superpower of quality visit https://www.nkdagility.com #agile #agileproductdevelopment #agileproductmanagement #agileprojectmanagement #projectmanager #projectmanagement #productdevelopment #productmanagement #productowner #scrummaster #productmanager #scrum" + } + }, + "contentDetails": { + "duration": "PT48S", + "dimension": "2d", + "definition": "hd", + "caption": "false", + "licensedContent": false, + "contentRating": {}, + "projection": "rectangular" + } +} diff --git a/site/data/youtube.json b/site/data/youtube.json index 446468204..becd70585 100644 --- a/site/data/youtube.json +++ b/site/data/youtube.json @@ -1019,40 +1019,6 @@ "publishTime": "2024-02-09T07:00:06Z" } }, - { - "kind": "youtube#searchResult", - "etag": "6Y8I2A--7b6m0J_2RtVP246uxMc", - "id": { - "kind": "youtube#video", - "videoId": "fUj1k47pDg8" - }, - "snippet": { - "publishedAt": "2024-08-13T07:14:40Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "PPDV course overview with Dr Joanna Plaskonka", - "description": "Thinking of doing the PPDV course? Here's a quick overview of the course from Dr Joanna Plaskonka.", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/fUj1k47pDg8/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/fUj1k47pDg8/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/fUj1k47pDg8/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-08-13T07:14:40Z" - } - }, { "kind": "youtube#searchResult", "etag": "zmIlLTNjeJvAC4-YPMsr7yALR3k", @@ -1123,36 +1089,36 @@ }, { "kind": "youtube#searchResult", - "etag": "5DSwPSJQ1_KREquH2CJW-j2M7hI", + "etag": "6Y8I2A--7b6m0J_2RtVP246uxMc", "id": { "kind": "youtube#video", - "videoId": "sbr8NkJSLPU" + "videoId": "fUj1k47pDg8" }, "snippet": { - "publishedAt": "2024-02-27T07:00:31Z", + "publishedAt": "2024-08-13T07:14:40Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "3 core practices of Kanban Defining and visualizing a workflow", - "description": "Unlock the Power of Kanban: Streamline Your Workflow for Maximum Efficiency Introduction to Kanban Kanban is more than ...", + "title": "PPDV course overview with Dr Joanna Plaskonka", + "description": "Thinking of doing the PPDV course? Here's a quick overview of the course from Dr Joanna Plaskonka.", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/sbr8NkJSLPU/default.jpg", + "url": "https://i.ytimg.com/vi/fUj1k47pDg8/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/sbr8NkJSLPU/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/fUj1k47pDg8/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/sbr8NkJSLPU/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/fUj1k47pDg8/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-02-27T07:00:31Z" + "publishTime": "2024-08-13T07:14:40Z" } }, { @@ -1325,40 +1291,6 @@ "publishTime": "2022-10-18T16:13:02Z" } }, - { - "kind": "youtube#searchResult", - "etag": "4IS6CcXEqIcT5XnvD8aL7t4YRZE", - "id": { - "kind": "youtube#video", - "videoId": "V44iUwv0Jcg" - }, - "snippet": { - "publishedAt": "2024-08-14T07:04:17Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Continuous Improvement with Kanban", - "description": "Continuous Improvement with #kanban. Visit https://www.nkdagility.com #agile #scrum #kaizen #kanban #agileframework.", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/V44iUwv0Jcg/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/V44iUwv0Jcg/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/V44iUwv0Jcg/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-08-14T07:04:17Z" - } - }, { "kind": "youtube#searchResult", "etag": "BakI8APAhJiAHEb52y2x0oRvWEk", @@ -1395,70 +1327,70 @@ }, { "kind": "youtube#searchResult", - "etag": "QEtREyrLn5B6YNjp1aDCO_AyT0k", + "etag": "4IS6CcXEqIcT5XnvD8aL7t4YRZE", "id": { "kind": "youtube#video", - "videoId": "3-LDBJppxvo" + "videoId": "V44iUwv0Jcg" }, "snippet": { - "publishedAt": "2024-06-26T06:45:00Z", + "publishedAt": "2024-08-14T07:04:17Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "6 things you didn't know about Agile Product Management but really should Part 1", - "description": "Visit https://www.nkdagility.com #agile #agileproductmanagement #agileproductdevelopment #agileprojectmanagement.", + "title": "Continuous Improvement with Kanban", + "description": "Continuous Improvement with #kanban. Visit https://www.nkdagility.com #agile #scrum #kaizen #kanban #agileframework.", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/3-LDBJppxvo/default.jpg", + "url": "https://i.ytimg.com/vi/V44iUwv0Jcg/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/3-LDBJppxvo/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/V44iUwv0Jcg/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/3-LDBJppxvo/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/V44iUwv0Jcg/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-06-26T06:45:00Z" + "publishTime": "2024-08-14T07:04:17Z" } }, { "kind": "youtube#searchResult", - "etag": "50wq_yFAMht3LtK8fohZIOrKfVw", + "etag": "QEtREyrLn5B6YNjp1aDCO_AyT0k", "id": { "kind": "youtube#video", - "videoId": "0fz91w-_6vE" + "videoId": "3-LDBJppxvo" }, "snippet": { - "publishedAt": "2023-05-02T07:00:00Z", + "publishedAt": "2024-06-26T06:45:00Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What is your primary role in a DevOps consulting gig?", - "description": "As a #devops #consultant, Martin Hinshelwood has worked in multiple geographies, across multiple industry applications, and ...", + "title": "6 things you didn't know about Agile Product Management but really should Part 1", + "description": "Visit https://www.nkdagility.com #agile #agileproductmanagement #agileproductdevelopment #agileprojectmanagement.", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/0fz91w-_6vE/default.jpg", + "url": "https://i.ytimg.com/vi/3-LDBJppxvo/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/0fz91w-_6vE/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/3-LDBJppxvo/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/0fz91w-_6vE/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/3-LDBJppxvo/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-05-02T07:00:00Z" + "publishTime": "2024-06-26T06:45:00Z" } }, { @@ -2175,6 +2107,40 @@ "publishTime": "2023-11-29T11:00:03Z" } }, + { + "kind": "youtube#searchResult", + "etag": "50wq_yFAMht3LtK8fohZIOrKfVw", + "id": { + "kind": "youtube#video", + "videoId": "0fz91w-_6vE" + }, + "snippet": { + "publishedAt": "2023-05-02T07:00:00Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "What is your primary role in a DevOps consulting gig?", + "description": "As a #devops #consultant, Martin Hinshelwood has worked in multiple geographies, across multiple industry applications, and ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/0fz91w-_6vE/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/0fz91w-_6vE/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/0fz91w-_6vE/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-05-02T07:00:00Z" + } + }, { "kind": "youtube#searchResult", "etag": "lNemAO_RO2nAOu0ciPAxUJESzqs", @@ -2551,70 +2517,70 @@ }, { "kind": "youtube#searchResult", - "etag": "Zr70obUqH-EOQ9Ywxjl2fX-uDqs", + "etag": "8kCrt1ZIYgPOJrULmaq3RffyjQM", "id": { "kind": "youtube#video", - "videoId": "YGyx4i3-4ss" + "videoId": "aWYoJtSgTDo" }, "snippet": { - "publishedAt": "2024-08-09T05:39:57Z", + "publishedAt": "2023-08-10T13:30:01Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "PPDV Course Overview", - "description": "Visit https://www.nkdagility.com to find out more about the PPDV course from Scrum.org #agile #scrum #productowner ...", + "title": "The importance of knowing the territory.", + "description": "agileleadership is about sensing opportunities, responding to threats, and making valuable decisions even when you don't have ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/YGyx4i3-4ss/default.jpg", + "url": "https://i.ytimg.com/vi/aWYoJtSgTDo/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/YGyx4i3-4ss/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/aWYoJtSgTDo/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/YGyx4i3-4ss/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/aWYoJtSgTDo/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-08-09T05:39:57Z" + "publishTime": "2023-08-10T13:30:01Z" } }, { "kind": "youtube#searchResult", - "etag": "8kCrt1ZIYgPOJrULmaq3RffyjQM", + "etag": "Zr70obUqH-EOQ9Ywxjl2fX-uDqs", "id": { "kind": "youtube#video", - "videoId": "aWYoJtSgTDo" + "videoId": "YGyx4i3-4ss" }, "snippet": { - "publishedAt": "2023-08-10T13:30:01Z", + "publishedAt": "2024-08-09T05:39:57Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "The importance of knowing the territory.", - "description": "agileleadership is about sensing opportunities, responding to threats, and making valuable decisions even when you don't have ...", + "title": "PPDV Course Overview", + "description": "Visit https://www.nkdagility.com to find out more about the PPDV course from Scrum.org #agile #scrum #productowner ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/aWYoJtSgTDo/default.jpg", + "url": "https://i.ytimg.com/vi/YGyx4i3-4ss/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/aWYoJtSgTDo/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/YGyx4i3-4ss/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/aWYoJtSgTDo/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/YGyx4i3-4ss/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-08-10T13:30:01Z" + "publishTime": "2024-08-09T05:39:57Z" } }, { @@ -2719,6 +2685,40 @@ "publishTime": "2023-08-29T07:00:14Z" } }, + { + "kind": "youtube#searchResult", + "etag": "wMVNXKjIcCOzk9DEbJMasv39ozs", + "id": { + "kind": "youtube#video", + "videoId": "WEYf9jWG9wk" + }, + "snippet": { + "publishedAt": "2024-11-20T08:02:36Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Unleash your team's full potential", + "description": "Quality Code: Achieving Engineering Excellence with NKD Agility. Visit https://www.nkdagility.com #agile ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/WEYf9jWG9wk/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/WEYf9jWG9wk/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/WEYf9jWG9wk/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-11-20T08:02:36Z" + } + }, { "kind": "youtube#searchResult", "etag": "tBafclrWZl9RdpJ1WtI9LuUJ1Zc", @@ -2993,36 +2993,36 @@ }, { "kind": "youtube#searchResult", - "etag": "_1QbeyGeIohxMRh21WHFg4n2F0s", + "etag": "M_t-3CWqYqKwo_qlOA0IRMvFu2E", "id": { "kind": "youtube#video", - "videoId": "wHYYfvAGFow" + "videoId": "CWxkBJJduCE" }, "snippet": { - "publishedAt": "2023-02-22T07:00:28Z", + "publishedAt": "2024-11-19T16:55:41Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What is Taylorism and how did it influence project management?", - "description": "The Influence of Taylorism on Project Management* Explore the roots of Taylorism and its profound impact on traditional project ...", + "title": "Redefining test driven development", + "description": "Redefining test driven development. Excerpt from our \"Quality Code: Achieving Engineering Excellence with NKD Agility\" series.", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/wHYYfvAGFow/default.jpg", + "url": "https://i.ytimg.com/vi/CWxkBJJduCE/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/wHYYfvAGFow/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/CWxkBJJduCE/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/wHYYfvAGFow/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/CWxkBJJduCE/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-02-22T07:00:28Z" + "publishTime": "2024-11-19T16:55:41Z" } }, { @@ -3061,172 +3061,172 @@ }, { "kind": "youtube#searchResult", - "etag": "6HZ_XVqHOMTA2tD25tHoVPtzNJI", + "etag": "_1QbeyGeIohxMRh21WHFg4n2F0s", "id": { "kind": "youtube#video", - "videoId": "5qtS7DYGi5Q" + "videoId": "wHYYfvAGFow" }, "snippet": { - "publishedAt": "2024-01-23T11:00:05Z", + "publishedAt": "2023-02-22T07:00:28Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "#shorts 5 reasons why you need EBM in your environment. Part 2", - "description": "shorts #shortsvideo #shortvideo 5 reasons why you need #ebm in your environment. Part 2. Decoding Organizational Value with ...", + "title": "What is Taylorism and how did it influence project management?", + "description": "The Influence of Taylorism on Project Management* Explore the roots of Taylorism and its profound impact on traditional project ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/5qtS7DYGi5Q/default.jpg", + "url": "https://i.ytimg.com/vi/wHYYfvAGFow/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/5qtS7DYGi5Q/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/wHYYfvAGFow/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/5qtS7DYGi5Q/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/wHYYfvAGFow/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-01-23T11:00:05Z" + "publishTime": "2023-02-22T07:00:28Z" } }, { "kind": "youtube#searchResult", - "etag": "8Y1lnkVXqU807L1JttLAV88qG2U", + "etag": "6HZ_XVqHOMTA2tD25tHoVPtzNJI", "id": { "kind": "youtube#video", - "videoId": "EOs5kZv_7tg" + "videoId": "5qtS7DYGi5Q" }, "snippet": { - "publishedAt": "2023-07-26T04:03:17Z", + "publishedAt": "2024-01-23T11:00:05Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why is Johanna a great teacher for the Professional Agile Leadership Essentials course?", - "description": "The Professional Agile Leadership - Essentials course is an introduction to #agileleadership and a powerful workshop for helping ...", + "title": "#shorts 5 reasons why you need EBM in your environment. Part 2", + "description": "shorts #shortsvideo #shortvideo 5 reasons why you need #ebm in your environment. Part 2. Decoding Organizational Value with ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/EOs5kZv_7tg/default.jpg", + "url": "https://i.ytimg.com/vi/5qtS7DYGi5Q/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/EOs5kZv_7tg/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/5qtS7DYGi5Q/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/EOs5kZv_7tg/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/5qtS7DYGi5Q/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-07-26T04:03:17Z" + "publishTime": "2024-01-23T11:00:05Z" } }, { "kind": "youtube#searchResult", - "etag": "Iiu-tw3_bTfPaviBPwrDFjE6Svw", + "etag": "f82DLeoK-zdcUNXZhnufZ-mEgzw", "id": { "kind": "youtube#video", - "videoId": "1M2_AVqoRbs" + "videoId": "2tlzlsgovy0" }, "snippet": { - "publishedAt": "2024-11-20T16:53:31Z", + "publishedAt": "2024-07-03T06:45:00Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Technical debt costs you more than you think", - "description": "Technical debt costs you more than you think. Visit https://www.nkdagility.com #agile #agileproductdevelopment ...", + "title": "6 things you didn't know about Agile Product Management but really should Part 2", + "description": "Visit https://www.nkdagility.com Is your team truly Agile? Do your team members clearly understand the product vision and how ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/default.jpg", + "url": "https://i.ytimg.com/vi/2tlzlsgovy0/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/2tlzlsgovy0/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/2tlzlsgovy0/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-11-20T16:53:31Z" + "publishTime": "2024-07-03T06:45:00Z" } }, { "kind": "youtube#searchResult", - "etag": "f82DLeoK-zdcUNXZhnufZ-mEgzw", + "etag": "UFkV4bwhAB1tGGsCzMdxueY3pLM", "id": { "kind": "youtube#video", - "videoId": "2tlzlsgovy0" + "videoId": "ypVIcgSEvMc" }, "snippet": { - "publishedAt": "2024-07-03T06:45:00Z", + "publishedAt": "2023-06-09T11:00:46Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "6 things you didn't know about Agile Product Management but really should Part 2", - "description": "Visit https://www.nkdagility.com Is your team truly Agile? Do your team members clearly understand the product vision and how ...", + "title": "30% discount for existing alumni overview", + "description": "shorts #shortsvideo #shortvideo NKD Agility offer all alumni a 30% discount on their continued learning and certification journey.", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/2tlzlsgovy0/default.jpg", + "url": "https://i.ytimg.com/vi/ypVIcgSEvMc/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/2tlzlsgovy0/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/ypVIcgSEvMc/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/2tlzlsgovy0/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/ypVIcgSEvMc/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-07-03T06:45:00Z" + "publishTime": "2023-06-09T11:00:46Z" } }, { "kind": "youtube#searchResult", - "etag": "UFkV4bwhAB1tGGsCzMdxueY3pLM", + "etag": "qM0e6vpiOdfWbZbwceVG336vyqs", "id": { "kind": "youtube#video", - "videoId": "ypVIcgSEvMc" + "videoId": "whKX9Mn1eb8" }, "snippet": { - "publishedAt": "2023-06-09T11:00:46Z", + "publishedAt": "2024-11-22T14:04:14Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "30% discount for existing alumni overview", - "description": "shorts #shortsvideo #shortvideo NKD Agility offer all alumni a 30% discount on their continued learning and certification journey.", + "title": "The superpower of quality engineering", + "description": "The superpower of quality visit https://www.nkdagility.com #agile #agileproductdevelopment #agileproductmanagement ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/ypVIcgSEvMc/default.jpg", + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/ypVIcgSEvMc/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/ypVIcgSEvMc/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/whKX9Mn1eb8/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-06-09T11:00:46Z" + "publishTime": "2024-11-22T14:04:14Z" } }, { @@ -3365,6 +3365,74 @@ "publishTime": "2024-01-25T07:00:13Z" } }, + { + "kind": "youtube#searchResult", + "etag": "k--oStob8TIDSJBZeYSc_Kom0u8", + "id": { + "kind": "youtube#video", + "videoId": "1M2_AVqoRbs" + }, + "snippet": { + "publishedAt": "2024-11-20T16:53:31Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Technical debt costs you more than you think", + "description": "Technical debt costs you more than you think. Visit https://www.nkdagility.com #agile #agileproductdevelopment ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-11-20T16:53:31Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "k--oStob8TIDSJBZeYSc_Kom0u8", + "id": { + "kind": "youtube#video", + "videoId": "1M2_AVqoRbs" + }, + "snippet": { + "publishedAt": "2024-11-20T16:53:31Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Technical debt costs you more than you think", + "description": "Technical debt costs you more than you think. Visit https://www.nkdagility.com #agile #agileproductdevelopment ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-11-20T16:53:31Z" + } + }, { "kind": "youtube#searchResult", "etag": "6uo6PyvxxirfkLzjZoCrjPcLSh0", @@ -3399,6 +3467,40 @@ "publishTime": "2023-04-13T14:25:06Z" } }, + { + "kind": "youtube#searchResult", + "etag": "UQud58G7p7HiHaDd-grJwBKcHVw", + "id": { + "kind": "youtube#video", + "videoId": "7SdBfGWCG8Q" + }, + "snippet": { + "publishedAt": "2024-02-06T07:00:03Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "5 ways an immersive learning experience will make you a better practitioner. Part 2", + "description": "5 ways an #immersivelearning experience will make you a better #scrum practitioner. Second way.", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/7SdBfGWCG8Q/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/7SdBfGWCG8Q/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/7SdBfGWCG8Q/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-02-06T07:00:03Z" + } + }, { "kind": "youtube#searchResult", "etag": "-D4WPYqD6q5-MTbgAmL0jH66ptU", @@ -3433,6 +3535,40 @@ "publishTime": "2023-11-27T11:00:56Z" } }, + { + "kind": "youtube#searchResult", + "etag": "sHtRjYEV_MCO4KMAhrqAAQ7d8No", + "id": { + "kind": "youtube#video", + "videoId": "faoWuCkKC0U" + }, + "snippet": { + "publishedAt": "2023-07-11T14:00:32Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Reasons to do a PSPO A Course in 60 seconds", + "description": "shorts #shortsvideo #shortvideo If you are thinking of doing the Advanced Professional Scrum Product Owner (PSPO-A) course, ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/faoWuCkKC0U/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/faoWuCkKC0U/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/faoWuCkKC0U/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-07-11T14:00:32Z" + } + }, { "kind": "youtube#searchResult", "etag": "WB3NwqoS2xYjj0H65Bf8V6b_HMA", @@ -3603,40 +3739,6 @@ "publishTime": "2023-10-13T11:00:40Z" } }, - { - "kind": "youtube#searchResult", - "etag": "sHtRjYEV_MCO4KMAhrqAAQ7d8No", - "id": { - "kind": "youtube#video", - "videoId": "faoWuCkKC0U" - }, - "snippet": { - "publishedAt": "2023-07-11T14:00:32Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Reasons to do a PSPO A Course in 60 seconds", - "description": "shorts #shortsvideo #shortvideo If you are thinking of doing the Advanced Professional Scrum Product Owner (PSPO-A) course, ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/faoWuCkKC0U/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/faoWuCkKC0U/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/faoWuCkKC0U/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-07-11T14:00:32Z" - } - }, { "kind": "youtube#searchResult", "etag": "Xz1iB7GiXyENvEdqIUUi8VeQV6Q", @@ -3877,58 +3979,92 @@ }, { "kind": "youtube#searchResult", - "etag": "Zz-xMbLnxVf-2IcB3Xfr0om_qJU", + "etag": "5DSwPSJQ1_KREquH2CJW-j2M7hI", "id": { "kind": "youtube#video", - "videoId": "TZKvdhDPMjg" + "videoId": "sbr8NkJSLPU" }, "snippet": { - "publishedAt": "2023-05-05T07:00:10Z", + "publishedAt": "2024-02-27T07:00:31Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "One thing a client can do ensure a successful agile engagement.", - "description": "shorts #agilecoach or #agileconsultant will receive a lot of training and mentoring on how to create a successful #agilecoaching ...", + "title": "3 core practices of Kanban Defining and visualizing a workflow", + "description": "Unlock the Power of Kanban: Streamline Your Workflow for Maximum Efficiency Introduction to Kanban Kanban is more than ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/TZKvdhDPMjg/default.jpg", + "url": "https://i.ytimg.com/vi/sbr8NkJSLPU/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/TZKvdhDPMjg/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/sbr8NkJSLPU/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/TZKvdhDPMjg/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/sbr8NkJSLPU/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-05-05T07:00:10Z" + "publishTime": "2024-02-27T07:00:31Z" } }, { "kind": "youtube#searchResult", - "etag": "dnEcyoqlYYFfqb2BZgwT7Agjssw", + "etag": "Zz-xMbLnxVf-2IcB3Xfr0om_qJU", "id": { "kind": "youtube#video", - "videoId": "pazZ3mW5VHM" + "videoId": "TZKvdhDPMjg" }, "snippet": { - "publishedAt": "2023-07-06T14:33:51Z", + "publishedAt": "2023-05-05T07:00:10Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Most influential people in Agile: Simon Reindl", - "description": "shorts #shortsvideo #shortvideo Martin Hinshelwood continues the series of exploring some of the most influential people in ...", + "title": "One thing a client can do ensure a successful agile engagement.", + "description": "shorts #agilecoach or #agileconsultant will receive a lot of training and mentoring on how to create a successful #agilecoaching ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/pazZ3mW5VHM/default.jpg", + "url": "https://i.ytimg.com/vi/TZKvdhDPMjg/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/pazZ3mW5VHM/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/TZKvdhDPMjg/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/TZKvdhDPMjg/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-05-05T07:00:10Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "dnEcyoqlYYFfqb2BZgwT7Agjssw", + "id": { + "kind": "youtube#video", + "videoId": "pazZ3mW5VHM" + }, + "snippet": { + "publishedAt": "2023-07-06T14:33:51Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Most influential people in Agile: Simon Reindl", + "description": "shorts #shortsvideo #shortvideo Martin Hinshelwood continues the series of exploring some of the most influential people in ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/pazZ3mW5VHM/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/pazZ3mW5VHM/mqdefault.jpg", "width": 320, "height": 180 }, @@ -4419,6 +4555,40 @@ "publishTime": "2023-06-14T14:30:02Z" } }, + { + "kind": "youtube#searchResult", + "etag": "ps8K3c9n0EgFkwH2NDQhYlB-bdU", + "id": { + "kind": "youtube#video", + "videoId": "agPLmBdXdbk" + }, + "snippet": { + "publishedAt": "2023-05-01T09:30:00Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Must have trait in an agile consultant", + "description": "shorts #agileconsulting requires you to help clients solve complex problems in very rapid iterations. Ultimately, you're being ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/agPLmBdXdbk/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/agPLmBdXdbk/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/agPLmBdXdbk/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-05-01T09:30:00Z" + } + }, { "kind": "youtube#searchResult", "etag": "HKNWObZJxItrbDUfD56_6gUtZLk", @@ -4455,36 +4625,36 @@ }, { "kind": "youtube#searchResult", - "etag": "ps8K3c9n0EgFkwH2NDQhYlB-bdU", + "etag": "BjLXmG_RIQiAPZiM4QQtRJNiFs8", "id": { "kind": "youtube#video", - "videoId": "agPLmBdXdbk" + "videoId": "Jkw4sMe6h-w" }, "snippet": { - "publishedAt": "2023-05-01T09:30:00Z", + "publishedAt": "2023-08-09T13:43:27Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Must have trait in an agile consultant", - "description": "shorts #agileconsulting requires you to help clients solve complex problems in very rapid iterations. Ultimately, you're being ...", + "title": "How is Agile Leadership different to traditional management?", + "description": "Joanna Plaskonka talks about the difference between #agileleadership and traditional line #management. In a simple or ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/agPLmBdXdbk/default.jpg", + "url": "https://i.ytimg.com/vi/Jkw4sMe6h-w/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/agPLmBdXdbk/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/Jkw4sMe6h-w/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/agPLmBdXdbk/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/Jkw4sMe6h-w/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-05-01T09:30:00Z" + "publishTime": "2023-08-09T13:43:27Z" } }, { @@ -4659,70 +4829,70 @@ }, { "kind": "youtube#searchResult", - "etag": "Iiu-tw3_bTfPaviBPwrDFjE6Svw", + "etag": "Ng10k8lp2nyAeZpb-z__1OHW3io", "id": { "kind": "youtube#video", - "videoId": "1M2_AVqoRbs" + "videoId": "OMlLiLkCmMY" }, "snippet": { - "publishedAt": "2024-11-20T16:53:31Z", + "publishedAt": "2023-12-04T11:00:23Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Technical debt costs you more than you think", - "description": "Technical debt costs you more than you think. Visit https://www.nkdagility.com #agile #agileproductdevelopment ...", + "title": "#shorts 7 Virtues of Agile. Chastity", + "description": "shorts #shortsvideo #shortvideo 7 virtues of #agile, presented by Martin Hinshelwood. First virtue, #chastity.", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/default.jpg", + "url": "https://i.ytimg.com/vi/OMlLiLkCmMY/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/OMlLiLkCmMY/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/1M2_AVqoRbs/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/OMlLiLkCmMY/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-11-20T16:53:31Z" + "publishTime": "2023-12-04T11:00:23Z" } }, { "kind": "youtube#searchResult", - "etag": "Ng10k8lp2nyAeZpb-z__1OHW3io", + "etag": "mEf6r4zGHT4qhyT4TAEi1VSm5Yk", "id": { "kind": "youtube#video", - "videoId": "OMlLiLkCmMY" + "videoId": "66NuAjzWreY" }, "snippet": { - "publishedAt": "2023-12-04T11:00:23Z", + "publishedAt": "2024-09-11T13:36:29Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "#shorts 7 Virtues of Agile. Chastity", - "description": "shorts #shortsvideo #shortvideo 7 virtues of #agile, presented by Martin Hinshelwood. First virtue, #chastity.", + "title": "Introduction to Evidence Based Management", + "description": "Understanding Evidence-Based Management (EBM) --- Introduction to Evidence-Based Management (EBM) - What is EBM?", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/OMlLiLkCmMY/default.jpg", + "url": "https://i.ytimg.com/vi/66NuAjzWreY/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/OMlLiLkCmMY/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/66NuAjzWreY/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/OMlLiLkCmMY/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/66NuAjzWreY/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-12-04T11:00:23Z" + "publishTime": "2024-09-11T13:36:29Z" } }, { @@ -4929,40 +5099,6 @@ "publishTime": "2023-11-01T09:42:43Z" } }, - { - "kind": "youtube#searchResult", - "etag": "eC4IFfxuMl_rZUWIsHJ7OcDWUzI", - "id": { - "kind": "youtube#video", - "videoId": "_WplvWtaxtQ" - }, - "snippet": { - "publishedAt": "2023-11-21T07:00:21Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why do you think the PSM immersive learning experience is a great fit for aspiring scrum masters", - "description": "You've found #scrum and it feels like home. Now, you want to grow your professional #scrummaster capabilities and thrive in the ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/_WplvWtaxtQ/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/_WplvWtaxtQ/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/_WplvWtaxtQ/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-11-21T07:00:21Z" - } - }, { "kind": "youtube#searchResult", "etag": "dDpmXZHMputyzmPGwfk6H__pmMI", @@ -5201,40 +5337,6 @@ "publishTime": "2023-05-30T07:00:18Z" } }, - { - "kind": "youtube#searchResult", - "etag": "nmVZ0JKg6Wqh38MlvqM_Zr7rm0I", - "id": { - "kind": "youtube#video", - "videoId": "CWxkBJJduCE" - }, - "snippet": { - "publishedAt": "2024-11-19T16:55:41Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Redefining test driven development", - "description": "Redefining test driven development. Excerpt from our \"Quality Code: Achieving Engineering Excellence with NKD Agility\" series.", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/CWxkBJJduCE/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/CWxkBJJduCE/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/CWxkBJJduCE/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-11-19T16:55:41Z" - } - }, { "kind": "youtube#searchResult", "etag": "EAmfnPBF5ang4ggiHnUSeksRpnc", @@ -5303,40 +5405,6 @@ "publishTime": "2023-06-28T07:00:21Z" } }, - { - "kind": "youtube#searchResult", - "etag": "mEf6r4zGHT4qhyT4TAEi1VSm5Yk", - "id": { - "kind": "youtube#video", - "videoId": "66NuAjzWreY" - }, - "snippet": { - "publishedAt": "2024-09-11T13:36:29Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Introduction to Evidence Based Management", - "description": "Understanding Evidence-Based Management (EBM) --- Introduction to Evidence-Based Management (EBM) - What is EBM?", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/66NuAjzWreY/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/66NuAjzWreY/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/66NuAjzWreY/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-09-11T13:36:29Z" - } - }, { "kind": "youtube#searchResult", "etag": "nsnejnXzkfayrsfGaD-sWk7TGzs", @@ -5509,70 +5577,70 @@ }, { "kind": "youtube#searchResult", - "etag": "GX8y_HrlQqeNCdUFMB2dclkmfCA", + "etag": "xfUVGOInSeGtkz_wEuGr2yeLYHM", "id": { "kind": "youtube#video", - "videoId": "LiKE3zHuOuY" + "videoId": "mqgffRQi6bY" }, "snippet": { - "publishedAt": "2023-06-15T14:45:02Z", + "publishedAt": "2023-10-04T11:24:58Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "How much of an impact can scrum have in a DevOps environment", - "description": "shorts #shortsvideo #shortviddeo #DevOps is critical to the smooth, seamless delivery of software to customers. In this short video, ...", + "title": "Why is lego a shit idea for a scrum trainer? Part 2", + "description": "shorts #shortsvideo #shortvideo Martin Hinshelwood explains why Scrum.Org don't like #lego as part of #scrumtraining, and why ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/LiKE3zHuOuY/default.jpg", + "url": "https://i.ytimg.com/vi/mqgffRQi6bY/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/LiKE3zHuOuY/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/mqgffRQi6bY/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/LiKE3zHuOuY/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/mqgffRQi6bY/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-06-15T14:45:02Z" + "publishTime": "2023-10-04T11:24:58Z" } }, { "kind": "youtube#searchResult", - "etag": "xfUVGOInSeGtkz_wEuGr2yeLYHM", + "etag": "GX8y_HrlQqeNCdUFMB2dclkmfCA", "id": { "kind": "youtube#video", - "videoId": "mqgffRQi6bY" + "videoId": "LiKE3zHuOuY" }, "snippet": { - "publishedAt": "2023-10-04T11:24:58Z", + "publishedAt": "2023-06-15T14:45:02Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why is lego a shit idea for a scrum trainer? Part 2", - "description": "shorts #shortsvideo #shortvideo Martin Hinshelwood explains why Scrum.Org don't like #lego as part of #scrumtraining, and why ...", + "title": "How much of an impact can scrum have in a DevOps environment", + "description": "shorts #shortsvideo #shortviddeo #DevOps is critical to the smooth, seamless delivery of software to customers. In this short video, ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/mqgffRQi6bY/default.jpg", + "url": "https://i.ytimg.com/vi/LiKE3zHuOuY/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/mqgffRQi6bY/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/LiKE3zHuOuY/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/mqgffRQi6bY/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/LiKE3zHuOuY/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-10-04T11:24:58Z" + "publishTime": "2023-06-15T14:45:02Z" } }, { @@ -5611,36 +5679,36 @@ }, { "kind": "youtube#searchResult", - "etag": "L9p56W12MmBjA0YtUpDvgVgaGIs", + "etag": "o2s9BrTzaOU8qKmRzSEwR1QgOdc", "id": { "kind": "youtube#video", - "videoId": "-pW6YDYEO20" + "videoId": "FFrTLuRhyVo" }, "snippet": { - "publishedAt": "2023-04-26T07:00:00Z", + "publishedAt": "2024-11-21T17:01:52Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "worst trait in unskilled scrum masters?", - "description": "youtubeshorts presents the single worst trait in an unskilled #scrummaster? Martin Hinshelwood explains why this is a no-go zone ...", + "title": "Missed opportunities, the hidden cost of technical debt", + "description": "Missed opportunities, the hidden cost of #technicaldebt visit https://www.nkdagility.com #agile #productdevelopment ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/-pW6YDYEO20/default.jpg", + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/-pW6YDYEO20/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/-pW6YDYEO20/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/FFrTLuRhyVo/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-04-26T07:00:00Z" + "publishTime": "2024-11-21T17:01:52Z" } }, { @@ -5677,6 +5745,40 @@ "publishTime": "2023-05-18T07:00:16Z" } }, + { + "kind": "youtube#searchResult", + "etag": "L9p56W12MmBjA0YtUpDvgVgaGIs", + "id": { + "kind": "youtube#video", + "videoId": "-pW6YDYEO20" + }, + "snippet": { + "publishedAt": "2023-04-26T07:00:00Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "worst trait in unskilled scrum masters?", + "description": "youtubeshorts presents the single worst trait in an unskilled #scrummaster? Martin Hinshelwood explains why this is a no-go zone ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/-pW6YDYEO20/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/-pW6YDYEO20/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/-pW6YDYEO20/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-04-26T07:00:00Z" + } + }, { "kind": "youtube#searchResult", "etag": "cBF2XXelUn2KowbSfesn4HV7fbM", @@ -6187,40 +6289,6 @@ "publishTime": "2023-04-27T07:00:31Z" } }, - { - "kind": "youtube#searchResult", - "etag": "Bs_WFkWiCKe3Ppb4Uv45AGU9fcE", - "id": { - "kind": "youtube#video", - "videoId": "XCwb2-h8pZg" - }, - "snippet": { - "publishedAt": "2013-08-17T07:27:19Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Kanban with Team Foundation Service", - "description": "", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/XCwb2-h8pZg/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/XCwb2-h8pZg/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/XCwb2-h8pZg/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2013-08-17T07:27:19Z" - } - }, { "kind": "youtube#searchResult", "etag": "vTJPmIB0oK4xbbuweUVEUHCNmD8", @@ -6257,70 +6325,70 @@ }, { "kind": "youtube#searchResult", - "etag": "un78um9oR45zB9OZg8yUlcqutOo", + "etag": "Hak6EYBaackamD1juHc26BT1j6I", "id": { "kind": "youtube#video", - "videoId": "wawnGp8b2q8" + "videoId": "2Sal3OneFfo" }, "snippet": { - "publishedAt": "2023-07-13T12:20:07Z", + "publishedAt": "2024-09-03T09:57:36Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "If you could distil the PAL e immersive learning experience into 3 major benefits, what are they?", - "description": "The new #immersivelearning experience from Scrum.Org is perfectly suited to the Professional Agile Leadership Essentials ...", + "title": "Azure DevOps Migration services. Part 1", + "description": "DevOps Migration Services from NKD Agility. #azure #azuredevops #devopsmigration #devopsconsulting #devopsconsultant ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/wawnGp8b2q8/default.jpg", + "url": "https://i.ytimg.com/vi/2Sal3OneFfo/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/wawnGp8b2q8/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/2Sal3OneFfo/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/wawnGp8b2q8/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/2Sal3OneFfo/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-07-13T12:20:07Z" + "publishTime": "2024-09-03T09:57:36Z" } }, { "kind": "youtube#searchResult", - "etag": "Hak6EYBaackamD1juHc26BT1j6I", + "etag": "un78um9oR45zB9OZg8yUlcqutOo", "id": { "kind": "youtube#video", - "videoId": "2Sal3OneFfo" + "videoId": "wawnGp8b2q8" }, "snippet": { - "publishedAt": "2024-09-03T09:57:36Z", + "publishedAt": "2023-07-13T12:20:07Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Azure DevOps Migration services. Part 1", - "description": "DevOps Migration Services from NKD Agility. #azure #azuredevops #devopsmigration #devopsconsulting #devopsconsultant ...", + "title": "If you could distil the PAL e immersive learning experience into 3 major benefits, what are they?", + "description": "The new #immersivelearning experience from Scrum.Org is perfectly suited to the Professional Agile Leadership Essentials ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/2Sal3OneFfo/default.jpg", + "url": "https://i.ytimg.com/vi/wawnGp8b2q8/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/2Sal3OneFfo/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/wawnGp8b2q8/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/2Sal3OneFfo/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/wawnGp8b2q8/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-09-03T09:57:36Z" + "publishTime": "2023-07-13T12:20:07Z" } }, { @@ -6699,36 +6767,70 @@ }, { "kind": "youtube#searchResult", - "etag": "bl7MGHu5QDOac099hVsIgtyHzq4", + "etag": "8Y1lnkVXqU807L1JttLAV88qG2U", + "id": { + "kind": "youtube#video", + "videoId": "EOs5kZv_7tg" + }, + "snippet": { + "publishedAt": "2023-07-26T04:03:17Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Why is Johanna a great teacher for the Professional Agile Leadership Essentials course?", + "description": "The Professional Agile Leadership - Essentials course is an introduction to #agileleadership and a powerful workshop for helping ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/EOs5kZv_7tg/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/EOs5kZv_7tg/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/EOs5kZv_7tg/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-07-26T04:03:17Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "3E8X0sCJsaCQTsLd71hYNdouzPA", "id": { "kind": "youtube#video", - "videoId": "Nw0bXiOqu0Q" + "videoId": "DWL0PLkFazs" }, "snippet": { - "publishedAt": "2023-02-09T07:15:02Z", + "publishedAt": "2017-07-28T12:40:03Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why are recessions a great time for organizations to evaluate the opportunity of agile?", - "description": "Traditional organizations tend to focus on #projectmanagement because it is well-known, comfortable, and for many people, just ...", + "title": "Why did Healthgrades choose Martin Hinshelwood", + "description": "Its important to get the right fit for your organisation. Is your trainer right for you? Do they create the right level of infectious ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/Nw0bXiOqu0Q/default.jpg", + "url": "https://i.ytimg.com/vi/DWL0PLkFazs/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/Nw0bXiOqu0Q/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/DWL0PLkFazs/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/Nw0bXiOqu0Q/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/DWL0PLkFazs/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-02-09T07:15:02Z" + "publishTime": "2017-07-28T12:40:03Z" } }, { @@ -6801,104 +6903,104 @@ }, { "kind": "youtube#searchResult", - "etag": "xhW1ClLuVMxo-a8V2mDIcEaTtNg", + "etag": "SQQkwMqu15Eucmx7PuU-RmSwE8c", "id": { "kind": "youtube#video", - "videoId": "TzhiftXOJdw" + "videoId": "XZ1Swam_Cx0" }, "snippet": { - "publishedAt": "2023-07-06T07:08:30Z", + "publishedAt": "2023-10-30T07:00:13Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What more needs to happen before traditional organizations consider Agile", - "description": "In simple or complicated environments, where there are little to no variables that you don't know upfront, traditional ...", + "title": "Antichrist! 7 Harbingers agile apocalypse. But shorter!", + "description": "Beware the Agile-pocalypse: Decoding the Agile \"Antichrist\" 🌪️ Full video: https://youtu.be/56hWAHhbrvs Dive into the crux of ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/TzhiftXOJdw/default.jpg", + "url": "https://i.ytimg.com/vi/XZ1Swam_Cx0/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/TzhiftXOJdw/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/XZ1Swam_Cx0/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/TzhiftXOJdw/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/XZ1Swam_Cx0/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-07-06T07:08:30Z" + "publishTime": "2023-10-30T07:00:13Z" } }, { "kind": "youtube#searchResult", - "etag": "rCq8_gfIazY-xjP5VIsRIP5kN_Q", + "etag": "xhW1ClLuVMxo-a8V2mDIcEaTtNg", "id": { "kind": "youtube#video", - "videoId": "ZnXrAarX1Wg" + "videoId": "TzhiftXOJdw" }, "snippet": { - "publishedAt": "2023-05-10T09:30:14Z", + "publishedAt": "2023-07-06T07:08:30Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "No go zone for agile consultants.", - "description": "shorts The transition from #agilepractitioner to #agileconsultant is often based on someone mastering the practitioner work, and ...", + "title": "What more needs to happen before traditional organizations consider Agile", + "description": "In simple or complicated environments, where there are little to no variables that you don't know upfront, traditional ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/ZnXrAarX1Wg/default.jpg", + "url": "https://i.ytimg.com/vi/TzhiftXOJdw/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/ZnXrAarX1Wg/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/TzhiftXOJdw/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/ZnXrAarX1Wg/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/TzhiftXOJdw/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-05-10T09:30:14Z" + "publishTime": "2023-07-06T07:08:30Z" } }, { "kind": "youtube#searchResult", - "etag": "TitxROGPPn2cjJ_tA9D05Qe91kQ", + "etag": "rCq8_gfIazY-xjP5VIsRIP5kN_Q", "id": { "kind": "youtube#video", - "videoId": "sb9RsFslUfU" + "videoId": "ZnXrAarX1Wg" }, "snippet": { - "publishedAt": "2023-05-04T07:00:19Z", + "publishedAt": "2023-05-10T09:30:14Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "How did you know you were ready to transition from DevOps practitioner to DevOps consultant?", - "description": "Over millennia, the path to mastery has always involved empowering others to achieve the same outcomes or results you have ...", + "title": "No go zone for agile consultants.", + "description": "shorts The transition from #agilepractitioner to #agileconsultant is often based on someone mastering the practitioner work, and ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/sb9RsFslUfU/default.jpg", + "url": "https://i.ytimg.com/vi/ZnXrAarX1Wg/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/sb9RsFslUfU/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/ZnXrAarX1Wg/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/sb9RsFslUfU/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/ZnXrAarX1Wg/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-05-04T07:00:19Z" + "publishTime": "2023-05-10T09:30:14Z" } }, { @@ -7209,70 +7311,70 @@ }, { "kind": "youtube#searchResult", - "etag": "zwqGX2QsrWBYBEWj15pCnef3Kno", + "etag": "cVAPtzsXDxMpmtgUfRj6j37mye0", "id": { "kind": "youtube#video", - "videoId": "bvCU_N6iY_4" + "videoId": "Srwxg7Etnr0" }, "snippet": { - "publishedAt": "2022-07-27T18:45:14Z", + "publishedAt": "2023-06-02T07:00:09Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Business Agility Raw! - Ask me Anything Lean Coffee with Martin Hinshelwood [mktng]", - "description": "Join me monthy one the 4th Wednesday for Business Agility Raw. Come and discuss what matters most to you today with our lean ...", + "title": "How does a Scrum Team Decide on a Sprint Goal?", + "description": "Unlocking Scrum: Crafting Your Sprint Goals for Maximum Impact** Dive into the heart of Scrum with our expert breakdown on ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/bvCU_N6iY_4/default.jpg", + "url": "https://i.ytimg.com/vi/Srwxg7Etnr0/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/bvCU_N6iY_4/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/Srwxg7Etnr0/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/bvCU_N6iY_4/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/Srwxg7Etnr0/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2022-07-27T18:45:14Z" + "publishTime": "2023-06-02T07:00:09Z" } }, { "kind": "youtube#searchResult", - "etag": "cVAPtzsXDxMpmtgUfRj6j37mye0", + "etag": "zwqGX2QsrWBYBEWj15pCnef3Kno", "id": { "kind": "youtube#video", - "videoId": "Srwxg7Etnr0" + "videoId": "bvCU_N6iY_4" }, "snippet": { - "publishedAt": "2023-06-02T07:00:09Z", + "publishedAt": "2022-07-27T18:45:14Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "How does a Scrum Team Decide on a Sprint Goal?", - "description": "Unlocking Scrum: Crafting Your Sprint Goals for Maximum Impact** Dive into the heart of Scrum with our expert breakdown on ...", + "title": "Business Agility Raw! - Ask me Anything Lean Coffee with Martin Hinshelwood [mktng]", + "description": "Join me monthy one the 4th Wednesday for Business Agility Raw. Come and discuss what matters most to you today with our lean ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/Srwxg7Etnr0/default.jpg", + "url": "https://i.ytimg.com/vi/bvCU_N6iY_4/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/Srwxg7Etnr0/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/bvCU_N6iY_4/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/Srwxg7Etnr0/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/bvCU_N6iY_4/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-06-02T07:00:09Z" + "publishTime": "2022-07-27T18:45:14Z" } }, { @@ -7651,70 +7753,70 @@ }, { "kind": "youtube#searchResult", - "etag": "BlL__P3QnaB1t7IWecWbOATQY5g", + "etag": "zEuMiJfdBUqU4Nb42Odb7nn4jeo", "id": { "kind": "youtube#video", - "videoId": "qWHCBUwpOZk" + "videoId": "BR9vIRsQfGI" }, "snippet": { - "publishedAt": "2024-02-28T07:00:19Z", + "publishedAt": "2023-12-13T11:00:08Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "3 core practices of Kanban Improving a workflow", - "description": "Maximizing Flow with Kanban: A Strategy for Success Unlock the Potential of Your Workflow In the realm of Kanban, improving ...", + "title": "#shorts 5 things you would teach a #productowner apprentice. Part 1", + "description": "shorts #shortvideo #shortsvideo Martin Hinshelwood walks us through the top 5 things he would teach an apprenticeship ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/qWHCBUwpOZk/default.jpg", + "url": "https://i.ytimg.com/vi/BR9vIRsQfGI/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/qWHCBUwpOZk/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/BR9vIRsQfGI/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/qWHCBUwpOZk/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/BR9vIRsQfGI/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-02-28T07:00:19Z" + "publishTime": "2023-12-13T11:00:08Z" } }, { "kind": "youtube#searchResult", - "etag": "zEuMiJfdBUqU4Nb42Odb7nn4jeo", + "etag": "BlL__P3QnaB1t7IWecWbOATQY5g", "id": { "kind": "youtube#video", - "videoId": "BR9vIRsQfGI" + "videoId": "qWHCBUwpOZk" }, "snippet": { - "publishedAt": "2023-12-13T11:00:08Z", + "publishedAt": "2024-02-28T07:00:19Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "#shorts 5 things you would teach a #productowner apprentice. Part 1", - "description": "shorts #shortvideo #shortsvideo Martin Hinshelwood walks us through the top 5 things he would teach an apprenticeship ...", + "title": "3 core practices of Kanban Improving a workflow", + "description": "Maximizing Flow with Kanban: A Strategy for Success Unlock the Potential of Your Workflow In the realm of Kanban, improving ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/BR9vIRsQfGI/default.jpg", + "url": "https://i.ytimg.com/vi/qWHCBUwpOZk/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/BR9vIRsQfGI/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/qWHCBUwpOZk/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/BR9vIRsQfGI/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/qWHCBUwpOZk/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-12-13T11:00:08Z" + "publishTime": "2024-02-28T07:00:19Z" } }, { @@ -7753,19 +7855,53 @@ }, { "kind": "youtube#searchResult", - "etag": "cawKZJCfIkqC_5N9-xmhBfLg-wU", + "etag": "ZcQnQG7un0msFBZ-jhpooOOmuzU", "id": { "kind": "youtube#video", - "videoId": "Juonckoiyx0" + "videoId": "fcOSewXez3I" }, "snippet": { - "publishedAt": "2023-09-04T07:00:13Z", + "publishedAt": "2023-07-05T14:49:20Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What should be top of mind when a scrum team prepare for a sprint review", - "description": "Maximizing Stakeholder Engagement in Scrum Sprint Reviews* - Discover the key to effective stakeholder engagement in Scrum ...", + "title": "How is technology like AI changing the world we work in?", + "description": "Over the past 150 years, there have been significant periods of rapid change as a new technology is adopted and deployed into ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/Juonckoiyx0/default.jpg", + "url": "https://i.ytimg.com/vi/fcOSewXez3I/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/fcOSewXez3I/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/fcOSewXez3I/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-07-05T14:49:20Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "cawKZJCfIkqC_5N9-xmhBfLg-wU", + "id": { + "kind": "youtube#video", + "videoId": "Juonckoiyx0" + }, + "snippet": { + "publishedAt": "2023-09-04T07:00:13Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "What should be top of mind when a scrum team prepare for a sprint review", + "description": "Maximizing Stakeholder Engagement in Scrum Sprint Reviews* - Discover the key to effective stakeholder engagement in Scrum ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/Juonckoiyx0/default.jpg", "width": 120, "height": 90 }, @@ -7991,36 +8127,36 @@ }, { "kind": "youtube#searchResult", - "etag": "5rYXfp_M55cGwxJG8WdaiD5UA9U", + "etag": "QAM9ZNb9BluR4ukJT7vkF4GruMw", "id": { "kind": "youtube#video", - "videoId": "sT44RQgin5A" + "videoId": "rEqytRyOHGI" }, "snippet": { - "publishedAt": "2024-09-13T07:00:34Z", + "publishedAt": "2024-01-04T11:09:15Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "The Four Key Value Areas of EBM", - "description": "The Four Key Value Areas of Evidence-Based Management Introduction: Evidence-Based Management Overview When I talk ...", + "title": "5 kinds of Agile bandits: Special Sprints", + "description": "Unraveling the Myth of Special Sprints in Agile: Insights and Impact - Discover the truth about special sprints in Agile and their ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/sT44RQgin5A/default.jpg", + "url": "https://i.ytimg.com/vi/rEqytRyOHGI/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/sT44RQgin5A/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/rEqytRyOHGI/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/sT44RQgin5A/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/rEqytRyOHGI/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-09-13T07:00:34Z" + "publishTime": "2024-01-04T11:09:15Z" } }, { @@ -8057,40 +8193,6 @@ "publishTime": "2023-12-14T11:00:22Z" } }, - { - "kind": "youtube#searchResult", - "etag": "QAM9ZNb9BluR4ukJT7vkF4GruMw", - "id": { - "kind": "youtube#video", - "videoId": "rEqytRyOHGI" - }, - "snippet": { - "publishedAt": "2024-01-04T11:09:15Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "5 kinds of Agile bandits: Special Sprints", - "description": "Unraveling the Myth of Special Sprints in Agile: Insights and Impact - Discover the truth about special sprints in Agile and their ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/rEqytRyOHGI/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/rEqytRyOHGI/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/rEqytRyOHGI/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-01-04T11:09:15Z" - } - }, { "kind": "youtube#searchResult", "etag": "Z5nzwNpBksGEy3J21QYMqanXt0s", @@ -8125,40 +8227,6 @@ "publishTime": "2023-11-23T11:00:01Z" } }, - { - "kind": "youtube#searchResult", - "etag": "BjLXmG_RIQiAPZiM4QQtRJNiFs8", - "id": { - "kind": "youtube#video", - "videoId": "Jkw4sMe6h-w" - }, - "snippet": { - "publishedAt": "2023-08-09T13:43:27Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "How is Agile Leadership different to traditional management?", - "description": "Joanna Plaskonka talks about the difference between #agileleadership and traditional line #management. In a simple or ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/Jkw4sMe6h-w/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/Jkw4sMe6h-w/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/Jkw4sMe6h-w/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-08-09T13:43:27Z" - } - }, { "kind": "youtube#searchResult", "etag": "QyNFnYXxfvpHXEXS9mfQnr10PHE", @@ -8261,6 +8329,40 @@ "publishTime": "2023-02-27T07:00:01Z" } }, + { + "kind": "youtube#searchResult", + "etag": "5rYXfp_M55cGwxJG8WdaiD5UA9U", + "id": { + "kind": "youtube#video", + "videoId": "sT44RQgin5A" + }, + "snippet": { + "publishedAt": "2024-09-13T07:00:34Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "The Four Key Value Areas of EBM", + "description": "The Four Key Value Areas of Evidence-Based Management Introduction: Evidence-Based Management Overview When I talk ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/sT44RQgin5A/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/sT44RQgin5A/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/sT44RQgin5A/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-09-13T07:00:34Z" + } + }, { "kind": "youtube#searchResult", "etag": "vNzYdI_oZiw6pb-k81pKPphdehc", @@ -8397,40 +8499,6 @@ "publishTime": "2023-11-24T07:00:00Z" } }, - { - "kind": "youtube#searchResult", - "etag": "3E8X0sCJsaCQTsLd71hYNdouzPA", - "id": { - "kind": "youtube#video", - "videoId": "DWL0PLkFazs" - }, - "snippet": { - "publishedAt": "2017-07-28T12:40:03Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why did Healthgrades choose Martin Hinshelwood", - "description": "Its important to get the right fit for your organisation. Is your trainer right for you? Do they create the right level of infectious ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/DWL0PLkFazs/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/DWL0PLkFazs/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/DWL0PLkFazs/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2017-07-28T12:40:03Z" - } - }, { "kind": "youtube#searchResult", "etag": "cZsm7ahGlLU8gAzmO1OcHkEwqVQ", @@ -8499,40 +8567,6 @@ "publishTime": "2023-08-16T07:00:03Z" } }, - { - "kind": "youtube#searchResult", - "etag": "6JJDSlWF6yOnHGP5Uak84fF3VN4", - "id": { - "kind": "youtube#video", - "videoId": "6S9LGyxU2cQ" - }, - "snippet": { - "publishedAt": "2023-08-16T07:00:03Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Is the APS immersive learning experience the equivalent of having a hands on scrum coach?", - "description": "Sometimes, you just need to learn how to do #scrum properly. It isn't so much about learning the mechanics of #scrum, it's instead ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/6S9LGyxU2cQ/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/6S9LGyxU2cQ/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/6S9LGyxU2cQ/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-08-16T07:00:03Z" - } - }, { "kind": "youtube#searchResult", "etag": "sF0DcxcdPUiwCBFQ3-8TpZ0axoE", @@ -8669,6 +8703,40 @@ "publishTime": "2023-05-23T14:00:19Z" } }, + { + "kind": "youtube#searchResult", + "etag": "m8aGLgK-cnwuFuhg00mrfb4irsw", + "id": { + "kind": "youtube#video", + "videoId": "1AO6FFBlE4Y" + }, + "snippet": { + "publishedAt": "2024-11-19T09:58:28Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "The high cost of poor quality code.", + "description": "Why Poor Quality Code Costs More Than You Think | Martin Hinshelwood Hi, I'm Martin Hinshelwood from [NKD ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/1AO6FFBlE4Y/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/1AO6FFBlE4Y/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/1AO6FFBlE4Y/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-11-19T09:58:28Z" + } + }, { "kind": "youtube#searchResult", "etag": "u1FUFz2_WhO73qP9Ueo3pLQ0hyU", @@ -9351,44 +9419,10 @@ }, { "kind": "youtube#searchResult", - "etag": "t66tMZCc-jAvKeqapT3d-ZJ6yic", + "etag": "roJGrUYU5k8mQQYnj6y3EKuD1PI", "id": { "kind": "youtube#video", - "videoId": "WEYf9jWG9wk" - }, - "snippet": { - "publishedAt": "2024-11-20T08:02:36Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Unleash your team's full potential", - "description": "Quality Code: Achieving Engineering Excellence with NKD Agility. Visit https://www.nkdagility.com #agile ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/WEYf9jWG9wk/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/WEYf9jWG9wk/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/WEYf9jWG9wk/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-11-20T08:02:36Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "roJGrUYU5k8mQQYnj6y3EKuD1PI", - "id": { - "kind": "youtube#video", - "videoId": "grJFd9-R5Pw" + "videoId": "grJFd9-R5Pw" }, "snippet": { "publishedAt": "2023-01-18T08:57:16Z", @@ -10131,6 +10165,40 @@ "publishTime": "2024-09-20T11:04:29Z" } }, + { + "kind": "youtube#searchResult", + "etag": "EY1yLVOjv_1FSTUdbZp1QjV1ShA", + "id": { + "kind": "youtube#video", + "videoId": "2IuL2Qvvbfk" + }, + "snippet": { + "publishedAt": "2023-06-13T11:32:18Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Biggest contribution from a product owner that you know of?", + "description": "scrum purposefully created the #productowner role to ensure that the focus shifted from #projectmanagement to ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/2IuL2Qvvbfk/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/2IuL2Qvvbfk/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/2IuL2Qvvbfk/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-06-13T11:32:18Z" + } + }, { "kind": "youtube#searchResult", "etag": "ZTKnXvAUaK4Y5Lf5mAo-DVphc74", @@ -10199,6 +10267,40 @@ "publishTime": "2023-10-20T11:00:13Z" } }, + { + "kind": "youtube#searchResult", + "etag": "v9Z0KmtBKL8nhwBK2HYoo1BYvLA", + "id": { + "kind": "youtube#video", + "videoId": "uvZ9TGbMtnU" + }, + "snippet": { + "publishedAt": "2024-01-04T12:14:45Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "#shorts 5 kinds of Agile bandits. 1st Kind", + "description": "shorts #shortvideo #shortsvideo Martin Hinshelwood walks us through the 5 kinds of #agile bandits. This video features ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/uvZ9TGbMtnU/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/uvZ9TGbMtnU/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/uvZ9TGbMtnU/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-01-04T12:14:45Z" + } + }, { "kind": "youtube#searchResult", "etag": "3hzGFLqh_H-Avgbu4f7e6a3iMQ4", @@ -11255,70 +11357,70 @@ }, { "kind": "youtube#searchResult", - "etag": "_wycV-a18UWehmiJqipX2i_mCzE", + "etag": "hrT7-vI-783g4FuaeMK_GarZBqw", "id": { "kind": "youtube#video", - "videoId": "5RJpAeKMRzs" + "videoId": "PIoyu9N2QaM" }, "snippet": { - "publishedAt": "2024-04-14T12:17:16Z", + "publishedAt": "2023-04-06T07:00:08Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "The 7 Deadly Sins of Agile!", - "description": "This video unravels the complex challenges of implementing an agile philosophy within organizations. Through a deep dive into ...", + "title": "What is the difference between a newbie scrum master and a seasoned, experienced scrum master?", + "description": "Mastering Scrum: Insights from a Seasoned Agile Coach* Dive into the world of Scrum with experienced Agile Coach Martin, ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/5RJpAeKMRzs/default.jpg", + "url": "https://i.ytimg.com/vi/PIoyu9N2QaM/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/5RJpAeKMRzs/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/PIoyu9N2QaM/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/5RJpAeKMRzs/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/PIoyu9N2QaM/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-04-14T12:17:16Z" + "publishTime": "2023-04-06T07:00:08Z" } }, { "kind": "youtube#searchResult", - "etag": "hrT7-vI-783g4FuaeMK_GarZBqw", + "etag": "_wycV-a18UWehmiJqipX2i_mCzE", "id": { "kind": "youtube#video", - "videoId": "PIoyu9N2QaM" + "videoId": "5RJpAeKMRzs" }, "snippet": { - "publishedAt": "2023-04-06T07:00:08Z", + "publishedAt": "2024-04-14T12:17:16Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What is the difference between a newbie scrum master and a seasoned, experienced scrum master?", - "description": "Mastering Scrum: Insights from a Seasoned Agile Coach* Dive into the world of Scrum with experienced Agile Coach Martin, ...", + "title": "The 7 Deadly Sins of Agile!", + "description": "This video unravels the complex challenges of implementing an agile philosophy within organizations. Through a deep dive into ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/PIoyu9N2QaM/default.jpg", + "url": "https://i.ytimg.com/vi/5RJpAeKMRzs/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/PIoyu9N2QaM/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/5RJpAeKMRzs/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/PIoyu9N2QaM/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/5RJpAeKMRzs/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-04-06T07:00:08Z" + "publishTime": "2024-04-14T12:17:16Z" } }, { @@ -11899,40 +12001,6 @@ "publishTime": "2023-04-17T07:00:17Z" } }, - { - "kind": "youtube#searchResult", - "etag": "1nfWvkCpeJzuMdXaBDrVuL7wIQg", - "id": { - "kind": "youtube#video", - "videoId": "vI_qQ7-1z2E" - }, - "snippet": { - "publishedAt": "2023-04-17T07:00:17Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Is a PSM II certification validation of your skills or does it develop your skill and capability?", - "description": "Congratulations, you've been a #scrummaster for 6 months or more and you are now looking to level up in your career.", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/vI_qQ7-1z2E/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/vI_qQ7-1z2E/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/vI_qQ7-1z2E/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-04-17T07:00:17Z" - } - }, { "kind": "youtube#searchResult", "etag": "fkFwosj9OMrWyMuApYZm6HkglGE", @@ -12479,7 +12547,7 @@ }, { "kind": "youtube#searchResult", - "etag": "8JMVowpkyRB1p47a0Zm-x-4atr8", + "etag": "FWxaYPSCPpguYHIpQlvI_6hQQT0", "id": { "kind": "youtube#video", "videoId": "EMJyUOy2gP4" @@ -12987,6 +13055,40 @@ "publishTime": "2024-10-25T07:02:17Z" } }, + { + "kind": "youtube#searchResult", + "etag": "HDFhRbvmVFPf87pqsw1ATkebfMA", + "id": { + "kind": "youtube#video", + "videoId": "s4h2K62V_d0" + }, + "snippet": { + "publishedAt": "2024-11-20T07:00:26Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Shifting Left. Quality from the Start", + "description": "Shift Left: Building Quality In From the Start | Martin Hinshelwood Hi, I'm Martin Hinshelwood from [NKD ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/s4h2K62V_d0/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/s4h2K62V_d0/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/s4h2K62V_d0/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-11-20T07:00:26Z" + } + }, { "kind": "youtube#searchResult", "etag": "-ZTAyaSyA3MNJyYhdSN-BBg8GUE", @@ -13157,40 +13259,6 @@ "publishTime": "2023-10-11T12:00:36Z" } }, - { - "kind": "youtube#searchResult", - "etag": "U09L3abMZqcHmmq-uaZ7KX8tcBI", - "id": { - "kind": "youtube#video", - "videoId": "vHNwcfbNOR8" - }, - "snippet": { - "publishedAt": "2023-03-17T07:00:21Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What is your feeling on creating agile apprenticeships?", - "description": "scrum is notorious for being relatively straightforward to understand, yet incredibly difficult to master. Any #productdevelopment ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/vHNwcfbNOR8/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/vHNwcfbNOR8/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/vHNwcfbNOR8/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-03-17T07:00:21Z" - } - }, { "kind": "youtube#searchResult", "etag": "2N7yfUELA8_eaxyK1vKUze4ETdM", @@ -13395,40 +13463,6 @@ "publishTime": "2023-10-02T07:00:33Z" } }, - { - "kind": "youtube#searchResult", - "etag": "_-NHerTNyoGzjtYWzZLNkQDpzD4", - "id": { - "kind": "youtube#video", - "videoId": "1AO6FFBlE4Y" - }, - "snippet": { - "publishedAt": "2024-11-19T09:58:28Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "The high cost of poor quality code.", - "description": "Why Poor Quality Code Costs More Than You Think | Martin Hinshelwood Hi, I'm Martin Hinshelwood from [NKD ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/1AO6FFBlE4Y/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/1AO6FFBlE4Y/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/1AO6FFBlE4Y/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-11-19T09:58:28Z" - } - }, { "kind": "youtube#searchResult", "etag": "ceUQoOQlzKHRcOPy7GRNOSA6tDU", @@ -13499,206 +13533,342 @@ }, { "kind": "youtube#searchResult", - "etag": "j2BfEwCoD5OiXsHeQKCOZZEPPf8", + "etag": "gvtMTb2kpwOmftzyoTRjTncB-_s", "id": { "kind": "youtube#video", - "videoId": "s4h2K62V_d0" + "videoId": "a6aw7xmS2oc" }, "snippet": { - "publishedAt": "2024-11-20T07:00:26Z", + "publishedAt": "2023-09-20T07:00:00Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Shifting Left. Quality from the Start", - "description": "Shift Left: Building Quality In From the Start | Martin Hinshelwood Hi, I'm Martin Hinshelwood from [NKD ...", + "title": "What are the top 3 things a product owner needs to bear in mind when adopting an entrepreneur stance", + "description": "The Entrepreneurial Stance: Key Considerations for Product Owners! Dive into the entrepreneurial mindset of product owners!", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/s4h2K62V_d0/default.jpg", + "url": "https://i.ytimg.com/vi/a6aw7xmS2oc/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/s4h2K62V_d0/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/a6aw7xmS2oc/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/s4h2K62V_d0/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/a6aw7xmS2oc/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-11-20T07:00:26Z" + "publishTime": "2023-09-20T07:00:00Z" } }, { "kind": "youtube#searchResult", - "etag": "gvtMTb2kpwOmftzyoTRjTncB-_s", + "etag": "qRVTNEFWVn_x6WOVtV3m87SHZT8", "id": { "kind": "youtube#video", - "videoId": "a6aw7xmS2oc" + "videoId": "2_CowcUpzAA" }, "snippet": { - "publishedAt": "2023-09-20T07:00:00Z", + "publishedAt": "2023-11-27T06:46:47Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What are the top 3 things a product owner needs to bear in mind when adopting an entrepreneur stance", - "description": "The Entrepreneurial Stance: Key Considerations for Product Owners! Dive into the entrepreneurial mindset of product owners!", + "title": "Why is training such a critical element in a product owner journey", + "description": "You'll find that its fairly common for a #projectmanager or #manager to be assigned the #productowner role in a #scrum ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/a6aw7xmS2oc/default.jpg", + "url": "https://i.ytimg.com/vi/2_CowcUpzAA/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/a6aw7xmS2oc/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/2_CowcUpzAA/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/a6aw7xmS2oc/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/2_CowcUpzAA/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-09-20T07:00:00Z" + "publishTime": "2023-11-27T06:46:47Z" } }, { "kind": "youtube#searchResult", - "etag": "qRVTNEFWVn_x6WOVtV3m87SHZT8", + "etag": "CmLljk7K8oOH55d-pWcyeDr7oMo", "id": { "kind": "youtube#video", - "videoId": "2_CowcUpzAA" + "videoId": "KAqCTOIB4hk" }, "snippet": { - "publishedAt": "2023-11-27T06:46:47Z", + "publishedAt": "2024-08-12T10:03:43Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why is training such a critical element in a product owner journey", - "description": "You'll find that its fairly common for a #projectmanager or #manager to be assigned the #productowner role in a #scrum ...", + "title": "How does the incremental learning and outcome based assignments specifically help teams?", + "description": "In this video, I delve into the innovative immersive learning program that's designed to bring real change to your product ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/2_CowcUpzAA/default.jpg", + "url": "https://i.ytimg.com/vi/KAqCTOIB4hk/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/2_CowcUpzAA/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/KAqCTOIB4hk/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/2_CowcUpzAA/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/KAqCTOIB4hk/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-11-27T06:46:47Z" + "publishTime": "2024-08-12T10:03:43Z" } }, { "kind": "youtube#searchResult", - "etag": "17rdnj5vHst5lXUWXHYQJsioVCw", + "etag": "_GeY5vVlUseK6c38zzXMSNPiizg", "id": { "kind": "youtube#video", - "videoId": "ARhXjid0zSE" + "videoId": "1-W64WdSbF4" }, "snippet": { - "publishedAt": "2023-11-08T06:45:00Z", + "publishedAt": "2021-09-18T13:32:34Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "7 signs of the #agile apocalypse. Famine", - "description": "shorts #shortsvideo #shortvideo #agile loves abundance. An abundance of ideas, creativity, and collaboration. That said ...", + "title": "Free Workshop 4 Introduction to Sprint Review! [Audio-Fixed]", + "description": "[Audio fixed] This is a Free Live Virtual 90m \"How to run a Sprint Review\" from Martin Hinshelwood. The purpose of the Sprint ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/ARhXjid0zSE/default.jpg", + "url": "https://i.ytimg.com/vi/1-W64WdSbF4/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/ARhXjid0zSE/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/1-W64WdSbF4/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/ARhXjid0zSE/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/1-W64WdSbF4/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-11-08T06:45:00Z" + "publishTime": "2021-09-18T13:32:34Z" } }, { "kind": "youtube#searchResult", - "etag": "ciisMxPpQ_ySSrK8ozG2PmaX7KY", + "etag": "dfo-6yQhZPtYv-WY-6CWDjl3j-o", "id": { "kind": "youtube#video", - "videoId": "VOUmfpB-d88" + "videoId": "UeGdC6GRyq4" }, "snippet": { - "publishedAt": "2024-05-08T06:45:02Z", + "publishedAt": "2023-06-14T07:00:18Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "NKD Agility Training Approach", - "description": "There's an old saying, 'those who can't teach', and we are deeply aware of why that is. That said, it isn't mastery unless the ...", + "title": "Under employed? Pay 30% up front and the balance when you are employed.", + "description": "Sometimes, you are in that in between space. You just haven't managed to secure that dream job just yet and you're either ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/VOUmfpB-d88/default.jpg", + "url": "https://i.ytimg.com/vi/UeGdC6GRyq4/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/VOUmfpB-d88/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/UeGdC6GRyq4/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/VOUmfpB-d88/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/UeGdC6GRyq4/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-05-08T06:45:02Z" + "publishTime": "2023-06-14T07:00:18Z" } }, { "kind": "youtube#searchResult", - "etag": "j2BfEwCoD5OiXsHeQKCOZZEPPf8", + "etag": "e7GeDFkpnpGXO-tizCKJIx6SpW8", "id": { "kind": "youtube#video", - "videoId": "s4h2K62V_d0" + "videoId": "Dl5v4j1f-WE" }, "snippet": { - "publishedAt": "2024-11-20T07:00:26Z", + "publishedAt": "2023-04-19T07:00:06Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Shifting Left. Quality from the Start", - "description": "Shift Left: Building Quality In From the Start | Martin Hinshelwood Hi, I'm Martin Hinshelwood from [NKD ...", + "title": "How would you like to be remembered as a Professional Scrum Trainer?", + "description": "scrumorg was created by the cocreator of #scrum, Ken Schwaber, with the intention of providing aspiring #scrummasters, ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/s4h2K62V_d0/default.jpg", + "url": "https://i.ytimg.com/vi/Dl5v4j1f-WE/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/s4h2K62V_d0/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/Dl5v4j1f-WE/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/s4h2K62V_d0/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/Dl5v4j1f-WE/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-11-20T07:00:26Z" + "publishTime": "2023-04-19T07:00:06Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "aEGZFd_esGYxJkMWjzme0srN_VA", + "id": { + "kind": "youtube#video", + "videoId": "ItvOiaC32Hs" + }, + "snippet": { + "publishedAt": "2023-11-09T10:45:01Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "7 signs of the #agile apocalypse. Chaos", + "description": "shorts #shortsvideo #shortvideo #agile thrives on complexity and uncertainty. A place where you don't know the answer but you ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/ItvOiaC32Hs/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/ItvOiaC32Hs/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/ItvOiaC32Hs/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-11-09T10:45:01Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "7uLYxkHgpqVhFkVqJE8vNA2uHRQ", + "id": { + "kind": "youtube#video", + "videoId": "B12n_52H48U" + }, + "snippet": { + "publishedAt": "2023-09-13T13:59:54Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Raise, Ante Up, or Fold: The Ultimate Decision in Business", + "description": "Pivoting, Staying the Course, or Walking Away: A Guide for Product Owners* - In this insightful exploration, we delve into the ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/B12n_52H48U/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/B12n_52H48U/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/B12n_52H48U/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-09-13T13:59:54Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "17rdnj5vHst5lXUWXHYQJsioVCw", + "id": { + "kind": "youtube#video", + "videoId": "ARhXjid0zSE" + }, + "snippet": { + "publishedAt": "2023-11-08T06:45:00Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "7 signs of the #agile apocalypse. Famine", + "description": "shorts #shortsvideo #shortvideo #agile loves abundance. An abundance of ideas, creativity, and collaboration. That said ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/ARhXjid0zSE/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/ARhXjid0zSE/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/ARhXjid0zSE/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2023-11-08T06:45:00Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "ciisMxPpQ_ySSrK8ozG2PmaX7KY", + "id": { + "kind": "youtube#video", + "videoId": "VOUmfpB-d88" + }, + "snippet": { + "publishedAt": "2024-05-08T06:45:02Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "NKD Agility Training Approach", + "description": "There's an old saying, 'those who can't teach', and we are deeply aware of why that is. That said, it isn't mastery unless the ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/VOUmfpB-d88/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/VOUmfpB-d88/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/VOUmfpB-d88/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-05-08T06:45:02Z" } }, { @@ -14179,7 +14349,7 @@ }, { "kind": "youtube#searchResult", - "etag": "tBn4xv4DOiH41uvoWsJxiVgwDZM", + "etag": "2q13Hx1E8iPrLODh_CbegporN_g", "id": { "kind": "youtube#video", "videoId": "Qzw3FSl6hy4" @@ -14279,6 +14449,40 @@ "publishTime": "2023-12-12T07:00:02Z" } }, + { + "kind": "youtube#searchResult", + "etag": "AT3-DsghrosuzFIrJPK3xyc5N-o", + "id": { + "kind": "youtube#video", + "videoId": "DSIXtHZTirA" + }, + "snippet": { + "publishedAt": "2024-11-23T07:00:12Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Performance Engineering for Optimal User Experience", + "description": "Performance Engineering and Testing in Production: A Modern Approach | Martin Hinshelwood Hi, I'm Martin Hinshelwood ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-11-23T07:00:12Z" + } + }, { "kind": "youtube#searchResult", "etag": "u-uP-Fd_ei0Ltd0w8hhpSfoPnAg", @@ -14313,6 +14517,40 @@ "publishTime": "2024-08-20T08:04:38Z" } }, + { + "kind": "youtube#searchResult", + "etag": "WucGkcZHry1RF4n_cWGGs38xLXE", + "id": { + "kind": "youtube#video", + "videoId": "3jYFD-6_kZk" + }, + "snippet": { + "publishedAt": "2024-07-31T12:00:49Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "What can go wrong and what can go right with a migration via Azure DevOps", + "description": "Navigating Azure DevOps Migration Challenges #### Audience: - **IT Managers and DevOps Teams**: Essential viewing for ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/3jYFD-6_kZk/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/3jYFD-6_kZk/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/3jYFD-6_kZk/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-07-31T12:00:49Z" + } + }, { "kind": "youtube#searchResult", "etag": "axWAw26reSmA_80QtT3kq3O0EeA", @@ -14451,44 +14689,78 @@ }, { "kind": "youtube#searchResult", - "etag": "lIl1rp90AbPRc8ysRm87oLW1NwE", + "etag": "KkUAqVYmqGEcA5kiSw5WXhzNRX4", "id": { "kind": "youtube#video", - "videoId": "S0h_7ayLpsE" + "videoId": "IZ-FlBbGaSY" }, "snippet": { - "publishedAt": "2024-10-02T13:17:24Z", + "publishedAt": "2024-11-22T07:00:08Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Evidence-based Management: Gathering and Analyzing Data", - "description": "How to Use Evidence-Based Management to Build Better Products In this video, I dive deep into how to use evidence-based ...", + "title": "Continuous Integration and Continuous Delivery CI CD for Quality", + "description": "CI/CD Done Right: Engineering Excellence with Continuous Integration and Delivery | Martin Hinshelwood Hi, I'm Martin ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/S0h_7ayLpsE/default.jpg", + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/S0h_7ayLpsE/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/S0h_7ayLpsE/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-10-02T13:17:24Z" + "publishTime": "2024-11-22T07:00:08Z" } }, { "kind": "youtube#searchResult", - "etag": "HNuvfHaGm30jytZhz7FXsWI4PQU", + "etag": "lIl1rp90AbPRc8ysRm87oLW1NwE", "id": { "kind": "youtube#video", - "videoId": "XF-yQmPdUME" + "videoId": "S0h_7ayLpsE" + }, + "snippet": { + "publishedAt": "2024-10-02T13:17:24Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Evidence-based Management: Gathering and Analyzing Data", + "description": "How to Use Evidence-Based Management to Build Better Products In this video, I dive deep into how to use evidence-based ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/S0h_7ayLpsE/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/S0h_7ayLpsE/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/S0h_7ayLpsE/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-10-02T13:17:24Z" + } + }, + { + "kind": "youtube#searchResult", + "etag": "HNuvfHaGm30jytZhz7FXsWI4PQU", + "id": { + "kind": "youtube#video", + "videoId": "XF-yQmPdUME" }, "snippet": { "publishedAt": "2024-08-01T06:45:01Z", @@ -14553,70 +14825,70 @@ }, { "kind": "youtube#searchResult", - "etag": "Y09wa9DIQ7R0HcZFkiyIqwGgjYY", + "etag": "SkiEOIla7vFt3goG3XULxRG1Vgw", "id": { "kind": "youtube#video", - "videoId": "FZeT8O5Ucwg" + "videoId": "isU2kPc5HFw" }, "snippet": { - "publishedAt": "2020-03-18T13:56:05Z", + "publishedAt": "2024-07-31T09:21:03Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "The Tyranny of Taylorism & how to detect Agile BS!", - "description": "Something very close to my heart is helping folks understand the origin of the practices that are commonly used in management ...", + "title": "Talk us through your experience with Azure DevOps", + "description": "Audience: - Software Engineers: Gain insights into Azure DevOps from someone who started as a software engineer and evolved ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/FZeT8O5Ucwg/default.jpg", + "url": "https://i.ytimg.com/vi/isU2kPc5HFw/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/FZeT8O5Ucwg/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/isU2kPc5HFw/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/FZeT8O5Ucwg/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/isU2kPc5HFw/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2020-03-18T13:56:05Z" + "publishTime": "2024-07-31T09:21:03Z" } }, { "kind": "youtube#searchResult", - "etag": "SkiEOIla7vFt3goG3XULxRG1Vgw", + "etag": "Y09wa9DIQ7R0HcZFkiyIqwGgjYY", "id": { "kind": "youtube#video", - "videoId": "isU2kPc5HFw" + "videoId": "FZeT8O5Ucwg" }, "snippet": { - "publishedAt": "2024-07-31T09:21:03Z", + "publishedAt": "2020-03-18T13:56:05Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Talk us through your experience with Azure DevOps", - "description": "Audience: - Software Engineers: Gain insights into Azure DevOps from someone who started as a software engineer and evolved ...", + "title": "The Tyranny of Taylorism & how to detect Agile BS!", + "description": "Something very close to my heart is helping folks understand the origin of the practices that are commonly used in management ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/isU2kPc5HFw/default.jpg", + "url": "https://i.ytimg.com/vi/FZeT8O5Ucwg/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/isU2kPc5HFw/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/FZeT8O5Ucwg/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/isU2kPc5HFw/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/FZeT8O5Ucwg/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-07-31T09:21:03Z" + "publishTime": "2020-03-18T13:56:05Z" } }, { @@ -14653,6 +14925,40 @@ "publishTime": "2023-05-08T07:00:15Z" } }, + { + "kind": "youtube#searchResult", + "etag": "U6IIIirgUEZN2quU5N6xl79PoUQ", + "id": { + "kind": "youtube#video", + "videoId": "jcs-2G99Rrw" + }, + "snippet": { + "publishedAt": "2024-04-09T08:00:20Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Top 4 Rookie Mistakes in Azure DevOps", + "description": "Unpack 4 critical Azure DevOps pitfalls that make the Azure DevOps product teams' toes curl! 🛠️✨ Enjoy this video? Like and ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-04-09T08:00:20Z" + } + }, { "kind": "youtube#searchResult", "etag": "vvAFf6yFjx7ZHmAiX64NxbGKHqE", @@ -14891,40 +15197,6 @@ "publishTime": "2023-08-21T07:00:01Z" } }, - { - "kind": "youtube#searchResult", - "etag": "WucGkcZHry1RF4n_cWGGs38xLXE", - "id": { - "kind": "youtube#video", - "videoId": "3jYFD-6_kZk" - }, - "snippet": { - "publishedAt": "2024-07-31T12:00:49Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What can go wrong and what can go right with a migration via Azure DevOps", - "description": "Navigating Azure DevOps Migration Challenges #### Audience: - **IT Managers and DevOps Teams**: Essential viewing for ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/3jYFD-6_kZk/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/3jYFD-6_kZk/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/3jYFD-6_kZk/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-07-31T12:00:49Z" - } - }, { "kind": "youtube#searchResult", "etag": "Mu77KKN_26LtQvq2tUPS4dUL7lE", @@ -15061,40 +15333,6 @@ "publishTime": "2023-05-25T14:00:20Z" } }, - { - "kind": "youtube#searchResult", - "etag": "EY1yLVOjv_1FSTUdbZp1QjV1ShA", - "id": { - "kind": "youtube#video", - "videoId": "2IuL2Qvvbfk" - }, - "snippet": { - "publishedAt": "2023-06-13T11:32:18Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Biggest contribution from a product owner that you know of?", - "description": "scrum purposefully created the #productowner role to ensure that the focus shifted from #projectmanagement to ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/2IuL2Qvvbfk/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/2IuL2Qvvbfk/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/2IuL2Qvvbfk/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-06-13T11:32:18Z" - } - }, { "kind": "youtube#searchResult", "etag": "RIwxgL7jQT-Pc6Dvth0F-HwLscU", @@ -15197,210 +15435,6 @@ "publishTime": "2023-02-24T07:00:14Z" } }, - { - "kind": "youtube#searchResult", - "etag": "U6IIIirgUEZN2quU5N6xl79PoUQ", - "id": { - "kind": "youtube#video", - "videoId": "jcs-2G99Rrw" - }, - "snippet": { - "publishedAt": "2024-04-09T08:00:20Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Top 4 Rookie Mistakes in Azure DevOps", - "description": "Unpack 4 critical Azure DevOps pitfalls that make the Azure DevOps product teams' toes curl! 🛠️✨ Enjoy this video? Like and ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-04-09T08:00:20Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "a-sOwh1eMoSdmKCT-uUjCAp5re4", - "id": { - "kind": "youtube#video", - "videoId": "sXmXT_MDXTo" - }, - "snippet": { - "publishedAt": "2024-08-16T07:18:10Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Can you provide an overview of your DevOps consulting services and explain who can benefit the most", - "description": "In this video, we delve into the complexities of implementing DevOps practices within organizations and how these practices can ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/sXmXT_MDXTo/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/sXmXT_MDXTo/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/sXmXT_MDXTo/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-08-16T07:18:10Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "nzlA8Qi6g6d2trHYaW0pRiTOsY0", - "id": { - "kind": "youtube#video", - "videoId": "N58DvsSx4U8" - }, - "snippet": { - "publishedAt": "2023-04-18T07:00:08Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What is your favourite DevOps consulting outcome?", - "description": "After years as an #agilepractitioner, #softwaredeveloper and #devops specialist, Martin Hinshelwood evolved into a professional ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/N58DvsSx4U8/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/N58DvsSx4U8/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/N58DvsSx4U8/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-04-18T07:00:08Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "RlGZX-FkJ4ApX0HkblivEKlmMfc", - "id": { - "kind": "youtube#video", - "videoId": "vWfebO_pwIU" - }, - "snippet": { - "publishedAt": "2023-04-07T07:00:20Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Why Most Scrum Masters only have PSMI!", - "description": "Why do so few scrum masters progress to the PSM II and PSM III certifications?* Discover why many Scrum Masters don't pursue ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/vWfebO_pwIU/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/vWfebO_pwIU/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/vWfebO_pwIU/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-04-07T07:00:20Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "Vh3O1tWLL4tIadpDw4drFwD8uT4", - "id": { - "kind": "youtube#video", - "videoId": "jhpy9Hy8uEw" - }, - "snippet": { - "publishedAt": "2023-02-24T07:00:14Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Choosing Scrum.org Over Scrum Alliance!", - "description": "Discover the compelling reasons behind choosing Scrum.org over Scrum Alliance for scrum training. Dive into this insider's ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/jhpy9Hy8uEw/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/jhpy9Hy8uEw/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/jhpy9Hy8uEw/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-02-24T07:00:14Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "U6IIIirgUEZN2quU5N6xl79PoUQ", - "id": { - "kind": "youtube#video", - "videoId": "jcs-2G99Rrw" - }, - "snippet": { - "publishedAt": "2024-04-09T08:00:20Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Top 4 Rookie Mistakes in Azure DevOps", - "description": "Unpack 4 critical Azure DevOps pitfalls that make the Azure DevOps product teams' toes curl! 🛠️✨ Enjoy this video? Like and ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/jcs-2G99Rrw/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-04-09T08:00:20Z" - } - }, { "kind": "youtube#searchResult", "etag": "a-sOwh1eMoSdmKCT-uUjCAp5re4", @@ -15505,70 +15539,70 @@ }, { "kind": "youtube#searchResult", - "etag": "BmwGGgm5xARgZyGs3VCKsl84Zj0", + "etag": "z3CsEHIUi7i6vguKnikBLMqMZqw", "id": { "kind": "youtube#video", - "videoId": "roWCOkmtfDs" + "videoId": "IqWvURjrJVs" }, "snippet": { - "publishedAt": "2024-09-02T15:30:15Z", + "publishedAt": "2023-08-10T14:45:00Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "What is product validation and why does it matter", - "description": "Video Summary: Validating Feature Value in Product Development Introduction: Understanding Feature Validation - Why ...", + "title": "Znaczenie znajomości terenu", + "description": "Znaczenie znajomości terenu. Czego możemy się nauczyć o zwinności na podstawie narodowego polskiego sportu, czyli ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/roWCOkmtfDs/default.jpg", + "url": "https://i.ytimg.com/vi/IqWvURjrJVs/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/roWCOkmtfDs/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/IqWvURjrJVs/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/roWCOkmtfDs/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/IqWvURjrJVs/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-09-02T15:30:15Z" + "publishTime": "2023-08-10T14:45:00Z" } }, { "kind": "youtube#searchResult", - "etag": "z3CsEHIUi7i6vguKnikBLMqMZqw", + "etag": "0p9gnirUxxJ8rADGiLA3mJmMLbo", "id": { "kind": "youtube#video", - "videoId": "IqWvURjrJVs" + "videoId": "roWCOkmtfDs" }, "snippet": { - "publishedAt": "2023-08-10T14:45:00Z", + "publishedAt": "2024-09-02T15:30:15Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Znaczenie znajomości terenu", - "description": "Znaczenie znajomości terenu. Czego możemy się nauczyć o zwinności na podstawie narodowego polskiego sportu, czyli ...", + "title": "What is product validation and why does it matter", + "description": "Video Summary: Validating Feature Value in Product Development Introduction: Understanding Feature Validation - Why ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/IqWvURjrJVs/default.jpg", + "url": "https://i.ytimg.com/vi/roWCOkmtfDs/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/IqWvURjrJVs/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/roWCOkmtfDs/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/IqWvURjrJVs/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/roWCOkmtfDs/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-08-10T14:45:00Z" + "publishTime": "2024-09-02T15:30:15Z" } }, { @@ -15775,6 +15809,40 @@ "publishTime": "2024-07-24T06:45:04Z" } }, + { + "kind": "youtube#searchResult", + "etag": "3SoNoMO_YQf2taz_avirzjonuO4", + "id": { + "kind": "youtube#video", + "videoId": "5IBKxYLA494" + }, + "snippet": { + "publishedAt": "2024-04-03T17:21:43Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Scrum With Azure DevOps!", + "description": "Uncover the secrets to transforming your Scrum and Agile practices with Azure DevOps. From myth-busting to practical setup, ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/5IBKxYLA494/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/5IBKxYLA494/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/5IBKxYLA494/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-04-03T17:21:43Z" + } + }, { "kind": "youtube#searchResult", "etag": "c2nR9DgGsXqJ71xOle4-T3DXY5k", @@ -15945,6 +16013,40 @@ "publishTime": "2024-01-08T07:00:06Z" } }, + { + "kind": "youtube#searchResult", + "etag": "7GDkNZNO3Oz7zGOX2bx0od4VU2Y", + "id": { + "kind": "youtube#video", + "videoId": "jCrXzgjxcEA" + }, + "snippet": { + "publishedAt": "2024-03-29T16:42:17Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Kanban with Azure DevOps", + "description": "Unlocking Kanban's Full Potential with Azure DevOps: A Deep Dive - Discover how Azure DevOps transforms Kanban for hybrid ...", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/jCrXzgjxcEA/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/jCrXzgjxcEA/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/jCrXzgjxcEA/hqdefault.jpg", + "width": 480, + "height": 360 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "liveBroadcastContent": "none", + "publishTime": "2024-03-29T16:42:17Z" + } + }, { "kind": "youtube#searchResult", "etag": "RafeGJgpz6rgdJriIA9sVOhF2Co", @@ -16083,172 +16185,172 @@ }, { "kind": "youtube#searchResult", - "etag": "oCwe3jjwrK7TiWDKqVGrGdVGDcY", + "etag": "b1Rdz20bOuy2fwbMTkDpsEcFnyY", "id": { "kind": "youtube#video", - "videoId": "BtHASX2lgGo" + "videoId": "ymKlRonlUX0" }, "snippet": { - "publishedAt": "2024-01-09T07:00:05Z", + "publishedAt": "2024-01-01T07:00:20Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "5 kinds of Agile bandits. Planning Bandits", - "description": "The Agile Illusion: Unmasking the Burndown Trap in Sprint Planning - Discover why traditional burndown charts might be ...", + "title": "5 ghosts of #agile past. burndown charts", + "description": "Debunking Agile Myths: The Burndown Chart Fallacy - Discover why burndown charts may not be the Agile panacea they're often ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/BtHASX2lgGo/default.jpg", + "url": "https://i.ytimg.com/vi/ymKlRonlUX0/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/BtHASX2lgGo/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/ymKlRonlUX0/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/BtHASX2lgGo/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/ymKlRonlUX0/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-01-09T07:00:05Z" + "publishTime": "2024-01-01T07:00:20Z" } }, { "kind": "youtube#searchResult", - "etag": "7GDkNZNO3Oz7zGOX2bx0od4VU2Y", + "etag": "_5dIv7hIm5ZiTah2YdSf-bvwt6g", "id": { "kind": "youtube#video", - "videoId": "jCrXzgjxcEA" + "videoId": "l3NhlbM2gKM" }, "snippet": { - "publishedAt": "2024-03-29T16:42:17Z", + "publishedAt": "2023-10-24T11:00:39Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Kanban with Azure DevOps", - "description": "Unlocking Kanban's Full Potential with Azure DevOps: A Deep Dive - Discover how Azure DevOps transforms Kanban for hybrid ...", + "title": "Scrum is like communism. It doesn't work. Myth 2", + "description": "Unravel the myths around story points in Scrum and discover their real purpose! Dive into the world of Scrum, story points, and ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/jCrXzgjxcEA/default.jpg", + "url": "https://i.ytimg.com/vi/l3NhlbM2gKM/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/jCrXzgjxcEA/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/l3NhlbM2gKM/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/jCrXzgjxcEA/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/l3NhlbM2gKM/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-03-29T16:42:17Z" + "publishTime": "2023-10-24T11:00:39Z" } }, { "kind": "youtube#searchResult", - "etag": "tmTHxRz0S016AoaV9-GBqAWusDw", + "etag": "oCwe3jjwrK7TiWDKqVGrGdVGDcY", "id": { "kind": "youtube#video", - "videoId": "BDFrmCV_c68" + "videoId": "BtHASX2lgGo" }, "snippet": { - "publishedAt": "2023-10-13T07:00:05Z", + "publishedAt": "2024-01-09T07:00:05Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Pride! 7 Deadly Sins of Agile", - "description": "Pride: A Deadly Sin of Agile* Pride in agile can be a double-edged sword. While it's essential to take pride in your work, blind ...", + "title": "5 kinds of Agile bandits. Planning Bandits", + "description": "The Agile Illusion: Unmasking the Burndown Trap in Sprint Planning - Discover why traditional burndown charts might be ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/BDFrmCV_c68/default.jpg", + "url": "https://i.ytimg.com/vi/BtHASX2lgGo/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/BDFrmCV_c68/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/BtHASX2lgGo/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/BDFrmCV_c68/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/BtHASX2lgGo/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-10-13T07:00:05Z" + "publishTime": "2024-01-09T07:00:05Z" } }, { "kind": "youtube#searchResult", - "etag": "IuE6FbGWSzuIvDjOmAEm59uEYPo", + "etag": "tmTHxRz0S016AoaV9-GBqAWusDw", "id": { "kind": "youtube#video", - "videoId": "ZisAuhrOhcY" + "videoId": "BDFrmCV_c68" }, "snippet": { - "publishedAt": "2024-02-23T07:00:12Z", + "publishedAt": "2023-10-13T07:00:05Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "My journey with #Kanban and why I actively recommend it to consulting clients.", - "description": "Kanban: A Universal Strategy for Enhanced Workflow and Predictability Why Watch This Video? Dive into the transformative ...", + "title": "Pride! 7 Deadly Sins of Agile", + "description": "Pride: A Deadly Sin of Agile* Pride in agile can be a double-edged sword. While it's essential to take pride in your work, blind ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/ZisAuhrOhcY/default.jpg", + "url": "https://i.ytimg.com/vi/BDFrmCV_c68/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/ZisAuhrOhcY/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/BDFrmCV_c68/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/ZisAuhrOhcY/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/BDFrmCV_c68/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-02-23T07:00:12Z" + "publishTime": "2023-10-13T07:00:05Z" } }, { "kind": "youtube#searchResult", - "etag": "3SoNoMO_YQf2taz_avirzjonuO4", + "etag": "IuE6FbGWSzuIvDjOmAEm59uEYPo", "id": { "kind": "youtube#video", - "videoId": "5IBKxYLA494" + "videoId": "ZisAuhrOhcY" }, "snippet": { - "publishedAt": "2024-04-03T17:21:43Z", + "publishedAt": "2024-02-23T07:00:12Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Scrum With Azure DevOps!", - "description": "Uncover the secrets to transforming your Scrum and Agile practices with Azure DevOps. From myth-busting to practical setup, ...", + "title": "My journey with #Kanban and why I actively recommend it to consulting clients.", + "description": "Kanban: A Universal Strategy for Enhanced Workflow and Predictability Why Watch This Video? Dive into the transformative ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/5IBKxYLA494/default.jpg", + "url": "https://i.ytimg.com/vi/ZisAuhrOhcY/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/5IBKxYLA494/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/ZisAuhrOhcY/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/5IBKxYLA494/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/ZisAuhrOhcY/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2024-04-03T17:21:43Z" + "publishTime": "2024-02-23T07:00:12Z" } }, { @@ -16353,74 +16455,6 @@ "publishTime": "2024-01-20T07:00:00Z" } }, - { - "kind": "youtube#searchResult", - "etag": "_DYuDI0tna0Pev83ghegyxEyu9g", - "id": { - "kind": "youtube#video", - "videoId": "sAKCLQ38GzA" - }, - "snippet": { - "publishedAt": "2023-10-19T08:22:23Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Does 'starting with why' - Simon Sinek - really matter?", - "description": "Unravel the core essence of motivation beyond monetary incentives, diving into autonomy, mastery, and purpose, framing it with ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/sAKCLQ38GzA/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/sAKCLQ38GzA/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/sAKCLQ38GzA/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2023-10-19T08:22:23Z" - } - }, - { - "kind": "youtube#searchResult", - "etag": "b1Rdz20bOuy2fwbMTkDpsEcFnyY", - "id": { - "kind": "youtube#video", - "videoId": "ymKlRonlUX0" - }, - "snippet": { - "publishedAt": "2024-01-01T07:00:20Z", - "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "5 ghosts of #agile past. burndown charts", - "description": "Debunking Agile Myths: The Burndown Chart Fallacy - Discover why burndown charts may not be the Agile panacea they're often ...", - "thumbnails": { - "default": { - "url": "https://i.ytimg.com/vi/ymKlRonlUX0/default.jpg", - "width": 120, - "height": 90 - }, - "medium": { - "url": "https://i.ytimg.com/vi/ymKlRonlUX0/mqdefault.jpg", - "width": 320, - "height": 180 - }, - "high": { - "url": "https://i.ytimg.com/vi/ymKlRonlUX0/hqdefault.jpg", - "width": 480, - "height": 360 - } - }, - "channelTitle": "naked Agility with Martin Hinshelwood", - "liveBroadcastContent": "none", - "publishTime": "2024-01-01T07:00:20Z" - } - }, { "kind": "youtube#searchResult", "etag": "vCdBCio9DQKSyD5sZF7X7mQXpx8", @@ -16457,36 +16491,36 @@ }, { "kind": "youtube#searchResult", - "etag": "_5dIv7hIm5ZiTah2YdSf-bvwt6g", + "etag": "_DYuDI0tna0Pev83ghegyxEyu9g", "id": { "kind": "youtube#video", - "videoId": "l3NhlbM2gKM" + "videoId": "sAKCLQ38GzA" }, "snippet": { - "publishedAt": "2023-10-24T11:00:39Z", + "publishedAt": "2023-10-19T08:22:23Z", "channelId": "UCkYqhFNmhCzkefHsHS652hw", - "title": "Scrum is like communism. It doesn't work. Myth 2", - "description": "Unravel the myths around story points in Scrum and discover their real purpose! Dive into the world of Scrum, story points, and ...", + "title": "Does 'starting with why' - Simon Sinek - really matter?", + "description": "Unravel the core essence of motivation beyond monetary incentives, diving into autonomy, mastery, and purpose, framing it with ...", "thumbnails": { "default": { - "url": "https://i.ytimg.com/vi/l3NhlbM2gKM/default.jpg", + "url": "https://i.ytimg.com/vi/sAKCLQ38GzA/default.jpg", "width": 120, "height": 90 }, "medium": { - "url": "https://i.ytimg.com/vi/l3NhlbM2gKM/mqdefault.jpg", + "url": "https://i.ytimg.com/vi/sAKCLQ38GzA/mqdefault.jpg", "width": 320, "height": 180 }, "high": { - "url": "https://i.ytimg.com/vi/l3NhlbM2gKM/hqdefault.jpg", + "url": "https://i.ytimg.com/vi/sAKCLQ38GzA/hqdefault.jpg", "width": 480, "height": 360 } }, "channelTitle": "naked Agility with Martin Hinshelwood", "liveBroadcastContent": "none", - "publishTime": "2023-10-24T11:00:39Z" + "publishTime": "2023-10-19T08:22:23Z" } } ] From 00f23533eaa46ff710726b243ac0c7ea72ae9685 Mon Sep 17 00:00:00 2001 From: "Martin Hinshelwood nkdAgility.com" Date: Tue, 26 Nov 2024 14:30:54 +0000 Subject: [PATCH 2/4] Update --- .../build/Update-YoutubeChannelData.ps1 | 142 +++++++----------- ...{GetAccessToken,ps1 => GetAccessToken.ps1} | 0 .../youtube/1TaIjFL-0o8/data.captions.json | 8 + .../youtube/54-Zw2A7zEM/data.captions.json | 8 + .../youtube/8uPjXXt5lo4/data.captions.json | 8 + .../youtube/9z9BgSi2zeA/data.captions.json | 8 + .../youtube/BE6E5tV8130/data.captions.json | 8 + .../youtube/BFDB04_JIhg/data.captions.json | 8 + .../youtube/BmlTZwGAcMU/data.captions.json | 8 + .../youtube/CawY8x3kGVk/data.captions.json | 8 + .../videos/youtube/DSIXtHZTirA/data.json | 65 ++++++++ .../youtube/FJjiCodxyK4/data.captions.json | 8 + .../youtube/FNFV4mp-0pg/data.captions.json | 8 + .../youtube/GfB3nB_PMyY/data.captions.json | 8 + .../videos/youtube/IZ-FlBbGaSY/data.json | 66 ++++++++ .../youtube/M4ap4uNzptg/data.captions.json | 8 + .../youtube/MO7O6kTmufc/data.captions.json | 8 + .../youtube/PaUciBmqCsU/data.captions.json | 8 + .../youtube/Q2Fo3sM6BVo/data.captions.json | 8 + .../youtube/Qko_93YAV70/data.captions.json | 8 + .../youtube/UOzrABhafx0/data.captions.json | 8 + .../youtube/WVNiLx3QHLg/data.captions.json | 8 + .../youtube/Xa_e2EnLEV4/data.captions.json | 8 + .../youtube/ZXDBoq7JUSw/data.captions.json | 8 + .../youtube/fUj1k47pDg8/data.captions.json | 8 + .../youtube/gRnYXuxo9_w/data.captions.json | 8 + .../youtube/gjrvSJWE0Gk/data.captions.json | 8 + .../youtube/hB8oQPpderI/data.captions.json | 8 + .../youtube/hu80qqzaDx0/data.captions.json | 8 + .../youtube/iT7ZtgNJbT0/data.captions.json | 8 + .../youtube/jmU91ClcSqA/data.captions.json | 8 + .../youtube/nY4tmtGKO6I/data.captions.json | 8 + .../youtube/nfTAYRLAaYI/data.captions.json | 8 + .../youtube/o-wVeh3CIVI/data.captions.json | 8 + .../youtube/r1wvCUxeWcE/data.captions.json | 8 + .../youtube/rX258aqTf_w/data.captions.json | 8 + .../youtube/sBBKKlfwlrA/data.captions.json | 18 +++ .../youtube/sIhG2i7frpE/data.captions.json | 8 + .../youtube/tPX-wc6pG7M/data.captions.json | 8 + .../youtube/utI-1HVpeSU/data.captions.json | 8 + 40 files changed, 482 insertions(+), 89 deletions(-) rename .powershell/single-use/youtube/{GetAccessToken,ps1 => GetAccessToken.ps1} (100%) create mode 100644 site/content/resources/videos/youtube/1TaIjFL-0o8/data.captions.json create mode 100644 site/content/resources/videos/youtube/54-Zw2A7zEM/data.captions.json create mode 100644 site/content/resources/videos/youtube/8uPjXXt5lo4/data.captions.json create mode 100644 site/content/resources/videos/youtube/9z9BgSi2zeA/data.captions.json create mode 100644 site/content/resources/videos/youtube/BE6E5tV8130/data.captions.json create mode 100644 site/content/resources/videos/youtube/BFDB04_JIhg/data.captions.json create mode 100644 site/content/resources/videos/youtube/BmlTZwGAcMU/data.captions.json create mode 100644 site/content/resources/videos/youtube/CawY8x3kGVk/data.captions.json create mode 100644 site/content/resources/videos/youtube/DSIXtHZTirA/data.json create mode 100644 site/content/resources/videos/youtube/FJjiCodxyK4/data.captions.json create mode 100644 site/content/resources/videos/youtube/FNFV4mp-0pg/data.captions.json create mode 100644 site/content/resources/videos/youtube/GfB3nB_PMyY/data.captions.json create mode 100644 site/content/resources/videos/youtube/IZ-FlBbGaSY/data.json create mode 100644 site/content/resources/videos/youtube/M4ap4uNzptg/data.captions.json create mode 100644 site/content/resources/videos/youtube/MO7O6kTmufc/data.captions.json create mode 100644 site/content/resources/videos/youtube/PaUciBmqCsU/data.captions.json create mode 100644 site/content/resources/videos/youtube/Q2Fo3sM6BVo/data.captions.json create mode 100644 site/content/resources/videos/youtube/Qko_93YAV70/data.captions.json create mode 100644 site/content/resources/videos/youtube/UOzrABhafx0/data.captions.json create mode 100644 site/content/resources/videos/youtube/WVNiLx3QHLg/data.captions.json create mode 100644 site/content/resources/videos/youtube/Xa_e2EnLEV4/data.captions.json create mode 100644 site/content/resources/videos/youtube/ZXDBoq7JUSw/data.captions.json create mode 100644 site/content/resources/videos/youtube/fUj1k47pDg8/data.captions.json create mode 100644 site/content/resources/videos/youtube/gRnYXuxo9_w/data.captions.json create mode 100644 site/content/resources/videos/youtube/gjrvSJWE0Gk/data.captions.json create mode 100644 site/content/resources/videos/youtube/hB8oQPpderI/data.captions.json create mode 100644 site/content/resources/videos/youtube/hu80qqzaDx0/data.captions.json create mode 100644 site/content/resources/videos/youtube/iT7ZtgNJbT0/data.captions.json create mode 100644 site/content/resources/videos/youtube/jmU91ClcSqA/data.captions.json create mode 100644 site/content/resources/videos/youtube/nY4tmtGKO6I/data.captions.json create mode 100644 site/content/resources/videos/youtube/nfTAYRLAaYI/data.captions.json create mode 100644 site/content/resources/videos/youtube/o-wVeh3CIVI/data.captions.json create mode 100644 site/content/resources/videos/youtube/r1wvCUxeWcE/data.captions.json create mode 100644 site/content/resources/videos/youtube/rX258aqTf_w/data.captions.json create mode 100644 site/content/resources/videos/youtube/sBBKKlfwlrA/data.captions.json create mode 100644 site/content/resources/videos/youtube/sIhG2i7frpE/data.captions.json create mode 100644 site/content/resources/videos/youtube/tPX-wc6pG7M/data.captions.json create mode 100644 site/content/resources/videos/youtube/utI-1HVpeSU/data.captions.json diff --git a/.powershell/build/Update-YoutubeChannelData.ps1 b/.powershell/build/Update-YoutubeChannelData.ps1 index fbb28ff6a..f1d1140b6 100644 --- a/.powershell/build/Update-YoutubeChannelData.ps1 +++ b/.powershell/build/Update-YoutubeChannelData.ps1 @@ -13,6 +13,7 @@ if (-not (Test-Path $outputDir)) { # Function to get captions for a video function Get-YouTubeCaptions { param ( + [Parameter(Mandatory = $true)] [string]$videoId, [string]$accessToken ) @@ -25,11 +26,12 @@ function Get-YouTubeCaptions { } # Function to download a caption file with a check if $captionContent is empty -function Download-YouTubeCaption { +function Get-YouTubeCaption { param ( + [Parameter(Mandatory = $true)] [string]$captionId, - [string]$accessToken, - [string]$outputPath + [Parameter(Mandatory = $true)] + [string]$accessToken ) # Specify the format as SRT by adding 'tfmt=srt' to the URL @@ -39,83 +41,19 @@ function Download-YouTubeCaption { # Use Invoke-WebRequest for binary or non-JSON/XML responses $response = Invoke-WebRequest -Uri $downloadUrl -Headers $headers -Method Get - # Check if the response has content - if (-not [string]::IsNullOrEmpty($response.Content)) { - # Save the caption content to a file - [System.IO.File]::WriteAllBytes($outputPath, $response.Content) - Write-Host "Caption saved to: $outputPath" - return $true # Return true to indicate success - } - else { - Write-Host "No caption content available for captionId: $captionId" - return $false # Return false to indicate no content - } -} - -# Function to loop through outputDir folders and download captions based on folder names (which are video IDs) -# It will only download the caption if the transcript file does not already exist -function Download-AllYouTubeCaptions { - param ([string]$accessToken) - - # Get all folders in $outputDir - $videoFolders = Get-ChildItem -Path $outputDir -Directory - $downloadCount = 0 # Initialize counter for downloaded transcripts - - foreach ($folder in $videoFolders) { - if ($downloadCount -ge $downloadLimit) { - Write-Host "Reached download limit of $downloadLimit transcripts. Stopping." - break - } - - $videoId = $folder.Name # The folder name is assumed to be the videoId - Write-Host "Processing video ID: $videoId" - $matchingFiles = Get-ChildItem -Path $folder -Filter "transcript.*.srt" -File - - # Skip if there are already transcript files in the folder - if ($matchingFiles.Count -gt 0) { - Write-Host "Transcript files already exist for $videoId" - continue - } - - $captions = Get-YouTubeCaptions -videoId $videoId -accessToken $accessToken - - foreach ($caption in $captions) { - if ($downloadCount -ge $downloadLimit) { - Write-Host "Reached download limit of $downloadLimit transcripts. Stopping." - break - } - - $captionId = $caption.id - $language = $caption.snippet.language - $outputPath = Join-Path $folder.FullName "transcript.$language.srt" - - # Check if the transcript already exists - if (-not (Test-Path $outputPath)) { - Write-Host "Downloading Transcript in $language for $captionId" - $success = Download-YouTubeCaption -captionId $captionId -accessToken $accessToken -outputPath $outputPath - - if ($success) { - $downloadCount++ - } - } - else { - Write-Host "Transcript in $language for $captionId already exists" - } - } - } - - Write-Host "Downloaded $downloadCount transcript(s)." + return $response.Content } # Define variables -$apiKey = $env:YOUTUBE_API_KEY $channelId = "UCkYqhFNmhCzkefHsHS652hw" $outputDir = "site\content\resources\videos\youtube" $dataDirectory = ".\site\data" $refreshData = $false -$transcriptDownloadLimit = 10 -$videoUpdateLimit = 1 +$captionsDownloadLimit = 0 +$videoUpdateLimit = 10 +$captionsManafestUpdateLimit = 10 +# 0. Get Youtube Video List $dataFilePath = Join-Path $dataDirectory "youtube.json" if (Test-FileAge -filePath $dataFilePath -hours 3) { $allVideosData = Get-YoutubePublicChannelVideos -channelId $channelId -apiKey $env:YOUTUBE_API_KEY # Call this to fetch video list and save to youtube.json @@ -128,13 +66,14 @@ else { Write-Host "$dataFilePath is up to date." -ForegroundColor Yellow } -$videoUpdateLimit = 1 + $videoUpdateCount = 0 -$captionsUpdateLimit = 1 -$captionsUpdateCount = 0 +$captionsManafestUpdateCount = 0 +$captionsDownloadCount = 0 foreach ($video in $allVideosData) { - Write-Host "Get Video Data for $($video.id.videoId)" -ForegroundColor Green + Write-Host "Processing $($video.id.videoId)" -ForegroundColor Green + $videoId = $video.id.videoId # Create the directory named after the video ID $videoDir = Join-Path $outputDir $videoId @@ -143,48 +82,73 @@ foreach ($video in $allVideosData) { } # 1. Get Youtube Video Data - - # File path for data.json $jsonFilePathVideos = Join-Path $videoDir "data.json" if ($refreshData -or -not (Test-Path $jsonFilePathVideos)) { - if ($videoUpdateCount -le $videoUpdateLimit) { + if ($videoUpdateCount -lt $videoUpdateLimit) { # Call the function to update the data for a single video $videoData = Get-YoutubeVideoData -videoId $videoId # Save updated video data to data.json if ($videoData) { $videoData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePathVideos - Write-Host "Updated data.json for video: $videoId" + Write-Host " Updated data.json for video: $videoId" $videoUpdateCount++; } } else { - Write-Host "Reached video update limit of $videoUpdateLimit. skipping." + Write-Host " Reached video update limit of $videoUpdateLimit. skipping." } } + # 2. Get Youtube Captions List $jsonFilePathCaptions = Join-Path $videoDir "data.captions.json" if ($refreshData -or -not (Test-Path $jsonFilePathCaptions)) { - if ($captionsUpdateCount -le $videoUpdateLimit) { + if ($captionsManafestUpdateCount -lt $captionsManafestUpdateLimit) { # Call the function to update the data for a single video - $captionData = Get-YouTubeCaptionsData -videoId $videoId + $captionListData = Get-YouTubeCaptionsData -videoId $videoId # Save updated video data to data.json - if ($captionData) { - $captionData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePathCaptions - Write-Host "Updated data.captions.json for video: $videoId" - $captionsUpdateCount++; + if ($captionListData) { + $captionListData | ConvertTo-Json -Depth 10 | Set-Content -Path $jsonFilePathCaptions + Write-Host " Updated data.captions.json for video: $videoId" + $captionsManafestUpdateCount++; } } else { - Write-Host "Reached capations update limit of $videoUpdateLimit. skipping." + Write-Host " Reached capations manafest update limit of $captionsManafestUpdateLimit. skipping." } } - + # 3. Download Captions + if (Test-Path $jsonFilePathCaptions) { + $captionsData = Get-Content -Path $jsonFilePathCaptions | ConvertFrom-Json + foreach ($caption in $captionsData) { + $captionId = $caption.captionId + $language = $caption.language + $captionsFileName = "transcript.$language.srt" + $captionFilePath = Join-Path $videoDir $captionsFileName + if (-not (Test-Path $captionFilePath)) { + if ($captionsDownloadCount -lt $captionsDownloadLimit) { + $captionData = Get-YouTubeCaption -captionId $captionId -accessToken $env:GOOGLE_ACCESS_TOKEN + $captionData | Set-Content -Path $captionFilePath + Write-Host " Updated $captionsFileName for video: $videoId" + $captionsDownloadCount++ + } + else { + Write-Host " Reached capations download limit of $captionsDownloadLimit. skipping." + } + + } + } + + } + else { + Write-Host " No caption list data manafest. skipping." + } } + # Update-YoutubeDataFilesFromJson # Call this to update data.json files from youtube.json # # Set a limit for the number of transcripts to download diff --git a/.powershell/single-use/youtube/GetAccessToken,ps1 b/.powershell/single-use/youtube/GetAccessToken.ps1 similarity index 100% rename from .powershell/single-use/youtube/GetAccessToken,ps1 rename to .powershell/single-use/youtube/GetAccessToken.ps1 diff --git a/site/content/resources/videos/youtube/1TaIjFL-0o8/data.captions.json b/site/content/resources/videos/youtube/1TaIjFL-0o8/data.captions.json new file mode 100644 index 000000000..c7df19513 --- /dev/null +++ b/site/content/resources/videos/youtube/1TaIjFL-0o8/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-04-25T01:33:09.723905Z", + "captionId": "AUieDabByRKjI0_lrdsuQNakVs2ntQzGgKMuYDCb_JZ9SUVbq8s", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/54-Zw2A7zEM/data.captions.json b/site/content/resources/videos/youtube/54-Zw2A7zEM/data.captions.json new file mode 100644 index 000000000..1b27a97cf --- /dev/null +++ b/site/content/resources/videos/youtube/54-Zw2A7zEM/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-06-19T15:58:34.696528Z", + "captionId": "AUieDabmyY4KutbpdRST2aWpyMYJM451GbSAJyY2hvLCWbAysds", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/8uPjXXt5lo4/data.captions.json b/site/content/resources/videos/youtube/8uPjXXt5lo4/data.captions.json new file mode 100644 index 000000000..f3dbd6419 --- /dev/null +++ b/site/content/resources/videos/youtube/8uPjXXt5lo4/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-01-30T10:37:52.775516Z", + "captionId": "AUieDab5igaScivffoKHcnD3K4xBIi5MJt-_oEO-nAByfHQERGs", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/9z9BgSi2zeA/data.captions.json b/site/content/resources/videos/youtube/9z9BgSi2zeA/data.captions.json new file mode 100644 index 000000000..d7a09886f --- /dev/null +++ b/site/content/resources/videos/youtube/9z9BgSi2zeA/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-11-20T08:58:54.058178Z", + "captionId": "AUieDaaYeWS6RSsasq_EIn-UI0-wQfA1k7GyPJLcHcafz1FbLvc", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/BE6E5tV8130/data.captions.json b/site/content/resources/videos/youtube/BE6E5tV8130/data.captions.json new file mode 100644 index 000000000..a361d4190 --- /dev/null +++ b/site/content/resources/videos/youtube/BE6E5tV8130/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-01-10T08:08:57.183314Z", + "captionId": "AUieDaZASlCVehQAZJusl8Ax1HwpypN_yAyuEoFdW1tmV5PKHCo", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/BFDB04_JIhg/data.captions.json b/site/content/resources/videos/youtube/BFDB04_JIhg/data.captions.json new file mode 100644 index 000000000..76fc875c7 --- /dev/null +++ b/site/content/resources/videos/youtube/BFDB04_JIhg/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-06-24T06:47:43.748309Z", + "captionId": "AUieDaZx0ueqU3o-6kJUJL0C49xuOhmWGd-PgkLI03Vy-VTVLag", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/BmlTZwGAcMU/data.captions.json b/site/content/resources/videos/youtube/BmlTZwGAcMU/data.captions.json new file mode 100644 index 000000000..534c14e65 --- /dev/null +++ b/site/content/resources/videos/youtube/BmlTZwGAcMU/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-01-31T15:12:02.981194Z", + "captionId": "AUieDaYOgJaQBnceIdsTH_XUFKfb5d9VToIKO2D1WHcX-ritiYg", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/CawY8x3kGVk/data.captions.json b/site/content/resources/videos/youtube/CawY8x3kGVk/data.captions.json new file mode 100644 index 000000000..d76ed7b42 --- /dev/null +++ b/site/content/resources/videos/youtube/CawY8x3kGVk/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-10-24T09:15:01.721241Z", + "captionId": "AUieDaZgzOwXn4PahMhGeqngb-n1Ijfu_MY081cDRkuity_5c2w", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/DSIXtHZTirA/data.json b/site/content/resources/videos/youtube/DSIXtHZTirA/data.json new file mode 100644 index 000000000..88076f23c --- /dev/null +++ b/site/content/resources/videos/youtube/DSIXtHZTirA/data.json @@ -0,0 +1,65 @@ +{ + "kind": "youtube#video", + "etag": "WJqOPf6qB8h15H8V6VurOYIc7cg", + "id": "DSIXtHZTirA", + "snippet": { + "publishedAt": "2024-11-23T07:00:12Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Performance Engineering for Optimal User Experience", + "description": "# Performance Engineering and Testing in Production: A Modern Approach | Martin Hinshelwood \n\n👋 Hi, I’m Martin Hinshelwood from [NKD Agility](https://www.nkdagility.com), and in this video, I explore the critical role of **performance engineering** and how to ensure your software delivers a great user experience. From optimizing for speed and responsiveness to leveraging real-world testing in production, I’ll share actionable strategies for creating modern, high-quality products that keep customers happy and businesses thriving.\n\n**📌 Chapters:** \n\n1. 00:00 – Introduction: Why Performance Engineering Matters \n2. 03:00 – Shifting Left: Empowering Teams to Own Performance \n3. 06:30 – Testing in Production: Balancing Risk and Value \n4. 09:45 – The Importance of Telemetry and User Feedback \n5. 14:00 – Feature Flags and Audience-Based Deployment \n6. 18:30 – Real-World Example: Azure DevOps’ Testing Strategy \n7. 24:00 – Building Discipline in Modern Software Engineering \n\n**🎯 Who This Video is For:** \n\n- Software engineers and architects focusing on performance optimization \n- Product managers and business leaders aiming to improve user satisfaction \n- Teams implementing feature flags and audience-based deployment models \n- Organizations wanting to adopt modern performance and testing strategies \n\n**📖 What You’ll Learn:** \n\n- How performance engineering impacts user satisfaction and business goals \n- Why testing in production is essential and how to manage its risks \n- The role of telemetry in identifying and solving performance issues \n- How audience-based deployments improve feedback and reduce risks \n- Practical insights from Azure DevOps’ modern engineering practices \n- Steps to build discipline and effort into performance improvement \n\n**💡 Key Takeaways:** \n\n- Great performance and user experience require intentional effort and discipline. \n- Testing in production doesn’t replace pre-production testing but complements it for real-world insights. \n- Feature flags and audience-based deployments allow teams to safely roll out and validate features. \n- Telemetry and user feedback are invaluable tools for iterative performance improvements. \n\nAt [NKD Agility](https://www.nkdagility.com), we specialize in helping teams adopt modern engineering practices like performance engineering, testing in production, and audience-based deployments. Ready to build high-quality, high-performance software? Visit us today to learn how we can support your journey to engineering excellence. \n\n#agile #scrum #agileproductdevelopment #agileprojectmanagement #projectmanagement #projectmanager #productdevelopment #productmanager #productowner #scrummasters", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/DSIXtHZTirA/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "tags": [ + "Agile", + "Product development", + "Product management", + "software engineering", + "project management", + "agile product development", + "agile product management", + "agile project management" + ], + "categoryId": "28", + "liveBroadcastContent": "none", + "localized": { + "title": "Performance Engineering for Optimal User Experience", + "description": "# Performance Engineering and Testing in Production: A Modern Approach | Martin Hinshelwood \n\n👋 Hi, I’m Martin Hinshelwood from [NKD Agility](https://www.nkdagility.com), and in this video, I explore the critical role of **performance engineering** and how to ensure your software delivers a great user experience. From optimizing for speed and responsiveness to leveraging real-world testing in production, I’ll share actionable strategies for creating modern, high-quality products that keep customers happy and businesses thriving.\n\n**📌 Chapters:** \n\n1. 00:00 – Introduction: Why Performance Engineering Matters \n2. 03:00 – Shifting Left: Empowering Teams to Own Performance \n3. 06:30 – Testing in Production: Balancing Risk and Value \n4. 09:45 – The Importance of Telemetry and User Feedback \n5. 14:00 – Feature Flags and Audience-Based Deployment \n6. 18:30 – Real-World Example: Azure DevOps’ Testing Strategy \n7. 24:00 – Building Discipline in Modern Software Engineering \n\n**🎯 Who This Video is For:** \n\n- Software engineers and architects focusing on performance optimization \n- Product managers and business leaders aiming to improve user satisfaction \n- Teams implementing feature flags and audience-based deployment models \n- Organizations wanting to adopt modern performance and testing strategies \n\n**📖 What You’ll Learn:** \n\n- How performance engineering impacts user satisfaction and business goals \n- Why testing in production is essential and how to manage its risks \n- The role of telemetry in identifying and solving performance issues \n- How audience-based deployments improve feedback and reduce risks \n- Practical insights from Azure DevOps’ modern engineering practices \n- Steps to build discipline and effort into performance improvement \n\n**💡 Key Takeaways:** \n\n- Great performance and user experience require intentional effort and discipline. \n- Testing in production doesn’t replace pre-production testing but complements it for real-world insights. \n- Feature flags and audience-based deployments allow teams to safely roll out and validate features. \n- Telemetry and user feedback are invaluable tools for iterative performance improvements. \n\nAt [NKD Agility](https://www.nkdagility.com), we specialize in helping teams adopt modern engineering practices like performance engineering, testing in production, and audience-based deployments. Ready to build high-quality, high-performance software? Visit us today to learn how we can support your journey to engineering excellence. \n\n#agile #scrum #agileproductdevelopment #agileprojectmanagement #projectmanagement #projectmanager #productdevelopment #productmanager #productowner #scrummasters" + }, + "defaultAudioLanguage": "en-GB" + }, + "contentDetails": { + "duration": "PT11M44S", + "dimension": "2d", + "definition": "hd", + "caption": "false", + "licensedContent": false, + "contentRating": {}, + "projection": "rectangular" + } +} diff --git a/site/content/resources/videos/youtube/FJjiCodxyK4/data.captions.json b/site/content/resources/videos/youtube/FJjiCodxyK4/data.captions.json new file mode 100644 index 000000000..ea3913e04 --- /dev/null +++ b/site/content/resources/videos/youtube/FJjiCodxyK4/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-03-02T21:36:51.298092Z", + "captionId": "AUieDaYuBgbevFWQNpIs_Cys2b9WK1mh1exuzdtCHwx5d6COJdY", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/FNFV4mp-0pg/data.captions.json b/site/content/resources/videos/youtube/FNFV4mp-0pg/data.captions.json new file mode 100644 index 000000000..10adefca2 --- /dev/null +++ b/site/content/resources/videos/youtube/FNFV4mp-0pg/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-04-14T08:48:39.923799Z", + "captionId": "AUieDaZnP0qzTBJufQlHbAQWEoHqsxm4H0ZTompY5ZuSHSJqSWE", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/GfB3nB_PMyY/data.captions.json b/site/content/resources/videos/youtube/GfB3nB_PMyY/data.captions.json new file mode 100644 index 000000000..e6cea1a48 --- /dev/null +++ b/site/content/resources/videos/youtube/GfB3nB_PMyY/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-01-31T15:13:04.814112Z", + "captionId": "AUieDaaNz1i24ny1aZukDTLIRW4-UmkNY6e9xY_n1JO8s-xD-ro", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/IZ-FlBbGaSY/data.json b/site/content/resources/videos/youtube/IZ-FlBbGaSY/data.json new file mode 100644 index 000000000..1c47f96ce --- /dev/null +++ b/site/content/resources/videos/youtube/IZ-FlBbGaSY/data.json @@ -0,0 +1,66 @@ +{ + "kind": "youtube#video", + "etag": "Mmh3hf4-L22YYAdOFm5EJBUedAk", + "id": "IZ-FlBbGaSY", + "snippet": { + "publishedAt": "2024-11-22T07:00:08Z", + "channelId": "UCkYqhFNmhCzkefHsHS652hw", + "title": "Continuous Integration and Continuous Delivery CI CD for Quality", + "description": "# CI/CD Done Right: Engineering Excellence with Continuous Integration and Delivery | Martin Hinshelwood \n\n👋 Hi, I’m Martin Hinshelwood from [NKD Agility](https://www.nkdagility.com), and in this video, I unpack the real meaning of **Continuous Integration (CI)** and **Continuous Delivery (CD)**—and why most teams aren’t doing it right. From mainline branching to ring-based deployments, I explore how CI/CD pipelines can help teams reduce risk, improve product quality, and achieve faster, more reliable releases. Let’s redefine what CI/CD should look like and how it can transform your development process.\n\n**📌 Chapters:** \n\n1. 00:00 – Introduction: The Problem with “Fake CI/CD” \n2. 02:30 – What Continuous Integration Really Means \n3. 05:00 – Why Mainline Branching is Critical \n4. 08:15 – Continuous Delivery: Shipping Directly to Production \n5. 11:30 – Ring-Based Deployment Models for Controlled Risk \n6. 15:45 – The Role of Automation in CI/CD \n7. 19:30 – Adapting CI/CD to Fit Your Product and Business Goals \n\n**🎯 Who This Video is For:** \n\n- Developers and engineering teams looking to adopt true CI/CD practices \n- Product owners and business leaders aiming to improve release frequency and quality \n- Organizations struggling with complex branching models or deployment bottlenecks \n\n**📖 What You’ll Learn:** \n\n- The difference between automated builds and true CI/CD \n- Why DevTestLive branches are outdated and risky \n- How mainline branching reduces integration issues and supports continuous delivery \n- The benefits of ring-based deployments for managing risk and gathering feedback \n- Strategies for automating CI/CD pipelines to reduce costs and improve efficiency \n- Real-world examples from Microsoft’s deployment models \n\n**💡 Key Takeaways:** \n\n- Continuous Integration means frequent merges into a mainline branch, not separate branch builds. \n- Continuous Delivery ensures every commit is deployable to production, reducing deployment friction. \n- Ring-based deployments allow teams to manage risk while iterating quickly. \n- CI/CD isn’t one-size-fits-all—tailoring it to your product and goals is key. \n\nAt [NKD Agility](https://www.nkdagility.com), we specialize in helping organizations design and implement CI/CD pipelines that fit their needs. Whether it’s full automation, ring-based deployments, or just a reliable build system, we can help you optimize your processes and deliver better software, faster. Visit us today to get started! \n\n#agile #agileproductdevelopment #agileprojectmanagement #productdevelopment #productmanagement #productmanager #projectmanager #continuousimprovement #continuousintegration", + "thumbnails": { + "default": { + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/default.jpg", + "width": 120, + "height": 90 + }, + "medium": { + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/mqdefault.jpg", + "width": 320, + "height": 180 + }, + "high": { + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/hqdefault.jpg", + "width": 480, + "height": 360 + }, + "standard": { + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/sddefault.jpg", + "width": 640, + "height": 480 + }, + "maxres": { + "url": "https://i.ytimg.com/vi/IZ-FlBbGaSY/maxresdefault.jpg", + "width": 1280, + "height": 720 + } + }, + "channelTitle": "naked Agility with Martin Hinshelwood", + "tags": [ + "Continuous integration", + "Continous development", + "Continuous delivery", + "Agile", + "Agile product development", + "product development", + "product management", + "project management", + "project manager" + ], + "categoryId": "28", + "liveBroadcastContent": "none", + "localized": { + "title": "Continuous Integration and Continuous Delivery CI CD for Quality", + "description": "# CI/CD Done Right: Engineering Excellence with Continuous Integration and Delivery | Martin Hinshelwood \n\n👋 Hi, I’m Martin Hinshelwood from [NKD Agility](https://www.nkdagility.com), and in this video, I unpack the real meaning of **Continuous Integration (CI)** and **Continuous Delivery (CD)**—and why most teams aren’t doing it right. From mainline branching to ring-based deployments, I explore how CI/CD pipelines can help teams reduce risk, improve product quality, and achieve faster, more reliable releases. Let’s redefine what CI/CD should look like and how it can transform your development process.\n\n**📌 Chapters:** \n\n1. 00:00 – Introduction: The Problem with “Fake CI/CD” \n2. 02:30 – What Continuous Integration Really Means \n3. 05:00 – Why Mainline Branching is Critical \n4. 08:15 – Continuous Delivery: Shipping Directly to Production \n5. 11:30 – Ring-Based Deployment Models for Controlled Risk \n6. 15:45 – The Role of Automation in CI/CD \n7. 19:30 – Adapting CI/CD to Fit Your Product and Business Goals \n\n**🎯 Who This Video is For:** \n\n- Developers and engineering teams looking to adopt true CI/CD practices \n- Product owners and business leaders aiming to improve release frequency and quality \n- Organizations struggling with complex branching models or deployment bottlenecks \n\n**📖 What You’ll Learn:** \n\n- The difference between automated builds and true CI/CD \n- Why DevTestLive branches are outdated and risky \n- How mainline branching reduces integration issues and supports continuous delivery \n- The benefits of ring-based deployments for managing risk and gathering feedback \n- Strategies for automating CI/CD pipelines to reduce costs and improve efficiency \n- Real-world examples from Microsoft’s deployment models \n\n**💡 Key Takeaways:** \n\n- Continuous Integration means frequent merges into a mainline branch, not separate branch builds. \n- Continuous Delivery ensures every commit is deployable to production, reducing deployment friction. \n- Ring-based deployments allow teams to manage risk while iterating quickly. \n- CI/CD isn’t one-size-fits-all—tailoring it to your product and goals is key. \n\nAt [NKD Agility](https://www.nkdagility.com), we specialize in helping organizations design and implement CI/CD pipelines that fit their needs. Whether it’s full automation, ring-based deployments, or just a reliable build system, we can help you optimize your processes and deliver better software, faster. Visit us today to get started! \n\n#agile #agileproductdevelopment #agileprojectmanagement #productdevelopment #productmanagement #productmanager #projectmanager #continuousimprovement #continuousintegration" + }, + "defaultAudioLanguage": "en-GB" + }, + "contentDetails": { + "duration": "PT7M31S", + "dimension": "2d", + "definition": "hd", + "caption": "false", + "licensedContent": false, + "contentRating": {}, + "projection": "rectangular" + } +} diff --git a/site/content/resources/videos/youtube/M4ap4uNzptg/data.captions.json b/site/content/resources/videos/youtube/M4ap4uNzptg/data.captions.json new file mode 100644 index 000000000..a7063caaf --- /dev/null +++ b/site/content/resources/videos/youtube/M4ap4uNzptg/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-01-19T06:51:26.902176Z", + "captionId": "AUieDaaIYuc38HOI4yWfgFJTZ_qb3T3FknDRUCI3X8Xw4iMtNp8", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/MO7O6kTmufc/data.captions.json b/site/content/resources/videos/youtube/MO7O6kTmufc/data.captions.json new file mode 100644 index 000000000..f8ac9f199 --- /dev/null +++ b/site/content/resources/videos/youtube/MO7O6kTmufc/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-09-12T13:50:16.09329Z", + "captionId": "AUieDabODyywQP9n8EhvUXXbJQh9K4mHbyJtdv_auXAoRh_tQ2g", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/PaUciBmqCsU/data.captions.json b/site/content/resources/videos/youtube/PaUciBmqCsU/data.captions.json new file mode 100644 index 000000000..8db6f04f7 --- /dev/null +++ b/site/content/resources/videos/youtube/PaUciBmqCsU/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-06-24T07:08:07.041252Z", + "captionId": "AUieDaYejn54ZQBVDcIVwtfRBFCJ0yhduP_LQIcyOhtxLA93CS8", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/Q2Fo3sM6BVo/data.captions.json b/site/content/resources/videos/youtube/Q2Fo3sM6BVo/data.captions.json new file mode 100644 index 000000000..df6b5c66c --- /dev/null +++ b/site/content/resources/videos/youtube/Q2Fo3sM6BVo/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2022-10-19T02:54:51.362039Z", + "captionId": "AUieDaYyfyVjJz6o-SrbnZyrit-6MSrob8nIU7z8FmQz4Ezkqko", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/Qko_93YAV70/data.captions.json b/site/content/resources/videos/youtube/Qko_93YAV70/data.captions.json new file mode 100644 index 000000000..d6c30abe2 --- /dev/null +++ b/site/content/resources/videos/youtube/Qko_93YAV70/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-08-13T07:13:10.642942Z", + "captionId": "AUieDab1QnFfQjQJ6qYyWL7KQiufVmtVEBWLdtiU6WI7QBZ7xaI", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/UOzrABhafx0/data.captions.json b/site/content/resources/videos/youtube/UOzrABhafx0/data.captions.json new file mode 100644 index 000000000..71ddc1a6b --- /dev/null +++ b/site/content/resources/videos/youtube/UOzrABhafx0/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-11-27T07:17:33.041682Z", + "captionId": "AUieDaaXQDOs6sG1ecV0kMbRqrPtNZ6Jy5iJ377RAo_elDsyCOI", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/WVNiLx3QHLg/data.captions.json b/site/content/resources/videos/youtube/WVNiLx3QHLg/data.captions.json new file mode 100644 index 000000000..3cf8cb019 --- /dev/null +++ b/site/content/resources/videos/youtube/WVNiLx3QHLg/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-04-25T06:39:47.332998Z", + "captionId": "AUieDaaCNAY1QiwLFhosfBC7eM0bNphEHOnhTd704L_-clBOByM", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/Xa_e2EnLEV4/data.captions.json b/site/content/resources/videos/youtube/Xa_e2EnLEV4/data.captions.json new file mode 100644 index 000000000..2fe53ed16 --- /dev/null +++ b/site/content/resources/videos/youtube/Xa_e2EnLEV4/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-03-01T02:53:50.227532Z", + "captionId": "AUieDaZQOivreH1nBWsl76HOqR9Csxx47zC4XUU4OuymEvLku4c", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/ZXDBoq7JUSw/data.captions.json b/site/content/resources/videos/youtube/ZXDBoq7JUSw/data.captions.json new file mode 100644 index 000000000..0a213e63b --- /dev/null +++ b/site/content/resources/videos/youtube/ZXDBoq7JUSw/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-07-26T04:35:10.555952Z", + "captionId": "AUieDaYZ4ZfRkauzXX00wvUgis8OEJJ6kViTkb_jal1adTYFxAA", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/fUj1k47pDg8/data.captions.json b/site/content/resources/videos/youtube/fUj1k47pDg8/data.captions.json new file mode 100644 index 000000000..b958e9329 --- /dev/null +++ b/site/content/resources/videos/youtube/fUj1k47pDg8/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-08-13T07:21:25.919893Z", + "captionId": "AUieDaY9ZgMdTtSF8cEguERyT1WdETJM68d6WGp6Orc0e89lXrc", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/gRnYXuxo9_w/data.captions.json b/site/content/resources/videos/youtube/gRnYXuxo9_w/data.captions.json new file mode 100644 index 000000000..bd4575fc6 --- /dev/null +++ b/site/content/resources/videos/youtube/gRnYXuxo9_w/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-09-15T20:33:49.74929Z", + "captionId": "AUieDaYLie9j33AppEGMu06GvOhRjOqyAxjo4iO3M26iG05-7as", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/gjrvSJWE0Gk/data.captions.json b/site/content/resources/videos/youtube/gjrvSJWE0Gk/data.captions.json new file mode 100644 index 000000000..981acc731 --- /dev/null +++ b/site/content/resources/videos/youtube/gjrvSJWE0Gk/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-02-06T13:54:25.111482Z", + "captionId": "AUieDaaBPQxjU9ABCBLCijNpO7u16qsBc-vsTbOr9JU53J-5Cqo", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/hB8oQPpderI/data.captions.json b/site/content/resources/videos/youtube/hB8oQPpderI/data.captions.json new file mode 100644 index 000000000..d69a2205f --- /dev/null +++ b/site/content/resources/videos/youtube/hB8oQPpderI/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-04-26T00:37:48.94657Z", + "captionId": "AUieDaZmtn4J75DopkVav148dHE-mR7oY_iU5vldaDR6VtvEDhY", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/hu80qqzaDx0/data.captions.json b/site/content/resources/videos/youtube/hu80qqzaDx0/data.captions.json new file mode 100644 index 000000000..8f94e7284 --- /dev/null +++ b/site/content/resources/videos/youtube/hu80qqzaDx0/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-09-11T13:51:35.006175Z", + "captionId": "AUieDaY11CKQ9ZJEDHRlPZK7oTRrF638UXBZcSV-9Zin32DKRXA", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/iT7ZtgNJbT0/data.captions.json b/site/content/resources/videos/youtube/iT7ZtgNJbT0/data.captions.json new file mode 100644 index 000000000..cee6afdfd --- /dev/null +++ b/site/content/resources/videos/youtube/iT7ZtgNJbT0/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-06-20T09:57:11.274193Z", + "captionId": "AUieDab9nfn0-i5mBuGrqIhtfhbVyXC85okSYms8W9YQGfmZBNU", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/jmU91ClcSqA/data.captions.json b/site/content/resources/videos/youtube/jmU91ClcSqA/data.captions.json new file mode 100644 index 000000000..f1ee38064 --- /dev/null +++ b/site/content/resources/videos/youtube/jmU91ClcSqA/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-05-11T12:47:45.600874Z", + "captionId": "AUieDaZIiFXlGGT8EORidEFM7H9zj_ABngmoJIF_FB7czHjOmgM", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/nY4tmtGKO6I/data.captions.json b/site/content/resources/videos/youtube/nY4tmtGKO6I/data.captions.json new file mode 100644 index 000000000..49ac6183c --- /dev/null +++ b/site/content/resources/videos/youtube/nY4tmtGKO6I/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-11-27T08:15:05.844441Z", + "captionId": "AUieDaalENjg0gi_WLtxaClbuaZd6zMyoU3Zv61U8C8jpa8KMJM", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/nfTAYRLAaYI/data.captions.json b/site/content/resources/videos/youtube/nfTAYRLAaYI/data.captions.json new file mode 100644 index 000000000..449aa3596 --- /dev/null +++ b/site/content/resources/videos/youtube/nfTAYRLAaYI/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-06-24T06:53:58.333031Z", + "captionId": "AUieDaZ-4NmBLq4qvAHjrJoSO1RvM8bt2060Hrn8L3e-5Qayu3Y", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/o-wVeh3CIVI/data.captions.json b/site/content/resources/videos/youtube/o-wVeh3CIVI/data.captions.json new file mode 100644 index 000000000..456c9e87f --- /dev/null +++ b/site/content/resources/videos/youtube/o-wVeh3CIVI/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-05-11T12:44:35.590018Z", + "captionId": "AUieDaY_xweGK3ia13tWef3t8vLBefpHZMxvcbf0lP7a-SlJKWA", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/r1wvCUxeWcE/data.captions.json b/site/content/resources/videos/youtube/r1wvCUxeWcE/data.captions.json new file mode 100644 index 000000000..197319caf --- /dev/null +++ b/site/content/resources/videos/youtube/r1wvCUxeWcE/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-08-16T07:07:58.960406Z", + "captionId": "AUieDabvqcWCUbB2lQ-7A_aw6ipG8wOHCOkevsuX7h992NnCmM8", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/rX258aqTf_w/data.captions.json b/site/content/resources/videos/youtube/rX258aqTf_w/data.captions.json new file mode 100644 index 000000000..9ffb9ca90 --- /dev/null +++ b/site/content/resources/videos/youtube/rX258aqTf_w/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-01-06T05:01:25.562386Z", + "captionId": "AUieDaZNtbTC5uwMt9RlyhjvbFqMh5GYNIzV0uZSmAKM5eXE5DY", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/sBBKKlfwlrA/data.captions.json b/site/content/resources/videos/youtube/sBBKKlfwlrA/data.captions.json new file mode 100644 index 000000000..ff76ebfb7 --- /dev/null +++ b/site/content/resources/videos/youtube/sBBKKlfwlrA/data.captions.json @@ -0,0 +1,18 @@ +[ + { + "lastUpdated": "2022-08-24T00:51:31.980408Z", + "captionId": "AUieDaY1JE4iVSOj5B2rcZ_V6bWQy3XvlNGUoZ6tX6ysF8X1nkI", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" + }, + { + "lastUpdated": "2022-08-23T16:52:26.606933Z", + "captionId": "AUieDaa8nL39pzrXWZQ-PFsgyFXxW1aCjX5-vQWYkwvXxvfw", + "status": "serving", + "trackKind": "standard", + "isDraft": false, + "language": "en-GB" + } +] diff --git a/site/content/resources/videos/youtube/sIhG2i7frpE/data.captions.json b/site/content/resources/videos/youtube/sIhG2i7frpE/data.captions.json new file mode 100644 index 000000000..4f48abbd5 --- /dev/null +++ b/site/content/resources/videos/youtube/sIhG2i7frpE/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-08-15T07:08:28.177105Z", + "captionId": "AUieDaYv8G6pTthunnXf9Dt69ErqPuMn_Ypfo5V-12RXW9VJBuk", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/tPX-wc6pG7M/data.captions.json b/site/content/resources/videos/youtube/tPX-wc6pG7M/data.captions.json new file mode 100644 index 000000000..87165126e --- /dev/null +++ b/site/content/resources/videos/youtube/tPX-wc6pG7M/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-09-28T10:40:52.738004Z", + "captionId": "AUieDaaTDISYca8xat0iFPZgHInCXUrURVSTH_vnYz3GvrTzbwo", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/utI-1HVpeSU/data.captions.json b/site/content/resources/videos/youtube/utI-1HVpeSU/data.captions.json new file mode 100644 index 000000000..e4f044a15 --- /dev/null +++ b/site/content/resources/videos/youtube/utI-1HVpeSU/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-10-11T12:24:55.576901Z", + "captionId": "AUieDaaxxM5t8rZzGC4Kffq6o195Rlvpl8GjUuAcKM1bUSWHCYU", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} From 5a31ffd7965ed054747405e91d982d83c4679dee Mon Sep 17 00:00:00 2001 From: "Martin Hinshelwood nkdAgility.com" Date: Tue, 26 Nov 2024 14:36:22 +0000 Subject: [PATCH 3/4] rename captions to new format --- .../-Mz9cH0uiTQ/{transcript.en.srt => data.captions.en.srt} | 0 .../-T1e8hjLt24/{transcript.en.srt => data.captions.en.srt} | 0 .../-pW6YDYEO20/{transcript.en.srt => data.captions.en.srt} | 0 .../-xMY9Heanjk/{transcript.en.srt => data.captions.en.srt} | 0 .../-xrtaW5NlP0/{transcript.en.srt => data.captions.en.srt} | 0 .../00V7BJJtMT0/{transcript.en.srt => data.captions.en.srt} | 0 .../0fz91w-_6vE/{transcript.en.srt => data.captions.en.srt} | 0 .../1-W64WdSbF4/{transcript.en.srt => data.captions.en.srt} | 0 .../17qTGonSsbM/{transcript.en.srt => data.captions.en.srt} | 0 .../1AO6FFBlE4Y/{transcript.en.srt => data.captions.en.srt} | 0 .../1M2_AVqoRbs/{transcript.en.srt => data.captions.en.srt} | 0 .../1TaIjFL-0o8/{transcript.en.srt => data.captions.en.srt} | 0 .../1VzbtRspOsM/{transcript.en.srt => data.captions.en.srt} | 0 .../1cZABFi7gdc/{transcript.en.srt => data.captions.en.srt} | 0 .../1ePkQeCVAlY/{transcript.en.srt => data.captions.en.srt} | 0 .../2-AyrLPg-8Y/{transcript.en.srt => data.captions.en.srt} | 0 .../21k6OgxeKjo/{transcript.en.srt => data.captions.en.srt} | 0 .../220tyMrhSFE/{transcript.en.srt => data.captions.en.srt} | 0 .../221BbTUqw7Q/{transcript.en.srt => data.captions.en.srt} | 0 .../2AJ2JHdMRCc/{transcript.en.srt => data.captions.en.srt} | 0 .../2ASLFX2i9_g/{transcript.en.srt => data.captions.en.srt} | 0 .../2Cy9MxXiiOo/{transcript.en.srt => data.captions.en.srt} | 0 .../2I3S32Sk8-c/{transcript.en.srt => data.captions.en.srt} | 0 .../2IuL2Qvvbfk/{transcript.en.srt => data.captions.en.srt} | 0 .../2KovKxNpZpg/{transcript.en.srt => data.captions.en.srt} | 0 .../2QojN_k3JZ4/{transcript.en.srt => data.captions.en.srt} | 0 .../2Sal3OneFfo/{transcript.en.srt => data.captions.en.srt} | 0 .../2_CowcUpzAA/{transcript.en.srt => data.captions.en.srt} | 0 .../2cSsuEzGkvU/{transcript.en.srt => data.captions.en.srt} | 0 .../2k1726k9zvg/{transcript.en.srt => data.captions.en.srt} | 0 .../2tlzlsgovy0/{transcript.en.srt => data.captions.en.srt} | 0 .../3-LDBJppxvo/{transcript.en.srt => data.captions.en.srt} | 0 .../3AVlBmOATHA/{transcript.en.srt => data.captions.en.srt} | 0 .../3CgKmunwiSQ/{transcript.en.srt => data.captions.en.srt} | 0 .../3NtGxZfuBnU/{transcript.en.srt => data.captions.en.srt} | 0 .../3S0zghhDPwc/{transcript.en.srt => data.captions.en.srt} | 0 .../3XsOseKG57g/{transcript.en.srt => data.captions.en.srt} | 0 .../3YBrq-cle_w/{transcript.en.srt => data.captions.en.srt} | 0 .../3jYFD-6_kZk/{transcript.en.srt => data.captions.en.srt} | 0 .../4FTEJ4tDQqU/{transcript.en.srt => data.captions.en.srt} | 0 .../4Tjc5uEtM7M/{transcript.en.srt => data.captions.en.srt} | 0 .../4YixczaREUw/{transcript.en.srt => data.captions.en.srt} | 0 .../4fHBoSvTrrM/{transcript.en.srt => data.captions.en.srt} | 0 .../4kqM1U7y1ZM/{transcript.en.srt => data.captions.en.srt} | 0 .../4mkwTMMtKls/{transcript.en.srt => data.captions.en.srt} | 0 .../4nhKXAgutZw/{transcript.en.srt => data.captions.en.srt} | 0 .../4p5xeJZXvcE/{transcript.en.srt => data.captions.en.srt} | 0 .../4scE4acfewk/{transcript.en.srt => data.captions.en.srt} | 0 .../4zGsmQFWFpo/{transcript.en.srt => data.captions.en.srt} | 0 .../54-Zw2A7zEM/{transcript.en.srt => data.captions.en.srt} | 0 .../56hWAHhbrvs/{transcript.en.srt => data.captions.en.srt} | 0 .../56nUC8jR2v8/{transcript.en.srt => data.captions.en.srt} | 0 .../5EryGepZu8o/{transcript.de.srt => data.captions.de.srt} | 0 .../5EryGepZu8o/{transcript.en-GB.srt => data.captions.en-GB.srt} | 0 .../5EryGepZu8o/{transcript.en.srt => data.captions.en.srt} | 0 .../5EryGepZu8o/{transcript.es.srt => data.captions.es.srt} | 0 .../5EryGepZu8o/{transcript.pt.srt => data.captions.pt.srt} | 0 .../5EryGepZu8o/{transcript.zh.srt => data.captions.zh.srt} | 0 .../5H9rOGhTB88/{transcript.en.srt => data.captions.en.srt} | 0 .../5IBKxYLA494/{transcript.en.srt => data.captions.en.srt} | 0 .../5RJpAeKMRzs/{transcript.en.srt => data.captions.en.srt} | 0 .../5ZRMBfV9zpI/{transcript.en-GB.srt => data.captions.en-GB.srt} | 0 .../5ZRMBfV9zpI/{transcript.en.srt => data.captions.en.srt} | 0 .../5bgcpPqcGlw/{transcript.en.srt => data.captions.en.srt} | 0 .../5bgfme-Pspw/{transcript.en.srt => data.captions.en.srt} | 0 .../5qtS7DYGi5Q/{transcript.en.srt => data.captions.en.srt} | 0 .../5s9vi8PiFM4/{transcript.en.srt => data.captions.en.srt} | 0 .../66NuAjzWreY/{transcript.en.srt => data.captions.en.srt} | 0 .../6D6QTjSrJ14/{transcript.en.srt => data.captions.en.srt} | 0 .../6S9LGyxU2cQ/{transcript.en.srt => data.captions.en.srt} | 0 .../6SSgETsq8IQ/{transcript.en-GB.srt => data.captions.en-GB.srt} | 0 .../6SSgETsq8IQ/{transcript.en.srt => data.captions.en.srt} | 0 .../6cczVAbOMao/{transcript.en.srt => data.captions.en.srt} | 0 .../76mGfF0KoD0/{transcript.en.srt => data.captions.en.srt} | 0 .../79M9edUp_5c/{transcript.en.srt => data.captions.en.srt} | 0 .../7O-LmzmxUkE/{transcript.en.srt => data.captions.en.srt} | 0 .../7R9_bYOswhk/{transcript.en.srt => data.captions.en.srt} | 0 .../7SdBfGWCG8Q/{transcript.en.srt => data.captions.en.srt} | 0 .../7UZsdsD23rs/{transcript.en.srt => data.captions.en.srt} | 0 .../7VBtGTlkAdM/{transcript.en.srt => data.captions.en.srt} | 0 .../82_yTGt9pLM/{transcript.en.srt => data.captions.en.srt} | 0 .../8F3SK4sPj3M/{transcript.en.srt => data.captions.en.srt} | 0 .../8aIUldVDtGw/{transcript.en.srt => data.captions.en.srt} | 0 .../8gAWNn2RQgU/{transcript.en.srt => data.captions.en.srt} | 0 .../8nQ0VJ1CdqU/{transcript.en.srt => data.captions.en.srt} | 0 .../8uPjXXt5lo4/{transcript.en.srt => data.captions.en.srt} | 0 .../8vu-AXJwwYk/{transcript.en.srt => data.captions.en.srt} | 0 .../96iDY11yOjc/{transcript.en.srt => data.captions.en.srt} | 0 .../9CkvfRic8e0/{transcript.en.srt => data.captions.en.srt} | 0 .../9HxMS_fg6Kw/{transcript.en.srt => data.captions.en.srt} | 0 .../9PBpgfsojQI/{transcript.en.srt => data.captions.en.srt} | 0 .../9TbjaO1_Nz8/{transcript.en.srt => data.captions.en.srt} | 0 .../9VHasQBlQc8/{transcript.en.srt => data.captions.en.srt} | 0 .../9kZicmokyZ4/{transcript.en.srt => data.captions.en.srt} | 0 .../9z9BgSi2zeA/{transcript.en.srt => data.captions.en.srt} | 0 .../A0Y-zySHXyc/{transcript.en.srt => data.captions.en.srt} | 0 .../A8URbBCljnQ/{transcript.en.srt => data.captions.en.srt} | 0 .../AaCM_pmZb4k/{transcript.en.srt => data.captions.en.srt} | 0 .../_2ZH7vbKu7Y/{transcript.en.srt => data.captions.en.srt} | 0 .../_5daB0lJpdc/{transcript.de.srt => data.captions.de.srt} | 0 .../_5daB0lJpdc/{transcript.en.srt => data.captions.en.srt} | 0 .../_5daB0lJpdc/{transcript.es.srt => data.captions.es.srt} | 0 .../_5daB0lJpdc/{transcript.fr.srt => data.captions.fr.srt} | 0 .../_5daB0lJpdc/{transcript.pt.srt => data.captions.pt.srt} | 0 .../_5daB0lJpdc/{transcript.ru.srt => data.captions.ru.srt} | 0 .../_5daB0lJpdc/{transcript.zh.srt => data.captions.zh.srt} | 0 .../_Eer3X3Z_LE/{transcript.en.srt => data.captions.en.srt} | 0 .../_FtFqnZHCjk/{transcript.en.srt => data.captions.en.srt} | 0 .../_WplvWtaxtQ/{transcript.en.srt => data.captions.en.srt} | 0 .../_bjNHN4PI9s/{transcript.en.srt => data.captions.en.srt} | 0 .../_fFs-0GL1CA/{transcript.en.srt => data.captions.en.srt} | 0 .../_rJoehoYIVA/{transcript.en.srt => data.captions.en.srt} | 0 .../a2sXBMPHl2Y/{transcript.en.srt => data.captions.en.srt} | 0 .../a6aw7xmS2oc/{transcript.en.srt => data.captions.en.srt} | 0 114 files changed, 0 insertions(+), 0 deletions(-) rename site/content/resources/videos/youtube/-Mz9cH0uiTQ/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/-T1e8hjLt24/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/-pW6YDYEO20/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/-xMY9Heanjk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/-xrtaW5NlP0/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/00V7BJJtMT0/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/0fz91w-_6vE/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1-W64WdSbF4/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/17qTGonSsbM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1AO6FFBlE4Y/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1M2_AVqoRbs/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1TaIjFL-0o8/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1VzbtRspOsM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1cZABFi7gdc/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/1ePkQeCVAlY/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2-AyrLPg-8Y/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/21k6OgxeKjo/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/220tyMrhSFE/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/221BbTUqw7Q/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2AJ2JHdMRCc/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2ASLFX2i9_g/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2Cy9MxXiiOo/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2I3S32Sk8-c/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2IuL2Qvvbfk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2KovKxNpZpg/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2QojN_k3JZ4/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2Sal3OneFfo/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2_CowcUpzAA/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2cSsuEzGkvU/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2k1726k9zvg/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/2tlzlsgovy0/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3-LDBJppxvo/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3AVlBmOATHA/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3CgKmunwiSQ/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3NtGxZfuBnU/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3S0zghhDPwc/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3XsOseKG57g/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3YBrq-cle_w/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/3jYFD-6_kZk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4FTEJ4tDQqU/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4Tjc5uEtM7M/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4YixczaREUw/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4fHBoSvTrrM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4kqM1U7y1ZM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4mkwTMMtKls/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4nhKXAgutZw/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4p5xeJZXvcE/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4scE4acfewk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/4zGsmQFWFpo/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/54-Zw2A7zEM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/56hWAHhbrvs/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/56nUC8jR2v8/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5EryGepZu8o/{transcript.de.srt => data.captions.de.srt} (100%) rename site/content/resources/videos/youtube/5EryGepZu8o/{transcript.en-GB.srt => data.captions.en-GB.srt} (100%) rename site/content/resources/videos/youtube/5EryGepZu8o/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5EryGepZu8o/{transcript.es.srt => data.captions.es.srt} (100%) rename site/content/resources/videos/youtube/5EryGepZu8o/{transcript.pt.srt => data.captions.pt.srt} (100%) rename site/content/resources/videos/youtube/5EryGepZu8o/{transcript.zh.srt => data.captions.zh.srt} (100%) rename site/content/resources/videos/youtube/5H9rOGhTB88/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5IBKxYLA494/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5RJpAeKMRzs/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5ZRMBfV9zpI/{transcript.en-GB.srt => data.captions.en-GB.srt} (100%) rename site/content/resources/videos/youtube/5ZRMBfV9zpI/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5bgcpPqcGlw/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5bgfme-Pspw/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5qtS7DYGi5Q/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/5s9vi8PiFM4/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/66NuAjzWreY/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/6D6QTjSrJ14/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/6S9LGyxU2cQ/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/6SSgETsq8IQ/{transcript.en-GB.srt => data.captions.en-GB.srt} (100%) rename site/content/resources/videos/youtube/6SSgETsq8IQ/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/6cczVAbOMao/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/76mGfF0KoD0/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/79M9edUp_5c/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/7O-LmzmxUkE/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/7R9_bYOswhk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/7SdBfGWCG8Q/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/7UZsdsD23rs/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/7VBtGTlkAdM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/82_yTGt9pLM/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/8F3SK4sPj3M/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/8aIUldVDtGw/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/8gAWNn2RQgU/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/8nQ0VJ1CdqU/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/8uPjXXt5lo4/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/8vu-AXJwwYk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/96iDY11yOjc/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9CkvfRic8e0/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9HxMS_fg6Kw/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9PBpgfsojQI/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9TbjaO1_Nz8/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9VHasQBlQc8/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9kZicmokyZ4/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/9z9BgSi2zeA/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/A0Y-zySHXyc/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/A8URbBCljnQ/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/AaCM_pmZb4k/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_2ZH7vbKu7Y/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.de.srt => data.captions.de.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.es.srt => data.captions.es.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.fr.srt => data.captions.fr.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.pt.srt => data.captions.pt.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.ru.srt => data.captions.ru.srt} (100%) rename site/content/resources/videos/youtube/_5daB0lJpdc/{transcript.zh.srt => data.captions.zh.srt} (100%) rename site/content/resources/videos/youtube/_Eer3X3Z_LE/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_FtFqnZHCjk/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_WplvWtaxtQ/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_bjNHN4PI9s/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_fFs-0GL1CA/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/_rJoehoYIVA/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/a2sXBMPHl2Y/{transcript.en.srt => data.captions.en.srt} (100%) rename site/content/resources/videos/youtube/a6aw7xmS2oc/{transcript.en.srt => data.captions.en.srt} (100%) diff --git a/site/content/resources/videos/youtube/-Mz9cH0uiTQ/transcript.en.srt b/site/content/resources/videos/youtube/-Mz9cH0uiTQ/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/-Mz9cH0uiTQ/transcript.en.srt rename to site/content/resources/videos/youtube/-Mz9cH0uiTQ/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/-T1e8hjLt24/transcript.en.srt b/site/content/resources/videos/youtube/-T1e8hjLt24/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/-T1e8hjLt24/transcript.en.srt rename to site/content/resources/videos/youtube/-T1e8hjLt24/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/-pW6YDYEO20/transcript.en.srt b/site/content/resources/videos/youtube/-pW6YDYEO20/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/-pW6YDYEO20/transcript.en.srt rename to site/content/resources/videos/youtube/-pW6YDYEO20/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/-xMY9Heanjk/transcript.en.srt b/site/content/resources/videos/youtube/-xMY9Heanjk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/-xMY9Heanjk/transcript.en.srt rename to site/content/resources/videos/youtube/-xMY9Heanjk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/-xrtaW5NlP0/transcript.en.srt b/site/content/resources/videos/youtube/-xrtaW5NlP0/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/-xrtaW5NlP0/transcript.en.srt rename to site/content/resources/videos/youtube/-xrtaW5NlP0/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/00V7BJJtMT0/transcript.en.srt b/site/content/resources/videos/youtube/00V7BJJtMT0/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/00V7BJJtMT0/transcript.en.srt rename to site/content/resources/videos/youtube/00V7BJJtMT0/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/0fz91w-_6vE/transcript.en.srt b/site/content/resources/videos/youtube/0fz91w-_6vE/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/0fz91w-_6vE/transcript.en.srt rename to site/content/resources/videos/youtube/0fz91w-_6vE/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1-W64WdSbF4/transcript.en.srt b/site/content/resources/videos/youtube/1-W64WdSbF4/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1-W64WdSbF4/transcript.en.srt rename to site/content/resources/videos/youtube/1-W64WdSbF4/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/17qTGonSsbM/transcript.en.srt b/site/content/resources/videos/youtube/17qTGonSsbM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/17qTGonSsbM/transcript.en.srt rename to site/content/resources/videos/youtube/17qTGonSsbM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1AO6FFBlE4Y/transcript.en.srt b/site/content/resources/videos/youtube/1AO6FFBlE4Y/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1AO6FFBlE4Y/transcript.en.srt rename to site/content/resources/videos/youtube/1AO6FFBlE4Y/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1M2_AVqoRbs/transcript.en.srt b/site/content/resources/videos/youtube/1M2_AVqoRbs/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1M2_AVqoRbs/transcript.en.srt rename to site/content/resources/videos/youtube/1M2_AVqoRbs/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1TaIjFL-0o8/transcript.en.srt b/site/content/resources/videos/youtube/1TaIjFL-0o8/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1TaIjFL-0o8/transcript.en.srt rename to site/content/resources/videos/youtube/1TaIjFL-0o8/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1VzbtRspOsM/transcript.en.srt b/site/content/resources/videos/youtube/1VzbtRspOsM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1VzbtRspOsM/transcript.en.srt rename to site/content/resources/videos/youtube/1VzbtRspOsM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1cZABFi7gdc/transcript.en.srt b/site/content/resources/videos/youtube/1cZABFi7gdc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1cZABFi7gdc/transcript.en.srt rename to site/content/resources/videos/youtube/1cZABFi7gdc/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/1ePkQeCVAlY/transcript.en.srt b/site/content/resources/videos/youtube/1ePkQeCVAlY/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/1ePkQeCVAlY/transcript.en.srt rename to site/content/resources/videos/youtube/1ePkQeCVAlY/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2-AyrLPg-8Y/transcript.en.srt b/site/content/resources/videos/youtube/2-AyrLPg-8Y/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2-AyrLPg-8Y/transcript.en.srt rename to site/content/resources/videos/youtube/2-AyrLPg-8Y/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/21k6OgxeKjo/transcript.en.srt b/site/content/resources/videos/youtube/21k6OgxeKjo/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/21k6OgxeKjo/transcript.en.srt rename to site/content/resources/videos/youtube/21k6OgxeKjo/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/220tyMrhSFE/transcript.en.srt b/site/content/resources/videos/youtube/220tyMrhSFE/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/220tyMrhSFE/transcript.en.srt rename to site/content/resources/videos/youtube/220tyMrhSFE/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/221BbTUqw7Q/transcript.en.srt b/site/content/resources/videos/youtube/221BbTUqw7Q/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/221BbTUqw7Q/transcript.en.srt rename to site/content/resources/videos/youtube/221BbTUqw7Q/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2AJ2JHdMRCc/transcript.en.srt b/site/content/resources/videos/youtube/2AJ2JHdMRCc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2AJ2JHdMRCc/transcript.en.srt rename to site/content/resources/videos/youtube/2AJ2JHdMRCc/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2ASLFX2i9_g/transcript.en.srt b/site/content/resources/videos/youtube/2ASLFX2i9_g/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2ASLFX2i9_g/transcript.en.srt rename to site/content/resources/videos/youtube/2ASLFX2i9_g/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2Cy9MxXiiOo/transcript.en.srt b/site/content/resources/videos/youtube/2Cy9MxXiiOo/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2Cy9MxXiiOo/transcript.en.srt rename to site/content/resources/videos/youtube/2Cy9MxXiiOo/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2I3S32Sk8-c/transcript.en.srt b/site/content/resources/videos/youtube/2I3S32Sk8-c/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2I3S32Sk8-c/transcript.en.srt rename to site/content/resources/videos/youtube/2I3S32Sk8-c/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2IuL2Qvvbfk/transcript.en.srt b/site/content/resources/videos/youtube/2IuL2Qvvbfk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2IuL2Qvvbfk/transcript.en.srt rename to site/content/resources/videos/youtube/2IuL2Qvvbfk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2KovKxNpZpg/transcript.en.srt b/site/content/resources/videos/youtube/2KovKxNpZpg/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2KovKxNpZpg/transcript.en.srt rename to site/content/resources/videos/youtube/2KovKxNpZpg/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2QojN_k3JZ4/transcript.en.srt b/site/content/resources/videos/youtube/2QojN_k3JZ4/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2QojN_k3JZ4/transcript.en.srt rename to site/content/resources/videos/youtube/2QojN_k3JZ4/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2Sal3OneFfo/transcript.en.srt b/site/content/resources/videos/youtube/2Sal3OneFfo/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2Sal3OneFfo/transcript.en.srt rename to site/content/resources/videos/youtube/2Sal3OneFfo/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2_CowcUpzAA/transcript.en.srt b/site/content/resources/videos/youtube/2_CowcUpzAA/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2_CowcUpzAA/transcript.en.srt rename to site/content/resources/videos/youtube/2_CowcUpzAA/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2cSsuEzGkvU/transcript.en.srt b/site/content/resources/videos/youtube/2cSsuEzGkvU/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2cSsuEzGkvU/transcript.en.srt rename to site/content/resources/videos/youtube/2cSsuEzGkvU/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2k1726k9zvg/transcript.en.srt b/site/content/resources/videos/youtube/2k1726k9zvg/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2k1726k9zvg/transcript.en.srt rename to site/content/resources/videos/youtube/2k1726k9zvg/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/2tlzlsgovy0/transcript.en.srt b/site/content/resources/videos/youtube/2tlzlsgovy0/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/2tlzlsgovy0/transcript.en.srt rename to site/content/resources/videos/youtube/2tlzlsgovy0/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3-LDBJppxvo/transcript.en.srt b/site/content/resources/videos/youtube/3-LDBJppxvo/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3-LDBJppxvo/transcript.en.srt rename to site/content/resources/videos/youtube/3-LDBJppxvo/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3AVlBmOATHA/transcript.en.srt b/site/content/resources/videos/youtube/3AVlBmOATHA/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3AVlBmOATHA/transcript.en.srt rename to site/content/resources/videos/youtube/3AVlBmOATHA/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3CgKmunwiSQ/transcript.en.srt b/site/content/resources/videos/youtube/3CgKmunwiSQ/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3CgKmunwiSQ/transcript.en.srt rename to site/content/resources/videos/youtube/3CgKmunwiSQ/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3NtGxZfuBnU/transcript.en.srt b/site/content/resources/videos/youtube/3NtGxZfuBnU/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3NtGxZfuBnU/transcript.en.srt rename to site/content/resources/videos/youtube/3NtGxZfuBnU/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3S0zghhDPwc/transcript.en.srt b/site/content/resources/videos/youtube/3S0zghhDPwc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3S0zghhDPwc/transcript.en.srt rename to site/content/resources/videos/youtube/3S0zghhDPwc/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3XsOseKG57g/transcript.en.srt b/site/content/resources/videos/youtube/3XsOseKG57g/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3XsOseKG57g/transcript.en.srt rename to site/content/resources/videos/youtube/3XsOseKG57g/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3YBrq-cle_w/transcript.en.srt b/site/content/resources/videos/youtube/3YBrq-cle_w/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3YBrq-cle_w/transcript.en.srt rename to site/content/resources/videos/youtube/3YBrq-cle_w/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/3jYFD-6_kZk/transcript.en.srt b/site/content/resources/videos/youtube/3jYFD-6_kZk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/3jYFD-6_kZk/transcript.en.srt rename to site/content/resources/videos/youtube/3jYFD-6_kZk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4FTEJ4tDQqU/transcript.en.srt b/site/content/resources/videos/youtube/4FTEJ4tDQqU/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4FTEJ4tDQqU/transcript.en.srt rename to site/content/resources/videos/youtube/4FTEJ4tDQqU/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4Tjc5uEtM7M/transcript.en.srt b/site/content/resources/videos/youtube/4Tjc5uEtM7M/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4Tjc5uEtM7M/transcript.en.srt rename to site/content/resources/videos/youtube/4Tjc5uEtM7M/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4YixczaREUw/transcript.en.srt b/site/content/resources/videos/youtube/4YixczaREUw/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4YixczaREUw/transcript.en.srt rename to site/content/resources/videos/youtube/4YixczaREUw/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4fHBoSvTrrM/transcript.en.srt b/site/content/resources/videos/youtube/4fHBoSvTrrM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4fHBoSvTrrM/transcript.en.srt rename to site/content/resources/videos/youtube/4fHBoSvTrrM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4kqM1U7y1ZM/transcript.en.srt b/site/content/resources/videos/youtube/4kqM1U7y1ZM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4kqM1U7y1ZM/transcript.en.srt rename to site/content/resources/videos/youtube/4kqM1U7y1ZM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4mkwTMMtKls/transcript.en.srt b/site/content/resources/videos/youtube/4mkwTMMtKls/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4mkwTMMtKls/transcript.en.srt rename to site/content/resources/videos/youtube/4mkwTMMtKls/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4nhKXAgutZw/transcript.en.srt b/site/content/resources/videos/youtube/4nhKXAgutZw/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4nhKXAgutZw/transcript.en.srt rename to site/content/resources/videos/youtube/4nhKXAgutZw/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4p5xeJZXvcE/transcript.en.srt b/site/content/resources/videos/youtube/4p5xeJZXvcE/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4p5xeJZXvcE/transcript.en.srt rename to site/content/resources/videos/youtube/4p5xeJZXvcE/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4scE4acfewk/transcript.en.srt b/site/content/resources/videos/youtube/4scE4acfewk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4scE4acfewk/transcript.en.srt rename to site/content/resources/videos/youtube/4scE4acfewk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/4zGsmQFWFpo/transcript.en.srt b/site/content/resources/videos/youtube/4zGsmQFWFpo/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/4zGsmQFWFpo/transcript.en.srt rename to site/content/resources/videos/youtube/4zGsmQFWFpo/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/54-Zw2A7zEM/transcript.en.srt b/site/content/resources/videos/youtube/54-Zw2A7zEM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/54-Zw2A7zEM/transcript.en.srt rename to site/content/resources/videos/youtube/54-Zw2A7zEM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/56hWAHhbrvs/transcript.en.srt b/site/content/resources/videos/youtube/56hWAHhbrvs/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/56hWAHhbrvs/transcript.en.srt rename to site/content/resources/videos/youtube/56hWAHhbrvs/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/56nUC8jR2v8/transcript.en.srt b/site/content/resources/videos/youtube/56nUC8jR2v8/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/56nUC8jR2v8/transcript.en.srt rename to site/content/resources/videos/youtube/56nUC8jR2v8/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5EryGepZu8o/transcript.de.srt b/site/content/resources/videos/youtube/5EryGepZu8o/data.captions.de.srt similarity index 100% rename from site/content/resources/videos/youtube/5EryGepZu8o/transcript.de.srt rename to site/content/resources/videos/youtube/5EryGepZu8o/data.captions.de.srt diff --git a/site/content/resources/videos/youtube/5EryGepZu8o/transcript.en-GB.srt b/site/content/resources/videos/youtube/5EryGepZu8o/data.captions.en-GB.srt similarity index 100% rename from site/content/resources/videos/youtube/5EryGepZu8o/transcript.en-GB.srt rename to site/content/resources/videos/youtube/5EryGepZu8o/data.captions.en-GB.srt diff --git a/site/content/resources/videos/youtube/5EryGepZu8o/transcript.en.srt b/site/content/resources/videos/youtube/5EryGepZu8o/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5EryGepZu8o/transcript.en.srt rename to site/content/resources/videos/youtube/5EryGepZu8o/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5EryGepZu8o/transcript.es.srt b/site/content/resources/videos/youtube/5EryGepZu8o/data.captions.es.srt similarity index 100% rename from site/content/resources/videos/youtube/5EryGepZu8o/transcript.es.srt rename to site/content/resources/videos/youtube/5EryGepZu8o/data.captions.es.srt diff --git a/site/content/resources/videos/youtube/5EryGepZu8o/transcript.pt.srt b/site/content/resources/videos/youtube/5EryGepZu8o/data.captions.pt.srt similarity index 100% rename from site/content/resources/videos/youtube/5EryGepZu8o/transcript.pt.srt rename to site/content/resources/videos/youtube/5EryGepZu8o/data.captions.pt.srt diff --git a/site/content/resources/videos/youtube/5EryGepZu8o/transcript.zh.srt b/site/content/resources/videos/youtube/5EryGepZu8o/data.captions.zh.srt similarity index 100% rename from site/content/resources/videos/youtube/5EryGepZu8o/transcript.zh.srt rename to site/content/resources/videos/youtube/5EryGepZu8o/data.captions.zh.srt diff --git a/site/content/resources/videos/youtube/5H9rOGhTB88/transcript.en.srt b/site/content/resources/videos/youtube/5H9rOGhTB88/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5H9rOGhTB88/transcript.en.srt rename to site/content/resources/videos/youtube/5H9rOGhTB88/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5IBKxYLA494/transcript.en.srt b/site/content/resources/videos/youtube/5IBKxYLA494/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5IBKxYLA494/transcript.en.srt rename to site/content/resources/videos/youtube/5IBKxYLA494/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5RJpAeKMRzs/transcript.en.srt b/site/content/resources/videos/youtube/5RJpAeKMRzs/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5RJpAeKMRzs/transcript.en.srt rename to site/content/resources/videos/youtube/5RJpAeKMRzs/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5ZRMBfV9zpI/transcript.en-GB.srt b/site/content/resources/videos/youtube/5ZRMBfV9zpI/data.captions.en-GB.srt similarity index 100% rename from site/content/resources/videos/youtube/5ZRMBfV9zpI/transcript.en-GB.srt rename to site/content/resources/videos/youtube/5ZRMBfV9zpI/data.captions.en-GB.srt diff --git a/site/content/resources/videos/youtube/5ZRMBfV9zpI/transcript.en.srt b/site/content/resources/videos/youtube/5ZRMBfV9zpI/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5ZRMBfV9zpI/transcript.en.srt rename to site/content/resources/videos/youtube/5ZRMBfV9zpI/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5bgcpPqcGlw/transcript.en.srt b/site/content/resources/videos/youtube/5bgcpPqcGlw/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5bgcpPqcGlw/transcript.en.srt rename to site/content/resources/videos/youtube/5bgcpPqcGlw/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5bgfme-Pspw/transcript.en.srt b/site/content/resources/videos/youtube/5bgfme-Pspw/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5bgfme-Pspw/transcript.en.srt rename to site/content/resources/videos/youtube/5bgfme-Pspw/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5qtS7DYGi5Q/transcript.en.srt b/site/content/resources/videos/youtube/5qtS7DYGi5Q/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5qtS7DYGi5Q/transcript.en.srt rename to site/content/resources/videos/youtube/5qtS7DYGi5Q/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/5s9vi8PiFM4/transcript.en.srt b/site/content/resources/videos/youtube/5s9vi8PiFM4/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/5s9vi8PiFM4/transcript.en.srt rename to site/content/resources/videos/youtube/5s9vi8PiFM4/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/66NuAjzWreY/transcript.en.srt b/site/content/resources/videos/youtube/66NuAjzWreY/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/66NuAjzWreY/transcript.en.srt rename to site/content/resources/videos/youtube/66NuAjzWreY/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/6D6QTjSrJ14/transcript.en.srt b/site/content/resources/videos/youtube/6D6QTjSrJ14/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/6D6QTjSrJ14/transcript.en.srt rename to site/content/resources/videos/youtube/6D6QTjSrJ14/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/6S9LGyxU2cQ/transcript.en.srt b/site/content/resources/videos/youtube/6S9LGyxU2cQ/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/6S9LGyxU2cQ/transcript.en.srt rename to site/content/resources/videos/youtube/6S9LGyxU2cQ/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/6SSgETsq8IQ/transcript.en-GB.srt b/site/content/resources/videos/youtube/6SSgETsq8IQ/data.captions.en-GB.srt similarity index 100% rename from site/content/resources/videos/youtube/6SSgETsq8IQ/transcript.en-GB.srt rename to site/content/resources/videos/youtube/6SSgETsq8IQ/data.captions.en-GB.srt diff --git a/site/content/resources/videos/youtube/6SSgETsq8IQ/transcript.en.srt b/site/content/resources/videos/youtube/6SSgETsq8IQ/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/6SSgETsq8IQ/transcript.en.srt rename to site/content/resources/videos/youtube/6SSgETsq8IQ/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/6cczVAbOMao/transcript.en.srt b/site/content/resources/videos/youtube/6cczVAbOMao/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/6cczVAbOMao/transcript.en.srt rename to site/content/resources/videos/youtube/6cczVAbOMao/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/76mGfF0KoD0/transcript.en.srt b/site/content/resources/videos/youtube/76mGfF0KoD0/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/76mGfF0KoD0/transcript.en.srt rename to site/content/resources/videos/youtube/76mGfF0KoD0/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/79M9edUp_5c/transcript.en.srt b/site/content/resources/videos/youtube/79M9edUp_5c/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/79M9edUp_5c/transcript.en.srt rename to site/content/resources/videos/youtube/79M9edUp_5c/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/7O-LmzmxUkE/transcript.en.srt b/site/content/resources/videos/youtube/7O-LmzmxUkE/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/7O-LmzmxUkE/transcript.en.srt rename to site/content/resources/videos/youtube/7O-LmzmxUkE/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/7R9_bYOswhk/transcript.en.srt b/site/content/resources/videos/youtube/7R9_bYOswhk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/7R9_bYOswhk/transcript.en.srt rename to site/content/resources/videos/youtube/7R9_bYOswhk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/7SdBfGWCG8Q/transcript.en.srt b/site/content/resources/videos/youtube/7SdBfGWCG8Q/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/7SdBfGWCG8Q/transcript.en.srt rename to site/content/resources/videos/youtube/7SdBfGWCG8Q/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/7UZsdsD23rs/transcript.en.srt b/site/content/resources/videos/youtube/7UZsdsD23rs/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/7UZsdsD23rs/transcript.en.srt rename to site/content/resources/videos/youtube/7UZsdsD23rs/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/7VBtGTlkAdM/transcript.en.srt b/site/content/resources/videos/youtube/7VBtGTlkAdM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/7VBtGTlkAdM/transcript.en.srt rename to site/content/resources/videos/youtube/7VBtGTlkAdM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/82_yTGt9pLM/transcript.en.srt b/site/content/resources/videos/youtube/82_yTGt9pLM/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/82_yTGt9pLM/transcript.en.srt rename to site/content/resources/videos/youtube/82_yTGt9pLM/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/8F3SK4sPj3M/transcript.en.srt b/site/content/resources/videos/youtube/8F3SK4sPj3M/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/8F3SK4sPj3M/transcript.en.srt rename to site/content/resources/videos/youtube/8F3SK4sPj3M/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/8aIUldVDtGw/transcript.en.srt b/site/content/resources/videos/youtube/8aIUldVDtGw/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/8aIUldVDtGw/transcript.en.srt rename to site/content/resources/videos/youtube/8aIUldVDtGw/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/8gAWNn2RQgU/transcript.en.srt b/site/content/resources/videos/youtube/8gAWNn2RQgU/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/8gAWNn2RQgU/transcript.en.srt rename to site/content/resources/videos/youtube/8gAWNn2RQgU/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/8nQ0VJ1CdqU/transcript.en.srt b/site/content/resources/videos/youtube/8nQ0VJ1CdqU/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/8nQ0VJ1CdqU/transcript.en.srt rename to site/content/resources/videos/youtube/8nQ0VJ1CdqU/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/8uPjXXt5lo4/transcript.en.srt b/site/content/resources/videos/youtube/8uPjXXt5lo4/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/8uPjXXt5lo4/transcript.en.srt rename to site/content/resources/videos/youtube/8uPjXXt5lo4/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/8vu-AXJwwYk/transcript.en.srt b/site/content/resources/videos/youtube/8vu-AXJwwYk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/8vu-AXJwwYk/transcript.en.srt rename to site/content/resources/videos/youtube/8vu-AXJwwYk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/96iDY11yOjc/transcript.en.srt b/site/content/resources/videos/youtube/96iDY11yOjc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/96iDY11yOjc/transcript.en.srt rename to site/content/resources/videos/youtube/96iDY11yOjc/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9CkvfRic8e0/transcript.en.srt b/site/content/resources/videos/youtube/9CkvfRic8e0/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9CkvfRic8e0/transcript.en.srt rename to site/content/resources/videos/youtube/9CkvfRic8e0/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9HxMS_fg6Kw/transcript.en.srt b/site/content/resources/videos/youtube/9HxMS_fg6Kw/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9HxMS_fg6Kw/transcript.en.srt rename to site/content/resources/videos/youtube/9HxMS_fg6Kw/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9PBpgfsojQI/transcript.en.srt b/site/content/resources/videos/youtube/9PBpgfsojQI/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9PBpgfsojQI/transcript.en.srt rename to site/content/resources/videos/youtube/9PBpgfsojQI/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9TbjaO1_Nz8/transcript.en.srt b/site/content/resources/videos/youtube/9TbjaO1_Nz8/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9TbjaO1_Nz8/transcript.en.srt rename to site/content/resources/videos/youtube/9TbjaO1_Nz8/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9VHasQBlQc8/transcript.en.srt b/site/content/resources/videos/youtube/9VHasQBlQc8/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9VHasQBlQc8/transcript.en.srt rename to site/content/resources/videos/youtube/9VHasQBlQc8/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9kZicmokyZ4/transcript.en.srt b/site/content/resources/videos/youtube/9kZicmokyZ4/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9kZicmokyZ4/transcript.en.srt rename to site/content/resources/videos/youtube/9kZicmokyZ4/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/9z9BgSi2zeA/transcript.en.srt b/site/content/resources/videos/youtube/9z9BgSi2zeA/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/9z9BgSi2zeA/transcript.en.srt rename to site/content/resources/videos/youtube/9z9BgSi2zeA/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/A0Y-zySHXyc/transcript.en.srt b/site/content/resources/videos/youtube/A0Y-zySHXyc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/A0Y-zySHXyc/transcript.en.srt rename to site/content/resources/videos/youtube/A0Y-zySHXyc/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/A8URbBCljnQ/transcript.en.srt b/site/content/resources/videos/youtube/A8URbBCljnQ/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/A8URbBCljnQ/transcript.en.srt rename to site/content/resources/videos/youtube/A8URbBCljnQ/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/AaCM_pmZb4k/transcript.en.srt b/site/content/resources/videos/youtube/AaCM_pmZb4k/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/AaCM_pmZb4k/transcript.en.srt rename to site/content/resources/videos/youtube/AaCM_pmZb4k/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_2ZH7vbKu7Y/transcript.en.srt b/site/content/resources/videos/youtube/_2ZH7vbKu7Y/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_2ZH7vbKu7Y/transcript.en.srt rename to site/content/resources/videos/youtube/_2ZH7vbKu7Y/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.de.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.de.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.de.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.de.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.en.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.en.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.es.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.es.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.es.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.es.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.fr.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.fr.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.fr.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.fr.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.pt.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.pt.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.pt.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.pt.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.ru.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.ru.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.ru.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.ru.srt diff --git a/site/content/resources/videos/youtube/_5daB0lJpdc/transcript.zh.srt b/site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.zh.srt similarity index 100% rename from site/content/resources/videos/youtube/_5daB0lJpdc/transcript.zh.srt rename to site/content/resources/videos/youtube/_5daB0lJpdc/data.captions.zh.srt diff --git a/site/content/resources/videos/youtube/_Eer3X3Z_LE/transcript.en.srt b/site/content/resources/videos/youtube/_Eer3X3Z_LE/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_Eer3X3Z_LE/transcript.en.srt rename to site/content/resources/videos/youtube/_Eer3X3Z_LE/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_FtFqnZHCjk/transcript.en.srt b/site/content/resources/videos/youtube/_FtFqnZHCjk/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_FtFqnZHCjk/transcript.en.srt rename to site/content/resources/videos/youtube/_FtFqnZHCjk/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_WplvWtaxtQ/transcript.en.srt b/site/content/resources/videos/youtube/_WplvWtaxtQ/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_WplvWtaxtQ/transcript.en.srt rename to site/content/resources/videos/youtube/_WplvWtaxtQ/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_bjNHN4PI9s/transcript.en.srt b/site/content/resources/videos/youtube/_bjNHN4PI9s/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_bjNHN4PI9s/transcript.en.srt rename to site/content/resources/videos/youtube/_bjNHN4PI9s/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_fFs-0GL1CA/transcript.en.srt b/site/content/resources/videos/youtube/_fFs-0GL1CA/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_fFs-0GL1CA/transcript.en.srt rename to site/content/resources/videos/youtube/_fFs-0GL1CA/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/_rJoehoYIVA/transcript.en.srt b/site/content/resources/videos/youtube/_rJoehoYIVA/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/_rJoehoYIVA/transcript.en.srt rename to site/content/resources/videos/youtube/_rJoehoYIVA/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/a2sXBMPHl2Y/transcript.en.srt b/site/content/resources/videos/youtube/a2sXBMPHl2Y/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/a2sXBMPHl2Y/transcript.en.srt rename to site/content/resources/videos/youtube/a2sXBMPHl2Y/data.captions.en.srt diff --git a/site/content/resources/videos/youtube/a6aw7xmS2oc/transcript.en.srt b/site/content/resources/videos/youtube/a6aw7xmS2oc/data.captions.en.srt similarity index 100% rename from site/content/resources/videos/youtube/a6aw7xmS2oc/transcript.en.srt rename to site/content/resources/videos/youtube/a6aw7xmS2oc/data.captions.en.srt From a27fcc5e3c9193bdc3c1497ace30fd312d2ca4c1 Mon Sep 17 00:00:00 2001 From: "Martin Hinshelwood nkdAgility.com" Date: Tue, 26 Nov 2024 14:36:55 +0000 Subject: [PATCH 4/4] Update all captions manafests --- .powershell/build/Update-YoutubeChannelData.ps1 | 2 +- .../videos/youtube/3-LDBJppxvo/data.captions.json | 8 ++++++++ .../videos/youtube/Psc6nDD7Q9g/data.captions.json | 8 ++++++++ .../videos/youtube/V44iUwv0Jcg/data.captions.json | 8 ++++++++ .../videos/youtube/h5TG3MbP0QY/data.captions.json | 8 ++++++++ .../videos/youtube/kEywzkMhWl0/data.captions.json | 8 ++++++++ 6 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 site/content/resources/videos/youtube/3-LDBJppxvo/data.captions.json create mode 100644 site/content/resources/videos/youtube/Psc6nDD7Q9g/data.captions.json create mode 100644 site/content/resources/videos/youtube/V44iUwv0Jcg/data.captions.json create mode 100644 site/content/resources/videos/youtube/h5TG3MbP0QY/data.captions.json create mode 100644 site/content/resources/videos/youtube/kEywzkMhWl0/data.captions.json diff --git a/.powershell/build/Update-YoutubeChannelData.ps1 b/.powershell/build/Update-YoutubeChannelData.ps1 index f1d1140b6..5b0f49833 100644 --- a/.powershell/build/Update-YoutubeChannelData.ps1 +++ b/.powershell/build/Update-YoutubeChannelData.ps1 @@ -124,7 +124,7 @@ foreach ($video in $allVideosData) { foreach ($caption in $captionsData) { $captionId = $caption.captionId $language = $caption.language - $captionsFileName = "transcript.$language.srt" + $captionsFileName = "data.captions.$language.srt" $captionFilePath = Join-Path $videoDir $captionsFileName if (-not (Test-Path $captionFilePath)) { if ($captionsDownloadCount -lt $captionsDownloadLimit) { diff --git a/site/content/resources/videos/youtube/3-LDBJppxvo/data.captions.json b/site/content/resources/videos/youtube/3-LDBJppxvo/data.captions.json new file mode 100644 index 000000000..3547fd5b2 --- /dev/null +++ b/site/content/resources/videos/youtube/3-LDBJppxvo/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-06-24T14:43:07.972781Z", + "captionId": "AUieDaYm62k-dxPqcvuXloX5uKR1iArGj4xLBA80KA_akB__NsY", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/Psc6nDD7Q9g/data.captions.json b/site/content/resources/videos/youtube/Psc6nDD7Q9g/data.captions.json new file mode 100644 index 000000000..3419e162d --- /dev/null +++ b/site/content/resources/videos/youtube/Psc6nDD7Q9g/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-06-24T07:11:00.938769Z", + "captionId": "AUieDabd1R7Q5vJVdokvF5xpgMW5fgIUI-viYMPjQbabE2-Wg7c", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/V44iUwv0Jcg/data.captions.json b/site/content/resources/videos/youtube/V44iUwv0Jcg/data.captions.json new file mode 100644 index 000000000..6bd785403 --- /dev/null +++ b/site/content/resources/videos/youtube/V44iUwv0Jcg/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2024-08-14T07:07:36.407704Z", + "captionId": "AUieDabFbBGf5KJL_oSMBVOB1Cc2oV3ooRpQJ3MQi8rlyJyqEiE", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/h5TG3MbP0QY/data.captions.json b/site/content/resources/videos/youtube/h5TG3MbP0QY/data.captions.json new file mode 100644 index 000000000..8f87c35f4 --- /dev/null +++ b/site/content/resources/videos/youtube/h5TG3MbP0QY/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-06-19T15:50:52.511507Z", + "captionId": "AUieDaYsPrsPxHVyDMD3meW2agkIJDR-H7a7zuwHkrhk9CiZMHc", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +} diff --git a/site/content/resources/videos/youtube/kEywzkMhWl0/data.captions.json b/site/content/resources/videos/youtube/kEywzkMhWl0/data.captions.json new file mode 100644 index 000000000..782e93414 --- /dev/null +++ b/site/content/resources/videos/youtube/kEywzkMhWl0/data.captions.json @@ -0,0 +1,8 @@ +{ + "lastUpdated": "2023-04-14T12:41:00.982084Z", + "captionId": "AUieDabtGxztSAgbD1OhKpmrw6WM6pa28q-mAavgGq5sL9MW64U", + "status": "serving", + "trackKind": "asr", + "isDraft": false, + "language": "en" +}