Patterns Mean Progress

I’m writing this article because I’ve been asked about Generative AI’s impact on development. I’m not sure how or when the impact will be, but looking back at a couple of decades of tech work, I recommend looking for patterns. Patterns mean progress.

Patterns of puzzle pieces

Diffusion of Innovation

According to the book, Diffusion of Innovation by Everett Rogers, innovation goes through several successive groups – Innovators (Risk Takers), Early Adopters (Opinion Leaders), Early Majority (Cautious Adopters), Late Majority (Skeptics) and the Laggards (Last to Try). Three concrete examples that have been through this cycle include:

  • Agile (Late Majority/Laggards) – If you start a company today, you will likely use some mixture of Scrum/XP/Kanban. In many places, they don’t even call it agile because the practices are simply the default of how software teams work. Laggards are typically large enterprises or “non-tech” companies.
  • Continuous Delivery (Laggards) – Cloud computing, the pace of technology and the demand for change drove the adoption of CD. It’s rare that teams do not use CD because the patterns are built into bootstrap code and tooling.
  • Automated Testing (Laggards) – For core enterprise systems, there’s no doubt that automated tests add value, with many tool choices for programming languages and platforms today. It might not make sense for early-stage product companies or quickly evolving programming languages, but there’s rarely a challenge about the value-add for proven product and tech stacks.

As innovation (or tech) moves between stages, you might notice specific signals. You’ll hear the innovators hype about potential, could-be scenarios. You’ll start to hear the benefits of early adopters, but the transition from early adopters to the early majority is particularly interesting. As more people apply innovation, we start to see case studies or real-world applications. Useful innovations and technologies add value. They solve problems others have. Good case studies are not about the hype, promise or belief. Instead, they highlight a specific situation and demonstrate evidence of how the innovation or tech improves that situation.

As more evidence collects, observant people or companies start to spot the patterns.

Patterns Mean Progress

Patterns give us a way of succinctly transferring knowledge. When we share the same name, we communicate better with each other. They help us avoid common problems, as they show us how to deal with a certain situation quicker and easier. Patterns typically promote good or best practices, preventing beginners from making silly mistakes as they reuse a tried and tested approach. The most useful patterns are emergent, or “harvested”, by observant people who notice the same solution appear again and again across different contexts. Patterns mean progress.

Refactoring as an Example

Refactoring is a great example, transforming from a small set of practices in the Smalltalk community to boosting developer productivity by being built-in to code editors today. When I started learning programming, I was never taught about refactoring. Kent Beck captured some examples in his Smalltalk Best Practice Patterns (1996), but many people (including me) didn’t know or read this book.

It wasn’t until Martin Fowler published the first edition of Refactoring (1999) that our industry had common names for a transformation with clear guidance on executing each technique manually. Programmers apply and continue to apply refactoring techniques manually, but repetitive manual processes are perfect targets for automation. In 2001 we saw the transition to code editors with refactoring built-in, such as IntelliJ and Eclipse, but they were only possible because we had names for these patterns. Patterns enable progress.

What This All Means

Circling back to the topic of Generative AI, I believe we are currently in the Early Adopters phase. Companies and teams are carefully experimenting with this, and more people are starting to share their experiences, detailing what is useful and not useful. Over time, I hope we will see more case studies published and, soon after, a synthesis of named patterns in the form of online articles, talks or a book.

We’re not there yet, but given enough time, I think we will be.

Like this post? Consider subscribing to Level Up, a free curated newsletter for leaders in tech.

Leave a Comment