The Goodwill Budget

In college, I would always take advantage of my Professor’s office hours whenever I could.  They made themselves available regularly, and gave extra help.  Many times with a smile on their face because someone was actually coming to office hours.  Why wouldn’t I take advantage of them? I never understood people why many people didn’t.  

Something I learned by semi-regularly attending my professors’ office hours is that I would develop a rapport with them which paid off in additional help, tips and just general goodwill towards me.  Was this brown nosing?  I guess it could be construed as that, but I wasn’t after better grades.  Most times I was genuinely struggling to grasp a concept from class and needed help.  I was never the type of student to accept “good enough” or “I get most of it.”  I always wanted to get everything. As a side benefit to office hour attendance, I developed good relationships with professors which ended up giving me other opportunities outside of class.

I’ve spent the last couple of years working on client projects at a software agency.  The same approach of going the extra mile to ask a client, or peer, or your manager for their opinion on something, or to communicate a little bit extra with them not only benefits them, but benefits you in the future by building up a Goodwill Budget.

I always liked the concept of a Performance Budget when building web apps.  I think that this idea can apply with your relationships in business (and really anywhere in life).  When you take the time to listen to people, do small, but meaningful extra things for them, and just generally care about the quality of your interactions with them and what you deliver to them, you build up your goodwill budget with that person.  

What could you spend your Goodwill Budget on?  One example is that you can use it to stand firm on a point you believe strongly in where the other person disagrees.  For example, maybe you don’t think that a feature should make it into the next release, but the the other person does.  How much of a Goodwill Budget do you have with that person?  If you have lots of goodwill points in the bank, the chances are higher that if you argue your point articulately, that they will see your point of view better and end up taking your side.  If your budget is low, the other person’s tolerance for your arguments will be much lower.

This also applies to the inevitable mistakes we make as humans.  Others are a lot more likely to forgive small mistakes if you have a lot of goodwill to spend.

Just like any budget, you have to plan to save up before you can spend.  So, if you just met someone, you can’t spend down your budget because you don’t have any.  It takes some time, kind actions and quality delivery to build up your budget.

As I write this, I’m realizing how something like this could be twisted into some kind of nasty manipulation tool.  It shouldn’t be.  Think of this like some kind of bizarre variant of the golden rule – If others treat you with kindness, communicated well and deliver things of quality to you, won’t you be happy?  Won’t you be more apt to give them grace when a mistake is made or they disagree with you?  

Spend wisely!

Software Engineering Culture

An engineering team that is gelling together is a wonderful thing. There is nothing like watching teams of smart people work together to solve really hard problems. They’re so good at it they make it … fun! This only happens when they’re motivated, empowered to do what they feel is right, and not afraid to push back when they feel they’re not doing the right thing.

Getting there is hard. The usual engineering management guidance is usually about hiring the best people – A players don’t do well with C players, etc, etc.

Well, of course. Who doesn’t try to hire the best people? But, it’s really freaking hard to get right! There’s gotta be more to it…

Spotify was nice enough to share their engineering culture strategy in a couple of videos on their engineering blog a few years back.

Their practical approach, based on learning from things that didn’t work, is a breath of fresh air compared to most software management in organizations I’ve seen. I loved their strategy because it focuses on people first as opposed to metrics and engineering rigor. Of course those things are important, but culture is far more important. Everyone does better when they feel comfortable and empowered.

I’ve rewatched these videos many times, and recently took the time to take some notes on the second part that I thought I would share. If you’re intrigued by a particular note, you can go to that portion of the video to learn more. Though, if you have the time definitely watch both videos all the way through.

There is also a Part 1, which is great, but Part 2 has a good overview of it at the beginning, if you’re short on time.

Spotify Engineering Culture Part 2

  • 0:50 – “We aim to make mistakes faster than anyone else” – Fail Fast and Improve Fast.
  • 1:30 – A “Fail Friendly Environment” – Encourage sharing of failures so everyone can learn from them. Some teams have “Fail walls” showing off their failures.
    • “Failing without learning is well, just failing.”
    • Not about fault, about what did we learn and what did we change?
    • Use of retrospectives is huge.
  • 2:30 – “Limited Blast Radius” – Set things up so that in case something does fail, the failure is bounded and not catastrophic.
  • 3:20 – “If Everything is under control, you’re going too slow.” – Mario Andretti
  • 3:50 – Lean Startup – Use narrative to drive product/ideas
  • 5:15 – Planning: Innovation > Predictability. Don’t focus on timelines unless you absolutely have to. Defer commitments to timelines as long as you responsibly can.
  • 6:20 – 10% hack time to let people experiment. If we try enough ideas, we’re bound to strike gold sometimes. And the learning we get out of it is important.
  • 7:00 – People are natural innovators, get out of their way.
  • 7:15 – Experiment friendly culture. Don’t punish for experiments, encourage them. Don’t overthink things. Just do and see what works.
  • 9:40 – Growth pains – create a “Minimum Viable Bureaucracy”
  • 10:25 – Agree on a “Definition of Awesome” before diving in.
    • Awesome is a direction, not a place!
    • If we agree on what awesome is, it helps us get there and track it.
    • Use improvement Katas (make targets towards awesome).
  • 12:00 – “Healthy Culture Heals broken process”
  • 12:45 – Culture spreads through storytelling – Blogs, lunch and learns, etc.