From Hard to Easy: Changing Database Schema

I hate changing the database! Legacy databases present two challenges: Bad schema that is hard to change. Too much logic in the database. Both delay stories and generate bugs. Both waste your time and each will require thousands of person-hours to fix. We need to find a way to pay that cost incrementally; preferably divided among all the developers on the project. First let’s divide the problem in half by ignoring the logic for now. After all, lots of logic […]

Start Fixing a God Class

All I want to do is edit the freaking document! Unfortunately, so does everything. CDocument is central to what we do. Users think of documents, and so does the UI. Every piece of code reads the CDocument class…unless it modifies CDocument. And now I need to unit test my code. Also, I want to ship my team’s code independently of the other team. But every single feature touches CDocument. Many of them change CDocument – or one of the 6 […]

Learning for the Whole Audience

What do you hear with the terms “scaling learning?” The most common reaction focuses on the logistics. This results in many less-than-adequate web-based training programs. The idea of scaling learning also suggests that a LOT OF PEOPLE need to consume the learning. Developers may not like legacy code, much like instructional designers do not like wide audience delivery. Put together a nice little niche piece of learning? Fun! Make learning work for 100% consumption over a large audience? Hiding. Why? […]

Make Tests Independent

I changed a piece of code and 75 tests broke… It was a simple feature. I just added a GDPR approval checkbox when creating a new account. And suddenly half our tests broke. Tests for reporting, tests for core features, all kinds of tests for all kinds of things. Because every one of them needed to create an account. So I added a default to the test mocks. I updated lots of expecteds. I added a startup step to some […]

Why Technical Waste Blocks your Pivot Speed

Imposed change on a global scale shifts how the world works. For example, the industrial revolution eventually replaced cottage industries with at-scale manufacturing. Similarly, the rise of the Internet shifted the meaning of expertise from what-you-know to what-you-can-find-and-apply. And now we are watching another global shift, from tolerating remote work to embracing it as a value. We are seeing the first glimmers of a new reality.  Last week we wrote about mindshifts that are necessary to prepare your technical teams […]

Transitioning to a Marathon of Change

In the United States we are a month into the quarantine, give or take a little depending on your geographic location. Dr. Fauci, Director of National Institute of Allergy and Infectious Diseases, informs us that the infection rates will not truly curb until a vaccine is created. While J&J and other companies are working to deliver a vaccine, we know this is not a quick fix. Regardless of how many safety protocols they are ignoring to speed delivery.  This is […]

Using Talent Well during Disruption

It’s safe to say that the world is in a state of disruption that organizations are navigating all at the same time. The book Zone to Win describes how to organize in times of disruption.  Moore’s premise is that during stable times every company plays in three of the four zones. However, when disruption happens, a fourth zone comes into play … the transformation zone. Companies die when they transition poorly from stability to disruption. In terms of the book, […]

Technical Excellence: Now Required

Our world is in a state of emergency. Today’s uncertainty and ambiguity means we can’t assume everybody can be back in the office shortly. And truthfully, this is an opportunity. In the office, informal technical communications covered for many weaknesses. Technical skills that were good enough in the office won’t work well in remote work, where informal communication is limited. Excellent technical skills, however, allow developers to communicate informally through the code. Beneficial? Yes, but not strictly necessary. At least […]

Customers aren’t buying, they are deciding what to cut: Focus your dev teams well

As consumer confidence has plummeted, wooing new customers with exciting new features is less likely. However, engendering loyalty among your customers as they look through their subscriptions and decide what to cut seems a very wise plan. Not only do your customers not really care about snazzy new features, but it’s the kind of work that does not flourish within the remote environment. Well done feature development requires communication across many different roles that is good, frequent, and fast. You […]

Don’t Lose Productivity when Transitioning to Remote Development

Are you prepared to lose 120 hours a week for each development team? As a manager, I would assume that sending development teams home for remote work, as we must right now, would still achieve productivity. After all, so many developers work remotely very easily and they seem to do well in quiet alone spaces. Of all the quarantine disruptions, this one seems minor, right? Mmmmmm…not so minor. Developers Need to Share Tacit Knowledge Technical development frequently requires tacit knowledge […]