I have been telling my daughter sea stories from my time on the USS Richard B Russell (SSN-687) - the ones I can at least. She loves hearing about submarines. She asked me the other day “Daddy, were you good at your job on the submarine?” I said yes, I was. “How did you know?” she asked.
Easy. “Well honey, I was the battle stations Reactor Operator. If we had to fight, I was the guy that they wanted to run the reactor.” She thought that was cool.
“Was everyone good at their job?” she asked.
“Yes, honey. Everybody had to be or we could all die. That’s what it meant when you earned your dolphins. It meant you were good enough to be trusted to do your job.” She nodded. She understands what dolphins mean.
Then she asked me a really good one. “Well, are you good at your job now?”
“Yes, I think I am. I have all the right experience and the CEO and the board hired me to do this particular job.”
“But how do you know?” she pressed.
And that, my friends, is the core of why I still think so much about my time in subs and why I still think so much about my former colleagues and our exploits. Yes, there may be a little middle age retrospective going on, but from a bigger picture it’s been bubbling in my soul for a while now. Will I ever get a chance to be in an organization as elite and superior as I was when I was in my 20′s? How do you measure elite?
Don’t get me wrong: I have worked with some great teams and built some great technology. I have made great friends who I would work with again anytime – and in fact have pulled a LOT of those folks from over 15 years of Silicon Valley experience to join my current team. But they are not a submarine crew. And we lack the framework for measuring performance that we had in subs. So I ask: what constitutes an elite development team?
How would a modern development team structure a process to get judged by your peers – not out of some book or exam where a certification company makes profits – but from working engineers and leaders who can measure your skills and give you the acknowledgement of your capabilities. And even within that, how do you measure excellence? On a submarine, when the COB/Bull Nuke (the senior-most middle managers on a sub) designates someone the battle stations watch they are saying that person was the best on board at that job at that time. Anyone wearing dolphins belonged there, no doubt. You knew what they were made of. But among them some were on top of their game. And the crew knew it.
To some extent that happens on small engineering teams. You know who you can go to for a nasty networking problem, or who can re-write a chunk of C code in a hurry, or who can index a database to make it reply faster… excellence makes itself known. But on bigger teams at bigger companies, it’s often about who plays better politics, or plays golf with the right folks, or who can just look better. Annual performance reviews are quite often a joke and don’t really tell you at all how you are doing unless you have a strong manager who believes in the process of continuous improvement and career planning. And reviews are often mostly secret. There’s not really anything like dolphins on someone’s shirt to tell you who is really capable. If you are a hiring manager and looking at someone’s past it’s often about what school they went to, or whether they worked at companies whose Engineering teams have a good reputation. There’s no objective way to measure someone. On subs, a new guy shows up and he has dolphins on and you know quite a bit about him (and now that there are female officers, her).
And while a person may think they are good, they may not be. It’s true that the younger you are the more likely you are to overestimate your skills. You think you are at a certain level, but in reality you are below that – we are often blind to our own gaps. On subs, the crew would make those gaps glaringly visible and then help you fill them, since those gaps could get everyone killed. In the workforce today, it’s more about being friendly and to be fair, no one is going to die, so it’s go along to get along quite often. The open source world is a meritocracy, of course, but as the OpenSSL heartbleed debacle has shown, contribution to open source alone is NOT indicative of elite status. Daily standups are good – they provide the opportunity for folks to publicly share what they got done. But it’s at a team level at best.
I don’t really know how to translate submarine dolphins to modern software development. I’m still thinking about it. So my daughters question still rings: “how do you know you are good at your job?” In today’s world of software development, that’s a really good question.