Posts

AI Coding Tools, One Year Later: What’s Really Changed?

Image
As an engineering leader, I am always looking for ways to help my engineering team not only achieve the goals of the organization but really enjoy what they are doing. They love to code, and I want to help them do that. Part of that means taking time to find ways and tools to get the right outcomes. So how can AI help with that? A year or so ago, I set out to see how great the AI tools really were at replacing software engineering efforts. I learned a lot, and they absolutely made me a better engineer, but it still felt like they had a long way to go. Recently, I’ve been hearing from some big hitters in the industry that AI coders are now much closer to replacing engineers. Some claims even say that premium services offer AI coding bots that could actually replace a lot of engineering work. Even though I didn’t have access to those premium services, I decided it was time to jump back in and retest the waters with the newly improved tools. How much better could they really be? My Proje...

Stop Churning, Start Shipping: How Automated CI/CD Can Transform Your Engineering Team

Image
 How big of an impact can a fully automated CI/CD process have for your engineering team? What are the benefits, and what does it take to get it going? Years ago, I worked on a cloud platform with numerous microservices and the teams supporting them. Quarterly, usually during an engineering all-hands meeting, someone would inevitably ask why we didn't automate our release process. Our engineering leader, facing a mountain of legacy code with minimal automated tests (Unit, Integration, you name it), would say it was too risky. "We'd just be releasing more bad code faster," they'd argue. The solution, they felt, was for every team to build automated tests for all that legacy code. That usually ended the conversation. Since then, I've implemented automated CI/CD on several SaaS platforms, and I can tell you there's a way to do it without rewriting your entire codebase. Why Automate? The Benefits Are Real. Automated tooling like CI/CD ensures consistency a...

Using AI to Improve Code Quality: A Practical Approach

Image
Everyone is searching for the most efficient and effective way to use AI in software development. So how do we take advantage of AI and where is the best place to start?   AI excels at generating code, but it's not always perfect for what you are looking for.  Ensuring consistency, adhering to code patterns, and maintaining structure requires engineers with experience. Based on my experience, approximately 90% of AI-generated code still needs some modifications or tweaking to align with best practices, scalability, and ongoing maintainability. This is where experienced engineers play a critical role in shaping AI-assisted code into production-ready solutions. AI as a Strategic Tool in Engineering Teams Over the past several years, I have worked closely with engineering teams to determine how AI can be used reliably and consistently in the development process. While AI can be leveraged across multiple stages of coding, one of the best starting points is improving code cove...

How Code Coverage Drives Quality: A Proven Approach

Image
  How Code Coverage Drives Quality: A Proven Approach The way we create quality software has evolved dramatically over the years. One of the most significant shifts I’ve observed is the responsibility for quality moving squarely onto the shoulders of those writing the code: the engineers. It’s no longer acceptable to rely on QA teams or others downstream to ensure that what we release to customers meets the highest standards. Quality is everyone’s job, and it starts with the code we write. One powerful tool to promote this accountability and improve overall quality is code coverage metrics . By requiring engineers to measure and meet coverage goals, we nudge them toward building automated tests that not only prevent bugs today but also safeguard the codebase as it evolves. The Impact of Requiring 80% Code Coverage Years ago, my teams implemented a requirement: every new code check-in must have at least 80% code coverage . It took a little bit of time but the results were incredible...

What makes for great team?

Image
Building World-Class Organizations and Teams What does a high-performance team mean to you? And how do you build one? High-performing teams streamline their efforts, eliminating unnecessary tasks to focus on impactful work. They identify and remove process friction, creating a structure that drives success. Over the past 20 years, I've had the privilege of working on some truly exceptional teams. I’ve witnessed how certain groups make success look effortless while others struggle with basic collaboration. So, what distinguishes a world-class team? Reflecting on my experiences, I’ve identified key characteristics that these teams embody. If you want to elevate your own team—whether as a member or a manager—there are actionable strategies to implement...keep reading. Characteristics of a World-Class Team Through my experience working with engineering teams around the world, I’ve identified recurring themes that consistently bring out the best in my teams. While other principles may w...

Building High-Performing Engineering Teams

Image
How can you "go faster" as a software engineering team?   Throughout my career, I’ve invested a significant amount of time helping engineering teams maximize their effectiveness—getting them into processes that are both efficient and impactful. Inevitably, my boss will come to me with the challenging question, “How can we get the team to do more and go faster?” Given my experience and after evaluating the best teams I’ve ever worked with, I’ve come to understand what made those teams special. These high-performing teams were always clear on what they were working towards, had taken steps to make their development process easier, and had a strong support structure in place to help them when needed. This reflection has shaped the way I now evaluate and approach my own teams, looking through the lens of three critical areas: Clarity, Development Experience, and Collaboration & Teamwork. When these three areas are optimized, teams not only move faster but also deliver higher ...

Exploring AI Coding Tools: Can They Really Build Software for You?

Image
TL;DR   AI tools like ChatGPT-4 and GitHub Copilot, in their current state, have incredible potential to boost productivity. While they still require substantial hand-holding, reviewing, and slight alterations at nearly every step, they enabled me to complete my project 75%-80% faster thanks to my coding expertise. By using these tools, I was significantly more capable of getting features done in far less time. Though AI coding companions are promising, they are not yet fully autonomous—engineers remain essential in guiding and refining the work to achieve optimal results. It will be interesting to see how long it takes before these tools evolve to a point where engineers may not be needed for the majority of the development process.  For the full story, continue reading below. Introduction: My Objective  As an engineering leader with 20 years of development experience, I aim to help my engineering teams work faster and more efficiently. To do that, I wanted to explore th...