The Curated Daily
← Back to the archiveDispatch · 5 min read
Dispatch

Defeating Git Rigour Fatigue with Jujutsu

By the editors·Tuesday, May 26, 2026·5 min read
A tired woman in a red sweater leans her head on a desk with a laptop, symbolizing workplace fatigue.
Photograph by Andrea Piacquadio · Pexels

In the fast-paced world of finance, precision and auditability are paramount. We rely on complex models, intricate algorithms, and vast datasets – all of which are built and maintained with code. Git, the ubiquitous version control system, is the cornerstone of modern financial software development. However, the very rigor intended to protect us can ironically become a source of errors and decreased productivity: Git Rigour Fatigue.

This article explores the phenomenon of Git rigour fatigue within the financial industry, and proposes a solution inspired by the martial art of Jujutsu – using your opponent’s (Git’s strictness) strength against itself. We’ll move beyond blindly following strict branching strategies and delve into a more nuanced, adaptable approach.

The Problem: Why Git Rigour Leads to Fatigue in Finance

The financial sector isn’t like building the next social media app. The stakes are significantly higher. A misplaced decimal, a logical error in a pricing model, or a vulnerability in trading software can lead to substantial financial losses, regulatory penalties, and reputational damage. Consequently, financial institutions often implement incredibly strict Git workflows designed to prevent these catastrophes. These commonly include:

  • Long-lived Feature Branches: Developers work on features for weeks or months in isolated branches.
  • Mandatory Code Reviews: Every line of code requires approval from multiple peers.
  • Extensive Testing Suites: Rigorous automated tests are expected before any merge.
  • Detailed Commit Messages: Every commit must adhere to a specific format, explaining why the change was made, not just what changed.
  • Strict Branching Models (e.g., Gitflow): Adherence to a pre-defined branching scheme is non-negotiable.

While these measures are well-intentioned, they can quickly lead to:

  • Context Switching Hell: Spending more time merging, resolving conflicts, and managing branches than actually writing code.
  • Review Bottlenecks: Code reviews become a roadblock, delaying releases and hindering innovation.
  • Reduced Ownership: Developers feel less connected to their code, leading to a decrease in quality.
  • Risk Aversion: Fear of violating process leads to smaller, less impactful changes.
  • Burnout: The sheer mental overhead of adhering to these rigid rules is exhausting.

This fatigue doesn’t just impact developer morale; it impacts the quality of the code. Developers, feeling pressured and overwhelmed, are more likely to make mistakes, take shortcuts, or avoid making changes altogether. Ironically, the very processes designed to prevent errors can increase the risk.

Introducing "Git Jujutsu": Adapting to the Flow

Jujutsu, a Japanese martial art, isn't about brute force. It's about using your opponent’s strength and momentum against them. Instead of rigidly opposing Git’s structure, Git Jujutsu advocates for strategically leveraging its flexibility to mitigate fatigue while maintaining security and auditability.

Here's how to apply the principles of Jujutsu to your Git workflow in a financial context:

1. Embrace Short-Lived Branches

The core principle. Instead of long-lived feature branches, aim for branches that last no more than a day or two. Break down large features into smaller, incremental changes. This reduces the scope of code reviews, simplifies merging, and minimizes the chances of conflicts.

  • Benefits: Faster feedback loops, reduced risk of integration issues, and a stronger sense of ownership.
  • Considerations: Requires more disciplined task breakdown and potentially more frequent deployments (which should be automated – see section 3).

2. Strategic Code Review – Quality over Quantity

Mandatory code review is essential, but it doesn't have to be a bottleneck.

  • Focus on Critical Code: Prioritize reviews for high-risk areas like pricing models, risk calculations, and security-sensitive code.
  • Automated Linting & Static Analysis: Use tools like https://example.com/ (a code quality tool) to automate the detection of basic errors and style violations, freeing up reviewers to focus on more complex issues.
  • Pair Programming: For particularly complex or critical code, consider pair programming, which provides real-time review and knowledge sharing.
  • Small, Frequent Reviews: Smaller pull requests are easier to review and understand, leading to more thorough and constructive feedback.

3. Automate Everything Possible

Automation is your ally in combating fatigue. Invest in robust CI/CD (Continuous Integration/Continuous Deployment) pipelines.

  • Automated Testing: Thorough unit, integration, and end-to-end tests are crucial. Automate their execution as part of every commit or pull request.
  • Automated Deployment: Automate the deployment process to minimize manual intervention and reduce the risk of errors. Tools like Jenkins, GitLab CI, or CircleCI can be extremely valuable.
  • Automated Documentation: Automatically generate documentation from code comments and commit messages.

4. The “Trunk-Based Development” Approach – A Jujutsu Masterclass

For teams ready for a more advanced approach, consider Trunk-Based Development. This involves committing directly to the main branch (trunk) frequently, using feature flags to control the visibility of incomplete features.

  • Benefits: Eliminates the need for long-lived branches, simplifies merging, and fosters continuous integration.
  • Challenges: Requires a high degree of trust, automation, and disciplined code review. Requires Feature Flags management.
  • Suitability: Best suited for teams with mature CI/CD pipelines and a strong testing culture.

5. Commit Message Discipline – Purposeful, Not Pedantic

While detailed commit messages are important, don't let them become an obstacle. Focus on explaining why the change was made, not just what changed. Use a consistent format, but avoid overly rigid rules that stifle creativity and productivity.

  • Example (Good): Fix: Corrected error in bond yield calculation - addresses potential mispricing risk.
  • Example (Bad): Fixed the thing. Changed some code. Added a commit.

Tools to Support Your Git Jujutsu Journey

Several tools can help you implement a more flexible and efficient Git workflow:

ToolDescriptionBenefits
GitLab/GitHubVersion control platformsCollaboration, code review, CI/CD integration
Jenkins/CircleCICI/CD automation serversAutomated testing, deployment, and build processes
SonarQubeCode quality and security analysisDetects bugs, vulnerabilities, and code smells
https://example.com/Feature Flag Management PlatformControl feature releases without deploying new code
ReviewableCode review toolStreamlined code review process with advanced features

The Importance of Culture

Ultimately, the success of Git Jujutsu depends on fostering a culture of trust, collaboration, and continuous improvement. Encourage developers to experiment with different workflows, share their learnings, and challenge the status quo. Regularly review your Git processes and adapt them as needed.

Disclaimer

This article contains affiliate links. If you purchase products or services through these links, we may receive a commission at no extra cost to you. This helps support our website and allows us to continue creating valuable content. We only recommend products and services that we believe are beneficial to our audience.

Pass it onX·LinkedIn·Reddit·Email
The Sunday note

If this was your kind of read.

Sign up for the morning email — short, hand-written, and sent only when there's something worth your time.

Free, sent from a person, not a system. Unsubscribe in one click whenever.

Keep reading

The archive →