Is never good for you?

 There’s a famous New Yorker cartoon with an executive arranging a time to meet with a colleague. He says, “Is never good for you?” You know what? Never is great for me. I’m good with not wasting an hour I could have spent delivering value to customers; I’m good with not subtracting an hour from…


Productivity mechanics

 Let’s say you run a great team that already has trust, fails and recovers quickly and safely, and sets clear goals, priorities, and limits. (If you don’t, internalize Is it safe? and I can manage.) How do you take a team like that and make it even more productive? You could search the internet and…


Escalation acceleration

 When I recently wrote about the frightening yet fantastic world of DevOps, I discussed how escalations reach the dev team, but I skipped over when the dev team does the escalating. As you move from shipping annually to shipping weekly and daily, you depend on engineering systems and services to work 24×7. However, engineering systems…


The value of navigation

 Times change, and we must adapt to those changes. There was a time when software products were packaged, installing an upgrade was a big deal, and the market could only handle a new version every few years. Now products ship daily online. There was a time when intellectual property was king, you jealously protected your…


Love your customers and partners

 Horrible teams dislike their customers. They think their customers are stupid, lazy, and ignorant. To horrible teams, customers are infuriating imbeciles who completely miss the point of the product, but must be dealt with anyway. In contrast, tragic teams tolerate their customers. They think their customers are misguided, lazy, and imperfect. To tragic teams, customers…


The flow fallacy

 In 1990, Mihaly Csikszentmihalyi published his famous book about achieving exceptional productivity and concentration, Flow: The Psychology of Optimal Experience. The book’s basic idea is a familiar one to most developers:  Situate yourself in a quiet room without distractions, work on a compelling piece of code, and you’ll soon get into a “flow,” losing track…


Don’t be a tool

 A recent flood of build breaks triggered a wave of tool suggestions to plug the cracks in our code. Some argued for faster builds. Some argued for deeper branching. Some argued for a “gauntlet” service that simulates official builds and blocks problem code submissions. All of these suggestions are awash in the seeping sewage of…


Cycle time—the soothsayer of productivity

 Nothing infuriates me more than wasted time and wasted effort. I’m not talking about training, reorgs, moves, morale events, or vacations. Those at least have the potential to be valuable in your life. I’m talking about build time, integration time, unused specs, incomplete features, blocking issues, excessive and persistent bugs, and over-engineered code and processes….


There’s no place like production

 As much as I love Microsoft®, and as many advantages as we have as a company in the intelligence of our people, the breadth of our products, and the boldness of our vision, there are times when people here are frigging clueless. It’s not everyone—Microsoft is a wildly diverse company. But there’s just enough ignorance…


Am I bugging you? Bug Reports

 Some developers hate seeing bugs. They think bugs indicate a failure on their part—that their code seemed perfect until bugs were found. These developers are called “amateurs.” Real developers know the only reason you haven’t found bugs is that you haven’t looked. I love seeing bugs. It’s better for me to see them than for…