Posts

The Culture Code: The Secrets of Highly Successful Groups

In The Culture Code, Daniel Coyle explores the secrets behind highly successful groups, combining stories with scientific insights and actionable strategies. The book identifies three key skills: building safety, sharing vulnerability, and establishing purpose, which drive team cohesion and trust. Packed with compelling examples from diverse organizations, it is a practical guide for anyone looking to strengthen collaboration and improve team performance.

Book Reviews

Accelerate: The Science of Lean Software and DevOps

Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim analyzes four years of DevOps research to identify what drives faster, more reliable software delivery. The book highlights how Lean management, continuous delivery, and strong organizational culture improve throughput, quality, and team wellbeing. While it focuses on evidence and analysis rather than hands-on implementation, it’s essential for understanding and advocating for high-performance software practices.

Book Reviews

JUnit 5 Maven Example: Running Tests with Surefire

This guide demonstrates how to configure Maven for JUnit 5 testing, including adding dependencies and setting up the Surefire plugin. It covers both current Maven versions with native support and older versions requiring extra configuration. By following this example, you can run JUnit 5 tests seamlessly in your Maven projects.

Testing

JUnit 5 Gradle Example

This guide shows how to configure Gradle for JUnit 5, including adding dependencies and enabling the JUnit platform for running tests. It covers both modern Gradle versions with native support and older versions using the JUnit Gradle plugin. By the end, you’ll be able to run JUnit 5 tests successfully in your Gradle projects.

Testing

Migrating From JUnit 4 to JUnit 5: A Definitive Guide

Migrating from JUnit 4 to JUnit 5 involves updating dependencies, annotations, and testing classes while running old and new tests together. Custom runners and rules need to be replaced with extensions, and parameterized tests require rework to fit the new model. This guide provides step-by-step instructions for a smooth, gradual migration.

Testing

Code Quality Checks

Code quality often deteriorates over time, especially in legacy projects, slowing development and introducing bugs. Using code reviews, static analysis, and dynamic analysis helps detect issues early, while fast feedback loops prevent problems from accumulating. Combining these practices with continuous monitoring ensures cleaner, more maintainable code.

Software Design

Testing Myth #2: Unit Tests Are Not Worth It

Many developers see unit tests as extra work, but their main purpose is improving design, not just finding bugs. Writing tests while coding encourages loose coupling, high cohesion, and produces a fast regression suite. Adding tests after the fact may require refactoring to gain real benefits.

Testing

Testing Myth #1: Writing Tests Slows You Down

Skipping tests might speed up short-term development, but it increases long-term maintenance costs and debugging time. Writing high-quality, feature-focused tests improves stability, catches errors early, and makes future changes easier and safer. Investing in tests upfront ultimately accelerates development over the software’s lifecycle.

Testing

Code Smell: Dead code

This post explains why unused or unreachable parts of a project are a common warning sign in aging systems. It outlines how changing requirements and incomplete cleanups create unnecessary leftovers. The article focuses on practical ways to remove this clutter and keep projects lean and maintainable.

Software Design

Make Better Git Commits

Effective Git commits make tracking changes easier and improve collaboration. This article covers committing frequently, focusing on single logical changes, separating formatting updates, and writing meaningful commit messages. Following these guidelines keeps your project history clear and maintainable.

Productivity