Skip to content

Instantly share code, notes, and snippets.

@actionjack
actionjack / kill_all.groovy
Created April 29, 2024 15:01 — forked from steven-terrana/kill_all.groovy
[Kill All Builds] kill all queued and running jobs #Jenkins
import java.util.ArrayList
import hudson.model.*;
// Remove everything which is currently queued
def q = Jenkins.instance.queue
for (queued in Jenkins.instance.queue.items) {
q.cancel(queued.task)
}
// stop all the currently running jobs
@actionjack
actionjack / gist:096945c9816b047414ea56d3bc6e922a
Created January 18, 2024 21:57
Streamlining DevOps: The Power of Automated DORA Metrics and Actionable Thresholds
# Streamlining DevOps: The Power of Automated DORA Metrics and Actionable Thresholds
## Introduction
Welcome to the ever-evolving world of DevOps, where precision and agility are paramount. For professionals across the spectrum, from beginners to veterans, mastering DORA (DevOps Research and Assessment) metrics is a critical step. These metrics – Deployment Frequency, Lead Time for Changes, Change Failure Rate, and Time to Restore Service – act as key indicators of your DevOps health. However, the real magic happens when you automate these metrics and establish insightful thresholds to trigger actions. Let's delve into how this approach not only simplifies your process but significantly elevates your DevOps game.
## Why Opt for Automation?
### 1. **Real-Time Data for Proactive Management**
Imagine having a dashboard that updates you instantly on your team's performance. Automated DORA metrics provide these updates, enabling you to tackle issues promptly and maintain a streamlined workflow.
@actionjack
actionjack / gist:6cd422bf5a48803ff50ce5dacecd70d5
Created January 17, 2024 17:41
Incorporating Solo Work into Pairing-Based Teams: Striking the Right Balance
# Incorporating Solo Work into Pairing-Based Teams: Striking the Right Balance
**Introduction**
In the world of Agile and DevOps, pairing has established itself as a cornerstone practice, particularly in software development. Pair programming, where two developers work together at one workstation, is not just a technique to improve code quality but also an excellent way to share knowledge and foster team collaboration. However, it's crucial to recognize the importance of solo work in these environments. Balancing pairing with opportunities for individual work can lead to even greater productivity and job satisfaction. This blog explores how to effectively incorporate solo work into pairing-based teams.
**Understanding the Need for Solo Work**
Before we delve into strategies, it's important to understand why solo work is necessary even in a pairing-centric environment. Solo work offers several benefits:
@actionjack
actionjack / gist:05be6be0e6aad04b2a8a8e98567ad09e
Created January 16, 2024 15:44
Enhancing DevOps: Beyond DORA Metrics - A Holistic Measurement Strategy
**Title:**
"Enhancing DevOps: Beyond DORA Metrics - A Holistic Measurement Strategy"
**Introduction:**
Our previous exploration into the limitations of DORA (DevOps Research and Assessment) metrics highlighted their importance in measuring software development team performance while acknowledging their constraints. This follow-up post aims to expand on these insights, integrating real-world case studies and actionable strategies to create a more comprehensive approach to DevOps success measurement.
**1. Understanding DORA Metrics and Their Limitations:**
We revisit the core aspects of DORA metrics - their focus on deployment frequency, change lead time, change failure rate, and mean time to recover. We'll address common criticisms such as their potential for encouraging velocity over value, the risk of oversimplification, and the danger of 'gaming the system.'
**2. Real-World Case Studies:**
@actionjack
actionjack / gist:e670ddcefd6a723174bd436791048574
Created January 15, 2024 15:03
Navigating the Maintenance Mode of a Software Project: Best Practices and Strategies
**Introduction:**
In the ever-evolving landscape of software development, reaching the Maintenance Mode phase is both an achievement and a new challenge. This stage, often misunderstood, is where a software project transitions from active development of new features to a focus on supporting and enhancing the existing codebase. It’s a critical period that ensures the long-term success and sustainability of a software product. In this post, we’ll explore the best practices and strategies for effectively managing the Maintenance Mode of a software project.
**Understanding Maintenance Mode:**
Maintenance Mode is not about stagnation; it’s about stability and reliability. This phase typically involves:
1. **Bug Fixes and Minor Enhancements**: Addressing existing issues and making small improvements.
2. **Performance Optimization**: Enhancing the efficiency and responsiveness of the application.
3. **Security Updates**: Keeping the software secure against new vulnerabilities.
4. **Compatibility Maintenance**: Ens
@actionjack
actionjack / gist:03d74a0150a3545b29c3736b88461fe8
Created January 13, 2024 15:27
Understanding the Limitations of DORA Metrics in DevOps
# Understanding the Limitations of DORA Metrics in DevOps: A Balanced Perspective
## Introduction
In the rapidly evolving tech industry, the DORA (DevOps Research and Assessment) metrics have emerged as a popular tool for measuring software development team performance. However, as with any measurement system, it's crucial to understand its limitations. In this blog post, we'll explore some critiques of the DORA metrics and provide insights on how to use them effectively.
### The Emphasis on Velocity
DORA metrics often focus on velocity, gauging the frequency of code deployments. While this can indicate efficiency, it's not always a reliable measure of software quality or value. High deployment rates might not equate to meaningful contributions to the project or the end user.
### The Risk of Reductionism
Additionally, DORA metrics concentrate on a limited set of indicators, potentially oversimplifying the complex landscape of software development and delivery. This reductionist approach can obscure vital
# Bash best practices and style-guide
Just simple methods to keep the code clean.
Inspired by [progrium/bashstyle](https://github.com/progrium/bashstyle) and [Kfir Lavi post](http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/).
## Quick big rules
* All code goes in a function
* Always double quote variables
@actionjack
actionjack / gist:ef70853fad990f7cc62abff8c782b790
Created December 19, 2023 11:13
Bash script with concurrency control
#!/usr/bin/env bash
MAX_CONCURRENCY=10 # max task slots
sub_task() {
sleep $(( ( RANDOM % 10 ) + 1 ))
echo "Task $1 finished at $(date)"
}
mkfifo testfifo
@actionjack
actionjack / gist:d26122385b050b00476d8ca0c53d67b8
Created December 5, 2023 09:14
Judo Principles in DevOps: Leveraging Martial Arts for Agile Success
Applying judo techniques to DevOps may initially sound unconventional, but it's a useful metaphor for understanding and improving DevOps practices. Judo, a martial art known for its principle of using an opponent's force against them rather than directly opposing it, can offer valuable insights into DevOps processes. Here are a few ways to apply judo principles to DevOps:
Leverage Existing Momentum (Seiryoku Zen'yō - Maximum Efficiency with Minimum Effort): In DevOps, this translates to utilizing existing tools and processes efficiently rather than reinventing the wheel. For instance, if certain automation tools are already in place and working well, build upon them instead of replacing them without a substantial reason.
Adapt and Overcome (Jū no Ri - Flexibility): Just like a judo practitioner adapts to their opponent's movements, in DevOps, it's crucial to be flexible and responsive to changing requirements and environments. This could mean adapting to new technologies, altering workflows to accommodate t
# Source: https://gist.github.com/vfarcic/78c1d2a87baf31512b87a2254194b11c
###############################################################
# How To Create A Complete Internal Developer Platform (IDP)? #
# https://youtu.be/Rg98GoEHBd4 #
###############################################################
# Additional Info:
# - DevOps MUST Build Internal Developer Platform (IDP): https://youtu.be/j5i00z3QXyU
# - How To Create A "Proper" CLI With Shell And Charm Gum: https://youtu.be/U8zCHA-9VLA