You Don’t Need Permission
steveblank.com
steveblank.com
This is the best explanation of this metgodology I’ve ever read
I assume that is a typo, but if it is, it's my favorite typo of the week, because it reflects so well how I feel about that kind of daily standup: scrum masters who act like little tin gods.
Most of the companies I've worked with take a more practical approach, but I have been involved with some who did it exactly the way GP described. It really rubbed me the wrong way.
Yesterday a look at solution a for problem y and it turns out that was a dead end so we wont do that any more.
Today Looking at solution b for y or can we solve y by doing something else
Seems to me that if you can't justify why not keeping your stated commitments was in the interest of the team and the company, then the issue is with your communication and not the process itself.
90% of the time the cure for needing to do "undercover" work is explaining that it is needed to accomplish what the company expects to get out of a task. It often happens that incorrect assumptions get embedded in a plan, and an engineer is asked to do X on the assumption that doing X will also accomplish Z, and they think, "Ugh, they want me to do X but they won't give me time to do Y and Z, what the fuck do I do, Z isn't going to get done and then it will be my fault because I was tasked to do X and they think that's the same thing." Just communicate: "I think what is expected is that if we do X then Z will also be accomplished. In this case, doing X won't accomplish Z. We will also need to do Y and Z, which is additional work."
Then if they say, "Just do X," you don't have to fret about Y and Z, because you have set expectations appropriately. In a dysfunctional environment, where the scrum master or project manager is mechanically executing a process without knowing what any of it means, you may need to escalate or reach out beyond the team to find somebody who appreciates your warning that X will not accomplish Z.
Of course there may be no such person, but in that case, no process will save you.
I've even seen this used effectively to talk about technical debt. "Look, I think the assumption in management is that we're making progress on moving away from the legacy services and deprecating our old auth solution, but in fact, if we do this we will be making ourselves even more dependent on the legacy services, and we'll be adding new public APIs that can't be properly secured. I just want to be sure that [manager's name] is aware that that is how we're shaving a month off this plan." Needle scratch, management wasn't aware that there was any downside to the expedited plan that project management had squeezed out of the engineers, because project management did not understand the language of technical debt. It was all engineer blah blah to them, and it didn't occur to them that management needed to hear it.
It's sort of crazy, I'd get an oh, yeah, every time I'm mention some of these things, but the facts would sort of slip out of their minds. I think they'd also get together with other managers who were confident that system Foo would be going away in a few quarters who either didn't know about application Bar, or didn't need to care about it, and their enthusiasm would cause the details to sort of get mentally overridden.
There is definitely an art to managing expectations and making sure that efforts and goals and scope are aligned.
So, in other words - "yes, you do need permission".
This took me years, and I mean many years, to fully understand. I would say things like, "If we're doing X, shouldn't we also do Y? I mean, we need Y for Z...." which is not nearly as effective as, "If we are doing X, I think the expectation is that we will accomplish Z, but doing X will not accomplish Z."
Both statements say that if Z is desired, X will not suffice. But the scrum masters and project managers hear the first as "the engineers want something," which primes them to ignore you, and the second as "management expects something," which primes them to pay attention and process what you're saying.
If you put it in context of the situation described in "You Don't Need Permission", doing the customer discovery cannot be justified except through buy-in from the CEO. If Suresh (from the story) has a daily standup with his CEO, then he can't do customer discovery because of the process.
>As head of sales and marketing, Suresh didn’t need his CEO to buy into the process or give his permission to start the discovery process. He was in charge.
Suresh is a VP of marketing. It's his job to develop a plan, get buy-in, and execute on it. If the CEO is standing in the way, then all this boils down to is that the CEO is micromanaging his VPs. No process can solve for that.
I was merely framing the discussion in terms of what is written in the article, to illustrate what the problem with scrum (or capital-A agile in general) is.
You are now replying to my specific example, instead of my argument about the problems with scrum.
Most people would never think of either pretending that the waterfall model is without problems, nor that it can never be successfully applied to any project. Why, then, is it not acceptable to admit that scrum does, indeed, have limitations that stem from the way it reduces the autonomy of the individual team members?
I'm not sure where "the right people on the right team" comes from -- it's certainly not in the agile manifesto -- but it's just the right grade of vague to be less than useful in practice. It's like saying that every problem can be solved in only two steps: 1) determine what you have to do, and 2) do it.
I don't see any reason for denying that scrum, in its most widely-practiced form, complicates or even discourages certain tasks and behaviors that can be beneficial under correct circumstances. It shouldn't be controversial.
If you're having to hide work that you think is a good use of your time, then communication and process has already broken down. It doesn't matter what methodology you claim to be using or complaining about.
"Hey commandlinefan, I know you've been waiting a week for X, but I decided to go do Y. Oh, you needed X to finish something important, and could have gotten someone else to do it if I let you know? Yeah, I don't like to ask for permission."
1) I found a problem. I spent 5 minutes opening a ticket. - Great. Thanks
2) I found a problem. I spent 2 hours figuring out whose fault it is. - Hmmm, does the problem really matter? Can we just fix it on our side?
3) I found a problem. I spent 2 hours fixing it. - Is this really our problem to fix? Can we open a ticket and move on? (Note the similarity with #2)
4) I accomplished the task in a new way. - Is new also better? Does the solution also align with some ambiguous objectives that I haven't fully disclosed to you? Do I need to include you in more meetings so you understand more weird objectives (and then waste more time!)
5) I did a cool thing that you didn't even thing about! - How can I present this so Sr leaders get excited and approve working on this more?
#5 is by far the best, and I genuinely enjoy a teammember who is excited about something that also makes a positive impact - and I LOVE telling leaders why we need to change direction because of something new and cool that MY TEAM FOUND.
Isn't the one of the major pillars of Agile to let the devs know about all the objectives, so they can make better solutions? You know, the sole reason the Business Owner is one of major the scrum roles?
My original comment is all about how you present your self in the daily standup.
You get 10 mins in the stand up. What do you say?
"I spent 30 minutes trying to fix a trivial thing that will get resolved as soon. As I get off the call" - bad idea
"Work is going slower than expected, but I'm making progress. Make sure leaders know this is REALLY hard" - better idea
"I spent all day making mistakes, but I eventually got something better than planned" - This is good
Here are some tips: ASK FOR HELP. If it is a real problem, don't wait until stand up to ask for help.
Don't focus on the problems. If you talk about how you can't access email, it sounds like you spent 8 hours waiting for the email to come back (which, if true, I need to know about it much sooner)
Help me brag about you. I REALLY need to tell leaders that the team is rocking. Let me know when you: solve a hard problem, get good results, teach someone else something good, learned something from someone else. You AND I benefit if you do well.
Also:
> Given the ubiquity of Zoom, he could use it to rapidly get out of the building to the U.S. to test some hypotheses and gather some initial insights.
This is definitely easier said than done. But yeah it’s the right thing to do.
Maybe poor Suresh just wanted to vent a bit with an old friend? I wonder if he was aware that their conversation was turned into a blog post.
Suresh and his boss were already talking. “OK I’m on it and I’ll start sounding out some potential customers” would have done quite nicely I think, honour satisfied on both sides.
I am also reading his boss is overly excited on the idea. Mostly likely because of some stupid marketing research big number of TAM and potential revenue without thinking much about the consequences. And I have seen far too many of these people in charge of business.
Maybe Suresh knew this and was trying to limit the failure so that he has some kind of plausible justification when the shit hits the fan.
The interesting bit is what Suresh does if his Customer Discovery process discovers that there's no way this will work in the USA. Does he go back to the boss and tell him that (and what does he do then if the boss insists on going ahead)? Does he re-invent the product for the USA without telling his boss? Does he just resign because he's been put in an impossible position?
There's more to this story than this blog post...
That was what I wanted to mention but didn't write it out. Cynicism are not always welcomed.
I have been in far too many of these shit. It isn't things cant be done. But you need full trust and autonomy with lots of money. i.e Is the company willing to burn millions?
Saying just go and do it is easy without giving them resources and budget. And that is precisely what the CEO should have done. CEO should have sat down and talk him through. Giving him full support. So they both know what they are getting into and they are in it together. This is more common with founders but not CEO or managers.
And this happens a lot, I would even call it a norm outside of Tech industry.
To that, Prof Blank might reply that he didn't feel he needed permission!
More seriously, I definitely agree that just because Zoom is available, that doesn't make this easy to do. Indeed one might have said the same thing 50 years ago slightly differently, Zoom or no Zoom:
"Given the ubiquity of the telephone, he could use it to rapidly get out of the building to the U.S. to test some hypotheses and gather some initial insights."
Definitely easier said than done...
- Sidewinder: Creative Missile Development at China Lake, Ron Westrum
I've known at least two other kinds of Steves:
• The Steve who told me I would never be able to write a 6502 disassembler because "this is a microcomputer, and it operates on completely different principles than the mainframes you've worked on." (He was neither a programmer nor a hardware engineer.)
• The Steve who threw out several months of my Python work and ordered it rewritten in C++ because "we need precision in our calculations, and C++ has both floats and doubles, where Python only has floats." (He had a Python certification at our company, but he didn't know that a Python float is the same as a C++ double, a 64-bit floating point value.)
Sometimes the rust way of doing things is very detail oriented and breaks the smooth flow of thought to code that python enables.
Probably best to make that zoom call (write python) and then have an evidence based conversation about how you didn't lose precision and performance is as good as rust or c++.
Unfortunately they were both very strong-willed, and I didn't get anywhere with either of them.
I ran into the first Steve at a natural food store in Palo Alto. We got to talking about this little computer company he was starting with a friend and how they needed a 6502 disassembler.
We didn't have a business deal or anything, but I was curious about the 6502 and it sounded like a fun side project, so I got to work on it.
He called me a couple of days later to tell me I wasn't capable of doing it. I tried to explain that I'd written code on a variety of computer architectures and the 6502 was a fairly simple one, but he said "I'm sorry, my mind is made up. You couldn't possibly do this."
I said to myself, "who is this Steve guy telling me I can't program?!" I went ahead and wrote enough of the disassembler to be a good proof of concept.
Our phone call hadn't gone well, so I decided to visit their office with a printout and show him the code. It was listed at 770 Welch Road, near the Stanford Barn.
When I got there, nothing looked like a computer company, there was just a row of telephone switchboards. I told one of the telephone operators I was looking for Apple Computer, and she said "um, this is their answering service." So I walked out and told myself, "These guys are flakes. They're never going to make it."
The second Steve was a little less interesting. I found out about his objection to Python floats near the end of a team meeting, and he had another objection too. Some of our code would need to be written in C++ regardless, and there was no way to call C++ code from Python. I told him about CLIF and SWIG, which were both widely used at our company, and I explained the float vs. double thing. But like the other Steve, he said "my mind is made up, we have to rewrite everything in C++."
This was a set of geographic data importers for some messy data in a variety of formats from multiple countries. The data quality was so bad that north and south were sometimes reversed, or even worse, north and west would be reversed, among many other problems.
This required a lot of ad hoc code to clean up the data. It was originally written in C++, with all the data importers linked into a monolithic binary with an eight-minute build time for a one-line change. (Or a half-hour for a full build.) So if you spotted one data error and wanted to clean it up, it was an eight-minute wait to try your code.
When I changed it to use a Python front end that cleaned up the data and fed it to a simplified C++ back end for the compute intensive part, the C++ code hardly ever had to be rebuilt, and there was no build time at all for the Python part. So you could explore the data interactively and easily figure out how to clean it up.
Technically, this was a huge win.
Socially, not so much.
OTOH, if you ever interview me and ask the "behavioral" questions: "Tell me about a time when a project went really well" and then "Tell me about a time when a project didn't go so well", I can use this episode for both questions!
You'd give up any dynamic features of cpython in the process.
>• The Steve who told me I would never be able to write a 6502 disassembler ... (He was neither a programmer nor a hardware engineer.)
I didn't want to put in the second Steve's last name (hoping not to burn too many bridges), and I liked the parallelism of just mentioning each one by first name.
I do think it was ignorance about programming, combined with Steve's infamous arrogance. I'd programmed in machine language on a few different architectures by that time, and not just assembly but binary machine code too. To me the 6502 just looked like another instruction set.
But as you might guess, I have sometimes wondered "what if" I'd pushed back more.
Would I have ended up a billionaire or at least a multi-millionaire?
Or would Steve have driven me to the brink of despair, as he did with a few other people? (One dear friend of mine once said in an interview, "You may find that some people who worked with Steve won't want to talk about their experience.")
Or perhaps worse for the world in the long run, could my involvement have led to Apple Computer's downfall? The dirty little secret is that I didn't have a 6502 chip to test my code on, but I was working at Tymshare [1] at that time, I had a Teletype [2] machine at home, and Tymshare had a 6502 emulator that I used to test my code. Oops! What if they had gotten wind of this and sued me and/or this little Apple Computer company?
This is pretty important and seems to get overlooked.
If you're trying to kick off an initiative that benefits customers, but not in a manner that can be quantified to business stakeholders (one we've struggled with is getting management support to build tools that improve API documentation for customers who develop on our platform), reaching out directly is a useful way to gauge the landscape and come back with a better understanding of who your target customers are and what they struggle with.
That's evidence from the horses mouth that you can take to management to get sponsorship for your project.
The CEO needs to be onboard with something as critical and basic as customer discovery. If he doesn't like the idea then that actually could interfere, and is bad news for the organization. And actually could disrupt the process and cause a conflict with the boss if he tries to do it in the open. Of course he has to do it anyway, but the boss not buying into it is not something he can just ignore. Its a critical judgement error and also partly a rejection of the expertise of the employee and a failure to incorporate basic information into the overall strategy.
So I hope he is successful in his discovery and the rest of his job, despite his boss's poor judgement.
But as far as the article, I am not a fan of people that dismiss real problems and try to gain status by putting others down in a backhanded way, which is what the title is.
I wouldn't be talking to my boss about this for "permission", but to get on the same page and build shared understanding.
Managing someone is about enabling them, not bullying them. The CEO doesn't 'get to ' make the decision, they are tasked with making the correct decision. That means understanding from their experts all the issues. The CEO in question seemed to be ignoring their expert.
The guy raised possible issues with the CEO's plan and was ignored. If he's worth his salt, why wouldn't he be looking to find another company where he's valued more appropriately for his role?
Blank isn't recommending he go to the board of directors ...
Is this some kind of business rule I'm ignorant of? No matter what my title says I'm in charge of, if I start doing something I already know my boss doesn't want me to do I'm going to be in trouble. It's all well and good to say "Fuck you, the paper says that was my job" but that's not going to help you if the boss decides you need to go.
However most of the time managers skip that step. They want to move the army of the engineers towards a path where the path is not scouted enough. They want to first build the thing then try to sell or do marketing about it. What they miss is people's time and money, or in ancient times it was people's lives. It is really bad for a C-level or a leader.
What Suresh should have done is just doing it, because it is in his job description as a Sales and Marketing person. Besides producing marketing jargon, nice presentations or creating weekly reports to the C-levels; he should go there and discover customers, needs, potential sales. If he fails the discovery there is 2 outcomes. First he is a bad explorers, then you need to replace your P&M guy, sorry Suresh. Second, there is really nothing to discover. Then this is good, it can prevent a catastrophe, a potential bankrupt due to going to the wrong way. No offense C-levels, you should thank Suresh.
Lessons learned when you are not promoted because you did the right thing but without telling your boss, who only cares about their own visibility.
So it is more like 'you do not need permission except when you need permission' (no permission to ask your manager, but you still need approval by government agency)
I realise that if you're dealing with incompetent and dangerous retards as bosses you have to sneak sound practice in under the radar. I'm sure that's how things like version control and automated testing made it into many software organisations. But it needs to be realised that this is an extremely toxic work environment and shouldn't be brushed off as easily as saying "you don't need permission".
if a single developer is writing tests when others aren't, it is more likely to earn a reprimand for wasting time.