Your Baby Might Be Ugly

Everyone thinks their own babies are beautiful. Some probably are but there are plenty that really aren’t. In fact I remember one particularly interesting comment -”ugly people produce ugly babies”

This happens in code too.

Collective code ownership has many challenges. Here I focus on the person pitfalls.

Imagine you’ve just spent the last 3, 5, or even 10 years nurturing and grooming an insanely complex (and dare I say “clever”) functional area of a product. This has been your working heart and soul for years - apart from the occasional customer to distract you. It follows your own unique,  “perfect” coding style and conventions. You’re so damn good you don’t need unit tests, you instinctively know and understand every intricate tracery and element of logic in there.

Why then if it’s so perfect are you not willing to share?

This is where “Bad Captain” starts to kick in with me…

  • Do you believe that every other developer in the building is less capable than you?

(OK, sometimes it might be true but that’s very rare.)

- That’s fine, you can peer review and provide feedback if they don’t meet your standards right? It might be an emotional lurch to start with but seeing someone else succeed and recognize your greatness must surely be rewarding right? I’ll help you if you need.

  • It’ll always be quicker if you work on it. It’s just a waste of time and effort to train someone else up.

- Sure. Except if we had 3 or 4 people capable of working on it in parallel we might get everything that’s on the wish list for it done this year and you might be able to do that other interesting stuff that the rest of the team have been playing with. In fact, I’m willing to invest if it’s that important…

Bad Captain starts to twitch…

…and if it’s not, why do I have someone who believes they’re “one of the best” working on it - I want my “best” people on my priority tactical and strategic items.

  • You’ve been doing this as your own pet-project on the side and it’s not ready to share.

- If it’s important I want a team on it. I’ll happily lobby for some strategic investment. If it’s not as important as anything else we have committed right now I want you helping the rest of the team out…

Bad Captain…

- even if you’re good, you’re not “special”, don’t expect to be treated any differently than the rest of the team.

These first reasons are almost valid. But not good enough for me. The more of these I hear the more I start to twitch, the more terse I get and the more I start to frown and tense up.

Suddenly it’s too late! Captain Hyde takes the helm!

Here’s why Captain Hyde thinks you’re not sharing…

  1. You’re lazy, you’re only any good at this one area and don’t want to have the responsibility of teaching it or learning something new that you’re not so good at. – Time for you to learn a bit about intellectual humility.
  2. If you relinquish control of this code, you relinquish your seat of power, you’ll make yourself dispensable and that can’t possibly happen, you think you’re far too important for that. - I believe in good people, if you’re one of them I’ll fight to keep you. If there’s a squeeze, even the indispensable will get the push. In fact in my experience, the all-rounders are more likely to find new homes.
  3. Secretly in your heart you know it’s loaded with technical debt, years of warts strapped onto the sides, a catalogue of compromises and mud that doesn’t mirror the patterns of the outside world in the 21st century. – In fact I could probably find something open source that does the same thing. Quite frankly it’s an ugly baby that should have been put up for adoption or surgery years ago but your professional pride won’t admit it.

Captain Hyde can’t think of any good reason other than personal self-preservation or embarrassment that someone who is a single code owner would be unwilling for other people to work on and learn their code.

Maybe I’ve just been in management too long but I distinctly remember in my early coding years a call with a colleague in San Francisco where he said:

“Damn, you’re the only guy in the world that knows this stuff man”.

- at which point I felt that little clench inside that said. “I need to find and train my replacements up as soon as I can!”

A similar counterpart of mine in the US at the same time got thrown another pile of stock options every time he threatened to leave - that wasn’t my style as a developer and it’s not my style as a manager either.

Now despite all this ranting, there is another very real problem.

Developing collective code ownership from single points of failure on complex products is time-consuming, expensive and probably not what my business stakeholders want my team “wasting” their time on when we already have experts who are “perfectly capable of maintaining this themselves”.

It’s a fair point.

With a team who are willing to share but have no slack, if I want collective code ownership to succeed I’ve got to be able to market it properly.

Share
avatar

About The Captain

Captain Crom started programming and debugging games from magazines on his Brother’s BBC as a small boy in the early 1980s. With early qualifications in both computer science & art and a love of live music it became clear he was destined for bad things. His tyrannical ways commenced with a degree in Computing & Informatics at Plymouth and from the mid 1990's a career in the software industry. After formative years as "The Scourge of the Thames Valley" between Reading and Bracknell with occasional raids on the San Francisco Bay area, since 2004 he has been seen sailing stretches of the A10 North and South of the Isle of Ely with the primary source of his raids targeted around Cambridge. Sightings have also been rumored as far afield as Scotland, Norway, India, Nevada, Florida and Georgia. The Captain has served in companies ranging from successful startups and ailing dot-coms to global corporations, spanning roles from IT, consulting, support, development and management through to agile coaching. The common thread in each of his roles is that he has always chosen to join software product groups - usually large-scale enterprise software. His large-scale product and organizational focus differentiates him from the more common textbook agile captains. (Other differentiators include his distinctive hoop earrings and love of spiced rum) The Captain's Agile experience started with a blend of FDD and XP in what he describes as "the most disciplined team he had ever served with". He subsequently moved onto using Scrum and XP blended with Theory Of Constraints, Kanban and Lean philosophies to improve software delivery techniques in other organizations. He believes every member of a delivery team should spend time with customers supporting the product they produced. “Sitting at the dirty end of a product (or cutlass) completely changes the way you think about business processes and write software for the rest of your softwarefaring career!”
This entry was posted in People, Technical and tagged , , , , , , , . Bookmark the permalink.

One Response to Your Baby Might Be Ugly

  1. avatar Ship's Rat (aka The Phsycic Tester) says:

    Captain Crom

    Absolutely spot on. I think I know a few of these developers with ugly babies! You should try testing their code – it’s impossible as they never tell you what they are working on or what they are delivering. It’s too difficult for them to explain to a lowly tester. This is where the tester’s phsycic powers come in handy – as all good testers have this secret skill. So what do we do about these developers with ugly babies? All we can hope for is that they get taken away from the roles that they are in and put out to pasture. We could castrate them so they stop having ugly babies. But who is going to have the courage to do this?

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>