Working Together
We like working together at Spiff. We go out of our way to welcome to new team members, help each other get up to speed on projects, pair on fixing problems and presenting what we learn back to our teams.
Within any given pod our primary goal is to bring the skills and thoughts of design, engineering, and product together.
Communication Bandwidth
We try our best to organize pods so that data and behavior are owned by a single pod. This allows most collaboration to occur within individual pods where we can make minimize the cost of that collaboration. If you are considering
In most cases, the data and behavior that your pod owns is a dependency for some other pod (or vice versa). Collaboration across pods is more expensive, so we usually invest time into documentation for contracts between pods.
Will a job always be scheduled when a customer clicks the re-calculate button, or does it depend on some other factors? Should we always re-calculate and update a statement when a job has been kicked off?
Troubleshooting and brainstorming is usually still fastest with realtime communications, so don’t hesitate to ask for a meeting or reach out via slack to see if someone is available to talk. But, once a decision has been made, ask yourself how your podmates will know this information the next time they need it. The right time to document something is usually “now”.
Local First Planning
While problem solving, you will often see a whole host of potential solutions. Maybe we can prevent this case from ever occuring with a validation during import? Should we check for a nil value before starting a process or try to catch it in the middle?
When weighing these tradeoffs, it is often helpful to ask yourself how many people have to get involved for a potential solution.
- If you see a way to fix it directly in your own code, it’s probably a pretty fast change.
- If you need to check-in with someone else in your pod, or brainstorm with your product manager, it will probably take a day or two to line up schedules.
- If you need a change from another pod, it will probably require some time to help them understand why the change matters and decide how it compares to other priorities they are juggling.
- If you need multiple pods to agree to a new standard, give yourself a quarter or two.
Sometimes a change across a big group of people will have a big impact on our users and customers. It is sometimes the right thing to do, but when you are looking to move fast it’s worth considering what changes you can make yourself.
Humor and Sarcasm
We want to laugh and joke together in a way that is safe and comfortable for all our teammates. When the individuals involved in a joke all feel included, it can relieve tension and increase team cohesion. We do not make comments or jokes which imply that people are unwelcome at Spiff.
Sometimes we make mistakes and say something which is hurtful or exclusionary to our teammates or other groups of people. When this happens, we own the mistake, apologize and make a concerted effort to prevent that mistake in the future.
If you see one of these mistakes happen, it’s best to mention it in the moment so the whole team knows that it’s not okay. If you don’t feel comfortable bringing it up in the moment, please reach out to someone shortly after. This could be the person who made the comment, your pod lead, your manager, or anyone else on the team you feel comfortable discussing it with.
Large groups calls are an area where it’s especially easy to make a mistake. You might not be considering the entire audience, or be unaware of another recent conversation that relates to the topic at hand. Please proceed at your own risk when making a joke in these situations.