DEV Community

Cover image for The Three Rules of Snakes: A Management Metaphor from Netscape's James Barksdale
Ben Halpern
Ben Halpern

Posted on

The Three Rules of Snakes: A Management Metaphor from Netscape's James Barksdale

I stumbled across this anecdote from former Netscape CEO James Barksdale. I'm sure this concept is not without its defects, but it is an interesting way to think about things for software teams.

Well, when we were first getting started at Netscape, and I was the old man working with Marc and all of his 18-year-old buddies, it seemed like they used to love to have get-together meetings to discuss problems that could have easily been resolved at the base level. They could have just taken care of it.

So, the first rule of snakes is, if you see a snake, which is a problem — I had to explain that to one lady who accused me of not liking snakes — you kill it. You don’t shoot it, by the way, you kill it. It’s hard to shoot a snake. Anyway, you kill it. Just take care of it.

The second rule is, once it’s taken care of, don’t keep having debates about it, which is don’t play with dead snakes. And one time, Marc may remember, I cut off the heads of a bunch of little rubber snakes and threw them out in the audience of Netscapers. They loved that and stuck them on their cubicle walls to remind them. Just keep moving forward. Even if you’re wrong, just keep moving. We were so anxious to get products out the door, and we were at lightning speed, thanks to Marc and his folks, we just wanted to keep moving. So, don’t play with dead snakes.

And the last point, which is to me the most important and salient: all opportunities start out looking like a snake. If it wasn’t a problem, there is no opportunity. Because opportunities come from solving problems. So, kill it, don’t play with it, and then they all look like snakes in the beginning. The great business successes have all come from solving some seemingly insurmountable problem. Or non-obvious problem.

I'm not one for killing animals, but I do find this interesting otherwise. We definitely have a similar principle at DEV articulated as "solve the problem at hand", where we look to kill the snake in front of us, not find the solution for killing all future snakes we might encounter.

This is also portrayed in this classic XKCD...

What are your thoughts on this metaphor's applicability?

Top comments (2)

khrome83 profile image
Zane Milakovic

Working at enterprises TOU kind of see two opposite viewpoints. I think a lot of it is tied to experience and where the person is in their career.

The first is, you have people and teams that focus on making sure no animals make it in, snakes includes. The spend a lot of time planning solutions to simple problems. Multiple meetings are set up. Multiple departments are called in. You small simple issue or problem is now a full blown war again the species of future snakes that may never come.

You then have people that are afraid of snakes and don’t tackle the actual problems. They do there Jira ticket when it’s put in front of them. They avoid the hard and complex things. They like to show progress and meet timelines, and don’t want to solve something that takes effort.

These are by far extreamly different examples. And I see them in different times in a developers career. The former is typically with some experience. Either someone who is new to a architecture role. The later is typically someone who is a year or two into the field and starting to “float on by”.

The more experience people may have conversations of the issues and the risks. And then make a decision, understanding the trade offs and how a zombie snake my bite them back in the future. These are best had with the team and transparently with business. Because it is a trade off. Progress now, or possible instability and interruptions later.

belhassen07 profile image
Belhassen Chelbi

First I think the world is going wild with this hoolywood-like what you say and what you don't. A snake wouldn't mind killing you if it finds you're a threat though. And same I'm more empathetic towards animals.

Enough real snakes, this actually reminds me of some clients where we try to discuss the products they want to make. We tend to go explore a lot of problems and the discussion goes on and on (my mistake). What I learnt is to limit the problems, discuss solutions then COMMIT for one solution, don't come back! It's like that snake will reproduce and it's so time and energy consuming.