Skip to main content

Sweating the small stuff

 

How Slack invests in big little details through Customer Love Sprints

Most businesses say they love their customers. Slack is no exception!

But what does that mean practically? How do we actually express that love?

One way is to add big, new features. These are effective, essential, even, when it comes to how enterprise software serves its customers. You can read about a few of our most recent here.

But grand gestures can only get you so far. Real customer love — the kind that doesn’t just win hearts, but keeps them for the long haul — is in the details. Details like:

  • Sanding down rough edges in Slack’s user experience
  • Making minor improvements to features we already have
  • Addressing those issues that multiple customers have reported but are too small to ever make it to the top of the priority list

Most of us work at Slack because we want to make great software. We believe that getting the details just right is a big part of making something truly excellent — sweating the small stuff is one of our key competitive advantages. Keeping up with the little things is like doing the dishes or putting the cap back on the toothpaste. It’s little acts of kindness that, when accomplished, create trust and mutual appreciation. Yet when they’re neglected, those details can create serious problems.

At Slack, our product organization has grown rapidly, to the point where we started noticing that this kind of work was falling through the cracks in our roadmapping process.

About a year ago, we realized that rolling out all our big new features over the coming months meant that we would have to set aside all that crucial small stuff that we and our users face every day.

And that was going to become a problem very quickly. Debt was piling up. We needed a new approach.

Introducing: The Customer Love Sprint

We needed to create a more ambitious and reliable practice of addressing the small stuff.

So we proposed something that seemed extravagant at first: the team would take two full weeks out of our regularly scheduled quarter to focus exclusively on small things. We called it The Customer Love Sprint.

It felt like a risk. How would taking a big chunk of our quarter affect our ability to deliver big things we’d already committed to? How would engineers and designers feel about losing singular focus on a big project? How would we ever prove it was useful to the rest of the company?

But if we were going to say that we cared about getting the details right, we knew we needed to put our money where our mouths were. After some debate, we decided to try it out.

Gathering input

To start with, we needed to nail down what details, specifically, we’d focus on in our initial sprint. Of the billion little imperfections, where could we have the most impact?

We were rigorous about synthesizing all the small feedback we had heard from customers and folks around the company. We have amazing channels at Slack in general, dedicated to insights from:

 

  • Customer Experience, including both Zendesk tickets and Twitter
  • Sales
  • All Slack employees and leadership, via a catch-all feedback channel we call “Papercuts”

For this experiment, we — the Designer, the PM, and the Engineer championing the sprint — started to pull these together into a single channel — #customer-love-ideas. This in turn was refined into a list of to-dos that we then prioritized among ourselves.

Selecting projects

What kind of projects would lend themselves best to the Customer Love Sprint? We created a set of principles that we’ve found helpful:

  • Small: Projects should be quick enough to ship to customers in two weeks or less.
  • Holistic: Projects can be part of any core, user-facing Slack experience, and no artificial org structure need constrain what we take on.
  • Requested: Priority will be given to projects from our backlog that customers have been vocal about via Twitter and Zendesk reports.

This led us to a number of specific tasks, including:

  • Improvements to existing features
  • Polishing visuals and content
  • Bugs

It also let us avoid certain kinds of things, such as:

  • Anything that would take longer than two weeks, no matter how important. We left these bigger projects to the general team roadmap.
  • Cool but experimental prototypes. We have things like hack days and time built into larger projects for prototyping the path. The Customer Love Sprint should focus on obvious improvements within existing patterns.
  • Work that could impact or regress the experience of existing features.

The resulting list was then shared with the team, and left open for comment, discussion, and alternate ideas from the team at large.

Choosing our own adventures

Our project list in hand, the question then became: how would we delegate?

Turns out, we didn’t have to. In conventional roadmapping, assignments tend to be top down. This creates efficiency, and preserves continuity and domain expertise. But it can also create a narrow view of the product.

This time, the team ended up self-selecting and organizing around the list of projects. By having everyone choose what to work on, we each got to follow our own particular interests. Teams formed between people who hadn’t worked together over a particularly irksome bug, or something they’d always wanted to make just a bit better.

The sprint was an opportunity for everyone to view Slack with agency over the entire product, not just their typical small piece.

Shipping quickly

Put simply, the first Customer Love Sprint was so successful, we’ve brought it back every quarter since.

Here are just a few of the things we’ve shipped through the program:

1. Little improvements to existing features

Dragging an image into a Thread: You can now plop images from your desktop into specific conversations in addition to the main channel view.

Time zones for scheduled send: When you’re scheduling a message in a DM, Slack will tell you what time it’ll arrive to people in different time zones.

2. Long time customer requests

Recent statuses: If you’ve set a custom status, we save it in case you want to use it again.

Repost a thread reply back to the channel after you’ve sent it: Now you can quickly send any reply out to the channel for all to see.

Reacji solidarity: The same emoji reactions with different skin tones are grouped together.

3. Polish

Uploader accessibility: For years our uploading bar wasn’t contrast accessible. Now it is!

Motion details: Subtle motion details added to a warning when sending files to external users.

Plus, tons of bug fixes, from image flickering on the iOS app to errors in Japanese translation to better rendering of emoji in Twitter links.

Measuring success

So how exactly do we measure success for a Customer Love Sprint? How did we know it was time well spent?

Up front, a few obvious measures stood out, all of which centered on our customers.

  • The amount of work we released over the course of the two weeks
  • Number of bugs fixed
  • Zendesk support tickets closed

In our last sprint, we shipped 75% of projects during the two weeks, with an additional 15% finishing shortly after. We also closed 17 customer-reported bugs, which solved 407 Zendesk tickets.

But it wasn’t all user-facing. The sprint also had unexpected benefits for the team.

Making it a party

While the Customer Love Sprint is not a hackathon, its neatly contained burst of energy gave us an opportunity to make it a break from our ordinary weeks — and a chance to show that our company leadership is committed to this work.

To kick off the week, we invited our Chief Product Officer to give a brief address to the team about the importance of the work. And as the week progressed, a member of our product team did daily recaps of the teams starting up to work on projects.

Finally, at the end of the two weeks, we hosted a demo day with leaders in the company across design, engineering, product, and customer experience acting as judges to give out awards. Past awards included the “Sandpaper Award” (for smoothing rough edges), the “Biggest User Impact Award” (for closing the most Zendesk tickets), and the “Don’t Make Me Think Award” (for reducing product complexity).

While in a literal sense these awards confer nothing beyond bragging rights, they give our leadership an extra place to specifically call out the amazing contributions of engineers, designers, and quality engineering staff.

Bonus: We were able to cancel a lot of our usual meetings during the sprint to give people time to focus on their project — which in turn let us work even more efficiently (and also avoid meetings).

The future is small stuff

Before trying the Customer Love Sprint, it felt like a risky use of our time. Yet as we’ve seen the results, we’ve doubled down.

On one hand, the Customer Love Sprint has allowed us to spend dedicated time on fixing the small stuff. But it also lets us flex different muscles as a team.

  • It’s allowed us to collaborate outside our domain.
  • We’ve trained our eyes to consider the quality of the product as a whole, which helped us once we went back to our product-specific “home teams.”
  • We got the instant gratification of shipping changes quickly, knowing they’ll help people, and getting to see the results right away.
  • And we got another opportunity to celebrate each other.

This kind of work will never be fully complete, and there will always be more to refine. But by making a deliberate investment of time, we believe we’re on the right track toward keeping the product as a whole something we’re truly proud of.

See something small you think we should focus on next? Let us know on Twitter.

Zack Sultan is a Product Design Architect at Slack on the Foundations Pillar, focusing on Slack’s IA on desktop.

Special thanks to: Jess Fain, Brad Monroe, Abdul Munda, Ruth Baril, and Jane Sherman

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...