Comments, off, sorry

I’ve always enjoyed the comments people leave on this blog – even when people disagree.

Unfortunately, for the last few months the vast majority of comments I am receiving are spam – people trying to add links to their own websites and such. The same comments are made again and again, sometimes a dozen in a day.

So, with a heavy heart I’ve switched comments off for now. I’m happy to receive your comments, please e-mail me allan AT

Of course, as I’m experimenting with Medium at the moment most of my content is appearing there and you can comment there. So please follow me over there.

OKRs create strategy alignment but not in the way you think they do

One of the claims made of OKRs is they solve the problem of alignment, strategic alignment specifically. So, anyone reading my last post – Pull don’t push OKRs – might be wondering how this can be. I’m sure many people will ask how alignment can be achieved without some master plan and planner?

Continues on Medium

I’m continuing my experiment wirth Medium – let me know what you think. One of the problems I’ve been having with this blog recently is the volume of spam/scam comments that it is attracting. Switching to Medium isn’t a complete solution and I might have to switch comments off soon. Sorry about that.

Pull, don’t push: Why you should let your teams set their own OKRs

There is a divide in the way OKRs are practised. A big divide, a divide between the way some of the original authors describe OKRs and the way successful agile teams implement them. If you haven’t spotted it yet it might explain some of your problems, if you have spotted it you might be feeling guilty. …

Read the whole story on Medium, Pull don’t push

Posting on Medium is an experiment – let me know what you think – comment here or there.

Why Medium? – Well, three reasons really. Their marketing tells me it is a good way to reach new readers. Second, I know many readers of this blog don’t do OKRs and I still have more to say on OKRs so I thought another platform might be appropriate. And third, this blog is attracting a lot of spam comments at the moment – all cryptocurrencies – and I’m fed up with it.

Nuke the bug list when you nuke the backlog

“Nuke the backlog” originally a quick comment in a podcast about OKRs it summed up what I had come to believe. “Honey, I shrunk the backlog” presentation expands on that idea and outlines why I think teams should replace backlogs with just-in-time story generators – powered by OKRs or some other goal setting technique.

So I shouldn’t have been surprised when this question arrived in my mailbox:

“Throw away the backlog, is that for old bug tickets too? How does that work?”

The short answer is “Yes, throw away the bug list too.”

What do you mean, “Bug” ?

Basically the things we call bugs can be divide in two. Some are actual defects – things the system should never have done and quite possibly are detrimental to the running of the system. Everything else might be considered an enhancement. Logical right? Only where do you draw the line?

If I hit return 50 times and the system crashes the machine that is clearly a bug, the machine should not crash. But then again, how likely is someone to press return 50 times? Let me suggest not very often. And if they do, what are the chances of them doing it again? After all, there is a very easy work around. So while this might be a bug it might also be considered an enhancement request.

Ultimately, where you draw the line between bug and enhancement is subjective. This becomes really clear when you can count known bugs in single digits, 5 instead of 500. Until then calling a “change request” a bug is little more than an attempt to exert leverage and prioritise work. Calling it a bug might also have some other beneficial effect: apportioning blame might further another argument and moving a change from CapEx to OpEx column might help balance the books.

Consider all bugs from a priority point of view instead. While many different scales are used there are basically 3 categories: #1 must be done and done soon, #2 really should be done but not right now, and #3 should done but can be put off indefinitely.

Categories #1 and #3 are easy: the first are just done, the third are ignored forever but we kid ourselves that one day we’ll do them (right after we fix climate change, famine, war and pestilence.) Still, it is relatively easy to close all #3 reports over 12 months old. And next month close those over 10 months old. And so on. By all means keep a list of them somewhere but don’t pretend they will be fixed.

The only real debate are around category #2. We keep these on file in the hope that the Bug Fixing Fairy will fix them one day. In the absence of the fairy any work will require time and people to fix. That means they need to fight against all the other #2s and all the new shiny stuff. It is the same people who fix bugs as make shiny new things. It is a choice. A choice made probably by someone with the title Product Owner or Product Manager.

Which means if that fix isn’t more valuable than everything else then it won’t be done. This is the same argument I use when I say “Nuke the backlog.” If the fix isn’t valuable enough to justify being done, then it waits in a queue. The longer it waits the less important it is, leave any #2 bug there long enough and it will transform into #3.

What do I do?

The whole “is it a bug or is it a change request?” discuss is an utter waste of time. Whatever you call it work is needed, it s work to do, that work costs, that work creates benefits – the cost and the benefits are independent on what you call it. Benefit should the overriding criteria.


1) Fix the bugs you think need fixing

2) Don’t pretend you will fix the others, throw the bug list away

Of course, throwing away the records does not fix the “bugs”, they still exist – the same way cockroaches seem to survive everything. But we are recognising that, like cockroaches, the cost of action is not justified. This is simple honesty, a list of 100 items that we pretend will be done one day is dishonest. If that honesty creates a debate then good.

I have more advice – and more subtle advice in my “Bug management strategies” which outlines six strategies for addressing bugs and can be found in my lesser known “Xanpan appendix: Management and Team“.

Announcing the Succeeding with OKRs in Agile 2nd edition

The rumours are true, I’ve been working on a second edition of Succeeding with OKRs in Agile.

Now I’m ready to share, the content is stable, some polishing to do (mainly copy edit).

You can buy it now on LeanPub with free updates as they are ready.

In addition there is an OKR bundle available with give you the second edition and the first edition plus the unfinished Succeeding with OKRs in Agile Extra addition which contains additional chapters, journal articles, blog posts and Q&As. Buying the bundle will get you free updates to both the second edition and Extra as they progress.

No time scale for finishing Extra but I hope to have the second edition done by the end of the summer.

AI will undermine offshore & WFH programers first

A postscript, continuing from AI might effect the world of software engineering and programming. I’m supposing the power of AI real and it can replace the people we now call programmers. What next?

Spoiler alert: This post if going to upset a lot of people, who like working from home or work as offshore.

Where will the first job losses come? – let me suggest the Indian IT industry has the most to loose from AI.

In past technology cycles the first jobs to go are usually the low end jobs. The jobs which are more easily replaced are the jobs which require less skill and knowledge. Initially new technology is far from perfect so it is applied narrowly to the simpler bits of work. For example, the co-pilot feature now appearing in programmers tools which can write part, but not all, of the function.

These are often the low wage jobs (that is not always true, sometimes low wage jobs survive because the cost means they aren’t worth replacing.) So, assuming AI programming starts at the low end and works its way up market who has the most to fear? The low wage coders, who are the low wage coders? – overwhelmingly the offshore, and often outsourced, jobs.

So, expect to see India’s tech sector hit before the USA and Europe, more generally, anyone who competes on price.

For similar reasons expect to see Stackoverflow and engineers who cut-and-paste code to be hit early.

Next, recall from my last post I said that Business Analysts and others who are tasked with understanding what is needed will benefit even as programming jobs are hit (assuming AI is true). That extends to programmers, again, many programmers actually spend a lot of their time working with customers, users – and even BAs – to understand what is needed. Such programmers, like BAs, will be safer than those who code-to-order.

Such roles are less transactional in nature. The problem, the solution, and even the role itself is vaguely defined. Understanding what is needed often requires understanding to turn a vague request into something much more specific. It requires empathy, it requires background information, it requires trust and a willingness to explore together.

Let me suggest that those things are still better done in person. Doing them online is possible but in general a much greater degree of communication and understanding is needed. Nuance can be important. For that reason I believe they are better done face-to-face, in the same location, time zone and even culture. Even if some work can be done remotely having a bond which comes from physical interaction can help.

Human’s will still have a role to play in working through vagueness. That is best done face-to-face so there is a premium for working in the office. If it isn’t vague then an AI can do it.

Again, offshore programmers will loose out here. Onsite engineers will be valued more. But also, engineers who work from home will loose out, especially those who work from home every day.

It is true, you can code from anywhere: the office, a coffee shop, your house. But acquiring deep understanding, empathy and trust requires you to be there. Right now is the worst time to stay at home.

Winners and looses when AIs program

I feel guilty, the rest of the world has gone AI mad and I’ve said nothing about it. I’ve been hiding. Part of me feels sad and threatened, is AI going to wipe out the world I knew?

So here is my take. Since I come from a programming background, and since this is where a lot of the AI opportunities are supposed to be I’m going to talk about this. To those of you from elsewhere, let me ask: can you apply my logic to your world?

We’ve been here before, once upon a time code generators were gong to replace programmers, another time it was “programming in pictures”, another time it was 4GLs. Is this time different?

The term “AI” has been applied over the last 20 years to many systems which are little more than rules engines. These may not require programming but they do require configuration. Configuration which can be complicated – more than selecting Preferences/Edit/… and click. Instructing computer how to work, whatever the metaphor, is called programming. Anyone who says “With this tool I replace the programmers” just become a programmers themselves.

Many of those code generators, and programming by clicking systems replace one set of problems with another set.

A thought experiment

So, a thought experiment: lets suppose AI can write code as good as a human. Your programmers are replaced. What happens then?

First: do you trust what the AI writes? Or do you still need testers?

There have always been companies out there who forego testers and testing, undoubtedly many will. But in general you will want to test what the AI creates. Just because an AI says 2+2=5 does not make it right. There are already documented cases of AI exhibiting biases in things like identifying criminals.

In fact you probably need more testers for two reasons: programmers used to do some testing, while AI will not make silly syntax errors it will still make logic errors. Additionally if AIs writes more code faster than before there is simply more work in need of testing.

Second: how do you actually know what you want? – many programmers and testers spend most of their time actually understanding what customers want. Think: when you use travel planning software you may reject the first suggestion because it uses buses not trains, the second because there is too much walking, the third because you prefer connecting at one station over the other.

If the programmers are gone then testers might take on that work as part of testing (trial and error cycles). Or you might turn to Business Analysts and Product Managers. There are the specialists who understand what is wanted.

BAs and Product Managers have another role to play: post evaluation. Now it is cheaper to produce solutions there will be more solutions and someone needs to see whether they actually solve the problem you set out to solve.

In fact, there is more work to do in choosing the problems to solve in the first place. After all, building and deploying a new system is only part of the problem. What about training people to use it? What about changing the processes around it?

In fact, if we are introducing more technology and solutions faster than we are going to need more change managers analysts and consultants to advise on workflow improvements. One day your entire company may be machines working seamlessly together but until then you need to accommodate the people. Which means someone, be they BA or consultant, needs to look again at the workflow.

And if we know anything from the agile and digital movement of the last 20 years it is that changing our approach to work takes time. The technology is the easy bit. It takes years, decades even, for processes to change.

While there are still humans in the system there will still be interfaces which will need designing. Interface, UXD or experience design, is not an entirely logical processes. You need to look at how people respond. With more systems you have more interfaces and more need of interface designers.

And because adding features to your product is now so cheap you suddenly have an explosion of extra features which makes the interface more complicated and may even detract from your product value – remember how the iPod won out over other, more feature rich, competitors? So now you need you analysts and designers to limit the features you add and ensure those you do are usable.

So far we have removed programmers but increased the number of Testers, BAs, Product Manager and Designers.

In one form or another all these people will be telling the AI what to do, as I said this is call programming. So many of those new hires will be doing some form of programming. The programming paradigm has changed, perhaps its more high level, but it is still there.

If AI follows the pattern of past technology change (and why shouldn’t it?) then:

The full benefits of technology are not realised until the rest of the system, particularly processes, change to take advantage of the technology. This can take decades.

Programming isn’t going away

New technology is often billed as replacing previous technology and/or workers. It might do that in time but it also expands the market. Electricity did not eliminate candles, more candles are produced today than ever before but we don’t use them for lighting (so much.)

I don’t see AI programming bots replacing programmers in many detailed roles, perhaps ever. The ins and out of something like Modbus, and at the other extreme enterprise architecture, will make that hard. But there are domains were AI will dominate.

Finally, as we adopt new technology and processes we give rise to new innovations, we find new markets we can address and new ways of addressing existing problems. That generates work and new roles.

So I am sad to think the joys of youth spent writing ‘Writeln(“Hello world.”)’ are coming to an end, and my children will probably never experience the joy of feeling a machine perform their wishes (LDA#0, JSR OSWord, anyone?) those days are already gone.

Rationally I know AI is not something to fear (at least in the jobs context) but emotions are not always rational.

What do you mean by “initiatives and OKRs”?

A few weeks ago I had a conversation with a potential client about OKRs. They started talking about “initiatives.” In fact, they talked about “initiatives” as a standard part of OKRs, one of those moments when self-doubt set in. I started wondering “What do they mean?” And more worryingly, “How do I not know about initiatives?”

When I did some digging it turns out that one, or possibly more, OKR consultancies talk about “initiatives” as a third level of OKR. For these consultants there is a hierarchy, Objective at the top, Key results below that and then initiatives as the “things you will do to deliver the key results and therefore the objective.”

Umm, maybe

In one way, I like the thinking. I agree that “what we will do” is not part of the objective and it’s not the key results. (A common mistake with OKRs, one I made myself years back, is seeing them as the to-do list.) So I can see why they label the things to do as another level. At the same time, I see two problems.

First is the hierarchical decomposition. Again, the idea that an initiative builds towards one key result which builds towards one objective. Once you start viewing key results as acceptance criteria which describe the post-objective world, this breaks down – the key results become cross-cutting. If your key result is “Customer receives their order within 48 hours”, for an objective of “Satisfied customers”, there is probably not just one thing to do. That goal may cut across lots of other pieces of work.

Is an initiative big or small?

Second, and perhaps more importantly, the word “initiative” is already widely used and means different things to different people, creating a recipe for confusion.

Specifically, although the #NoProjects community never standardised on the word, it is widely used as an alternative to “project” to describe a stream of work, an endeavour, a mission, a programme, or an ongoing effort. So for many of us, an initiative is not a small piece of work sitting below key results, but rather a big stream of work sitting above objectives.

This also hints at the reason why “initiative” was never agreed on. For many of us “initiative” has overtones of “beginning” – indeed my Apple dictionary uses words like “originate”, “before” and “fresh” when defining “initiative.” (In Dungeons and Dragons players roll “initiative” at the start of a fight to see who goes first).

So what do you think? Am I too sensitive? Have I missed something critical? – let me know in the comments or drop me a mail.

Still, there is most definitely a need to decide what actions are needed to deliver OKRs. When and how to do that will be in future posts, stay tuned. In the meantime, if you use the word initiative make sure you clearly tell people what you mean by the work.

Verified by MonsterInsights