scottparker.co
Blog About RSS

#
Monoliths Built to Last

Monday, July 2nd, 2018
Posted in leadership

Here’s a fun fact about my career: in almost a decade of working in Ruby, I’ve never been paid to write rails new into a console.

At Groupon and Braintree I’ve helped build some of the largest and longest-lived Rails monoliths in the world. As such, I’m sometimes asked for advice on writing Rails code that lasts.

Someday I’ll write more on this subject. For now my definitive answer is my last talk at Ancient City Ruby, “Ancient Rails”


I’d also be remiss if I didn’t link to this excellent series on the topic from Braintree’s original CTO, Dan Manges, who had a major role in many of the things we got right.


#
Leading by Example Isn't Enough

Monday, June 25th, 2018
Posted in leadership

In a recent coaching session, a manager said of a teammate “Why can’t they follow my example and act more like me?” It’s a natural desire but an effective manager has to recognize a hard truth: leading by example doesn’t work, at least not the way we expect. That’s not to say we shouldn’t use it, but as managers we shouldn’t expect any behavioral changes in others based solely on how we conduct ourselves.

Bummer, right? Why is that?

Not Everyone Wants to Be Like You

Leading by example leans hard on the assumption that your audience actively wants to emulate you. Even if I admire your work, there’s countless reasons why I may not want to mimick the way you work. This is true even of my direct reports who also manage - just because we have similar roles, not all of them want my job or ask themselves “what would Scott do in this situation” at every turn.

Noisy Signal

Communication and observation is hard. We’re raised on fables and parables which cut out all the extraneous information so that a lesson is made obvious. These have nothing to do with the real world though. Consider this simple story:

Taylor takes a breath before speaking in a flat voice. “Production is hard down - we haven’t had any 200-level responses in the last two minutes. I need someone to dig into our stack and see what’s wrong while someone else reaches out to Customer Service and makes sure they’re aware.”

Ask yourself this: if you want to do one thing to be more like Taylor, what behavior should you emulate?

Here’s an incomplete list of possible answers:

  • staying calm in an emergency
  • speaking with specifics about production incidents
  • including the rest of the business when something is wrong
  • delegation

If Taylor is trying to lead by example then it’s anyone’s guess what we’re supposed to pick up.

Even if you cheat and say “all of the above,” you’re still relying on others to make detailed observations of you in the middle of your interactions. On a good day I’m just about able to walk and talk at the same time, let alone get all the subtleties from the above. That’s a big ask and one that is unlikely to pay off.

No Mechanism for Feedback

Let’s say you get lucky – someone wants to emulate your behavior and even picks the right one. In the lack of explicit conversations about these behaviors, there’s no way for this individual to get feedback on how well they’re doing. The only hope is that you notice their mimicry and are able to give them further guidance. Otherwise, you are just hoping they figure it out themselves.

How to Make Leading by Example Work Anyway

Leading by example is still an effective management technique despite all these issues, particularly with other managers. To make it work, you have to employ one of the most important tools in the managerial toolkit: explicit expectations. In other words, you have to have a detailed conversation about the behavior you want someone to emulate in detail.

Using yourself as an example can be awkward the first few times you do it. You also have to be careful about how often you do this - if each 1:1 drifts into a conversation about your own behaviors and challenges, you risk becoming a narcissistic leader. When these conversations are used thoughtfully, it can be a powerful way to mentor your team and bond through shared challenges.

Going back to the earlier example, imagine if Taylor had said something like this in a 1:1 prior to that moment:

“The next time there’s a production outage, I want you to focus on making fast decisions and communicating them concisely.”

Now Taylor has framed their behavior in a whole new light. The extraneous details can be ignored and Taylor can provide quality followup feedback as someone does or does not emulate this behavior.

What do you think though? Have you found other ways to make leading by example work for you? I’d love to hear them if so.


#
The Four Levels of Autonomy

Monday, June 18th, 2018
Posted in leadership

Engineers crave explicit feedback and expectations, and yet it’s often hard to provide these when coaching on ownership and leadership. It’s frustrating for all involved - as managers, we want to provide goals but oftentimes struggle to go beyond “I want you to handle problems like I do.” To solve this, I’ve found the following tool super helpful for this - the Four Levels of Autonomy. I’ll outline them briefly and then explain how I use them.

From highest to lowest autonomy:

  1. Take action and inform later.
  2. Identify solutions with a recommendation for action.
  3. Identify problems.
  4. Wait for instructions (AKA “The Danger Zone”).

In general, I coach leaders to work at those top two tiers depending on the domain, its risks, and their expertise. In both cases, the individual is responsible for identifying opportunities, the top skill I need leaders to develop. It allows me to throw increasingly big problems at them without devoting significant time to getting into the details of their expertise.

The third tier, “Identify problems” is generally a good starting place for juniors or those learning a new role/domain. I’ll typically provide gentle coaching to get to that next step, identifying and recommending solutions, but it’s okay if that skill is still developing. Ultimately though, I want teammates to grow out of this level for two reasons. It requires an inordinate amount of time since their manager has to have most of the same context as the individual so that they can design solutions instead. It also robs the team of the creativity and insight that this person would otherwise bring by working on solutions.

The last tier, “Wait for instructions,” is a dangerous spot to be in for very long at any skill level. The challenge of waiting for instructions is that it requires another person to develop enough context and detail on their teammates’s responsibilities in order to provide detailed instructions and identify problems. It’s a colossal waste of time and is usually only acceptable at the very beginning of someone’s tenure.

Of course this framework doesn’t cover all leadership gaps and still varies on a case-by-case basis. Still it’s been a great way to take feedback like “I need you to take better ownership of problems” and distill that into specific outcomes which are or aren’t happening. If you end up using this framework, I’d love to hear how it goes.


#
Drafting RoboRosewater

Saturday, July 16th, 2016

I love, love, love the RoboRosewater Twitter account. It brought me back into Magic after a 18 year hiatus. Most of the cards are hilarious gibberish, some are playable or near-playable, and some few are both playable and novel cards. After following the RoboRosewater account for a long time, I decided to build a draft set out of the cards from or derived from RoboRosewater cards. How hard could that be?

Read on to find out.

FIRST, A GIANT DISCLAIMER

I don’t know Magic particularly well. This is my third ever Magic draft. I would rate my skill somewhere between “RTFM” and “lol.” I still get confused about simple things like when you declare blockers vs assign damage. I still say “interrupt” all the time. If you are reading this to follow in my footsteps, be warned: here be dragons, lots of derp, and a bit of hherp too.

HOW ABOUT A SECOND DISCLAIMER?

It’s misleading to call this a RoboRosewater draft due to how many changes I made. The more accurate way to describe this is a set heavily influenced by RoboRosewater. When I made changes, I kept the title of the card and tried my best to keep the spirit of the card intact. This draft set probably isn’t as wild or fun as a pure RoboRosewater draft set. If you want that, I highly recommend this instead:

Goals

My goal in building this draft set was pretty simple. I wanted to make a set of cards that could be used in a mock draft (not a cube of singletons) under the following constraints:

  • Incorporate cards from RoboRosewater, staying as faithful as possible.
  • Avoid cards that completely disregard the color pie like white counterspells.
  • Make sure each color is playable - has a good mix of powerful cards and generally adheres to a sane mana curve.
  • Make sure each game is playable  - there shouldn’t be any cards so horribly broken that the opponent has no chance to respond before the game ends.
  • Generally respects rarities - bad-to-solid cards at common, solid-to-great cards at uncommon, and good-to-bomb cards at rare.

My purpose with these constraints was to simulate a proper set, but also to allow people to unleash their inner planeswalkers. In a set with no deliberately designed archetypes or stragies, who in our group would be able to discover and exploit the most powerful synergies and decks?

Process

I ended up having to make a number of tweaks as I went through this process. The primary cause is that not all cards are created equally. RoboRosewater makes green cards almost twice as often as black cards for instance - 39 total playable green cards vs 22 black cards when I last looked. It’s a similar story for types - 117 creatures vs just 51 sorceries, instants, and enchantments.

Because I wanted this to be a draft simulation, I also had to make costing changes to smooth out the mana curve for each color. I used the draft frequencies of Shadows over Innistrad as a starting point and came up with the following rough frequencies by rarity:

  • A given common should appear 2-4 times
  • A given uncommon should appear twice
  • A given rare should appear once
  • A given mythic garbage should appear once

Furthermore I went with the following per-pack distributions:

  • Common: 9.67 cards
  • Uncommon: 3 cards
  • Rare: 1 card
  • Mythic Garbage: 0.33 cards

Wait, Mythic Garbage?

A RoboRosewater draft wouldn’t be complete without a few playable but totally useless cards. I couldn’t bear the thought of leaving out good ol’ Racka Rornoshy for instance:

Since the power level of RoboRosewater seemed higher than “average” Magic, I repurposed mythic rares as mythic garbage instead.

Changes

Most changes were limited to costing, color changes, or cleaning up the text to conform to modern templating and fix minor illegalities/misunderstandings. I removed or altered mana abilities on creatures and permanents to ensure that any two-color combination was equally draftable. This meant that a creature or artifact never generates a color of mana that wasn’t required to cast it.

RoboRosewater loves to refer to tribal themes where it doesn’t generate many creatures within the tribe. I made every effort to fix those references so that no participant in the draft felt misled and every tribal power has a least a few members of that tribe in the draft.

I had to heavily edit a number of lands. RoboRosewater loves to generate lands that are pretty bonkers. For instance, here’s the original Wulder of Boon and Fire Sheap:

Neither is very compelling or sensible on their own, so I combined the spirit of Fire Sheap (land with consumable counters) and Wulder of Boon (land that can adjust p/t or generate mana) to create the final versions of those two cards that made the draft:

Finally, I made changes to extrapolate interesting keywords and effects that weren’t defined by the cards themselves. Joto of Same Uftine is a good example - Hherp is interesting enough that it should do something related to casting from hand…

After thinking a lot about what it meant to “cast a card from hand”, Joto became this:

(Joto also gained reach because green was desperately short of ways to deal with fliers)

Manduj Masthorow is another good example - what is “borest strike” exactly?

The idea for this definition didn’t even come from me but from one of the Twitter responses:

Thus, Manduj’s final form:

Enough Already, Spoil Me!

Thanks for bearing with me. I just wanted to make sure you understood the intent and constraints behind some of the cards that were changed.

All Commons, Uncommons, and Rares (imgur)

All Mythic Garbages (imgur)

What Happens Next?

We are currently playtesting this draft set. I do not recommend putting together a draft of these cards at this time. Even just the initial draft revealed a few problems - Hydrobow Sunchaser is unintentionally overpowered as it can return itself from the graveyard. On the flipside, I took the original Fortigang Tramber and made it even worse, creating the least liked card in the draft.

At Braintree we turn drafts into “draft leagues” that run over the course of a couple of weeks. When this league finishes, I’ll post…

  • A revised set of cards that include balance tweaks we’ve discovered like the above.
  • The two decklists of the participants in the championship match
  • Exact card distributions for an eight-person mock draft of this set and a Magic Set Editor file for printing or modifying them.

Finally, let me again express my gratitude to RoboRosewater by paraphrasing one of my favorite quotes:

If anything in this set brings you joy or fun, all of the credit is due to RoboRosewater. Only the mistakes are mine.

Please feel free to ask any questions you have about this via Twitter.


#
Frodo

Wednesday, May 18th, 2016

Two weeks ago our dog Frodo passed away. It is a wound I still carry with me. While he will never return, by sharing his memory he is never completely gone either. These are some of my favorite Frodo moments.

Frodo loved humans intensely and indiscriminately. Sit still for a moment and Frodo was likely to plop against you with violent force. Virtually everyone loved him right back immediately. Our youngest niece particularly adored him.

Frodo dressed up as Frodo for Halloween. He was a tremendously good sport about it.

Frodo and his sister Sam were inseparable. We bought multiple dog beds - they usually went to waste as the dogs would rather be near one another whenever possible.

Seriously, they were inseparable.

This is one of their first car trips after we adopted them from Midwest Boston Terrier Rescue. It would take Sam awhile to adapt to a new home with new people, but Frodo was loving and welcoming from day one.

Anytime I was on video conference at home, as I was in this photo, Frodo was very likely just out of the camera. Apologies if you saw his ears or heard his snoring.

This is how I will always remember Frodo. For him, “come” was an easy command. “Stay” was the challenge - it meant being far from Allison and me.

I miss you so much, buddy. I am glad to have had the time together that we did. I am all the better for it.


« Older
Newer »