Distributed systems are complicated

The microservices architectural style seems to be maintaining its position near the peak of inflated expectations along the hype cycle. Some very large companies have had successes while utilizing this...

Unwritten rules

What are the unwritten rules in your organization? The differences between, say, how the expense policy is written versus what is enforced, the ‘open door’ that actually isn’t, the real...

Inspiration and the end of Moore's Law

Informed opinion suggests that Moore’s Law is coming to an end, or at least slowing down. Though it’s likely that we still have a few more ways to reduce feature...

Design in your agile process

If you’re making software the right way, you have designers and developers working closely together to solve problems. What you may not have (yet), is a common way of working...

Do things on purpose

A theme running through several entries has been that of intentional decision making. What does that mean and why does it keep coming up? Efficacy is a vector, too The...

Don't buy instruction manuals when you really want outcomes

There’s a fundamental disconnect between people selling agile training and the people buying it. For those selling, the training is the end in and of itself - they are delivering...

Increase your team's velocity by doing things that make sense

Let’s imagine the life of the average developer in a larger organization. Requirements (or even user stories) appear via some semi-opaque process, progress is driven towards seemingly arbitrary deadlines that...

Software is made by people

By now people have generally caught on to the idea that software is made for people. The entire discipline of UX, ideas about design-thinking, customer-centricity, etc. are all predicated on...

Starting the introspective loop

Over on linkedin in response to my agile post, someone asked how to introduce introspection and the meta-process into an organization. It’s incredibly difficult to affect cultural change without top-down...

Risk in your software portfolio

Every software initiative you undertake carries with it some element of risk. The main risk that comes to mind is likely that of unsuccessful execution, i.e., “what if the team...

A simple technology evaluation framework

Generalizing from my prior post on evaluating blockchain applications, here is a simple framework for evaluating any technology, library, framework, language, etc. What problem does the new technology claim to...

The most important part of agile

The most important part of agile is the deliberate introspection that should precede the retro People think about agile as an iterative and incremental way to deliver software. The real...

Evaluating blockchain applications

Independent from the political and technical arguments for or against Bitcoin (or other cryptocoins) as a currency, there exists the idea of the blockchain as an application component. How do...

AR won't be a thing until you don't have to wear a silly hat

Intel recently showed off their latest AR glasses. These glasses are a necessary step for AR, in that they look normal. For AR to reach mainstream consumer adoption, it has...

Velocity is a vector

Business and technology teams are under constant pressure to move faster. For organizations contemplating or adopting agile, the ability to move faster is often a key selling point. The vision...