This page references the Bench Engineering Team principles and their supporting assertions.
Context:
Our mastery of technology gives us the opportunity to make an impact at scale. We can ship elegant code that is easily maintainable and scales with ease. We can ship interfaces that are incredibly delightful to use. None of it matters unless real people use it and it makes a difference to the quality of their lives. This means we need to ship often with deep empathy for our customers and rigorous processes that ensure we're always working on the most impactful things. It's not about us; it's about the impact we have on the world.
Axioms:
- Value creation starts with a commitment to improve the status quo
- Building a thriving business will allow us to help small business owners at scale
- We find our best solutions by working backwards from customer needs
- Rapid iterations create short feedback loops that inform great solutions
- The value we provide for our customers must be worth the effort we request from them
- If we can't measure our impact, we can't assess if we've created value
- It’s healthy to defer great ideas when our current work has greater impact
Context:
We've got a big mission. To get there, we all need to be so much better than we currently are. Fostering growth starts as an individual activity: no one can grow for you! We enhance that individual activity by making growth the number one priority of our management team. This is both a carrot and a stick: if you're taking yourself on, we will do everything we can to create space for your growth, and if you aren't growing, we'll have the tough conversations required to make sure you get back in the saddle.
Axioms:
- Growth happens outside of your comfort zone
- Both failure and success are incredible teachers
- Permission to express dissatisfaction + support to drive change = continuous improvement
- Feedback is most effective when those receiving it feel supported by those giving it
- For growth, periods of rest are as essential as periods of effort
- Teaching multiplies the value of your knowledge
Context:
The work we do is complicated, and requires support from multiple groups with different skill sets. Succeeding together is about leveraging these skills along with our lived experiences to solve problems effectively and in a way that complements the other things happening at Bench. To do this, we need to find the right mix of autonomy and communication coupled with a deep understanding of our business and the customer's needs. This takes a lot of practice to do well, but when we get it right, amazing things can happen.
Axioms:
- High performers all share one quality: they make their teams better
- Diverse perspectives and experiences contribute to better outcomes for everyone
- Effective organizations use a small set of objectives to coordinate work across teams
- Social bonds increase empathy, mutual respect, and our ability to do great things
- Context, capability, and trust are all essential for a successful autonomous team
- We are successful in setting timelines when they push us without burning us out
- We break silos and build trust by making our goals, progress, and learnings readily available and easily digestible
Context:
In software development, our goal is to deliver value to our customers quickly and efficiently. To build agility we need to build software that is simple, decoupled and easy to maintain. We need to focus on building only those things that are valuable to our customers yet build it in a way that doesn't close off future opportunities. We must have high levels of automated testing and observability to ensure that we catch issues early and can respond quickly. Finally, we need to be flexible and responsive to changing business needs so that we can continue to deliver value over time. This starts with understanding the direction and making sure that every decision you make is moving in that direction.
Axioms:
- Understanding the future starts with you and your curiosity into the business & the technical vision
- Simplicity and decoupling are essential for building scalable and flexible software
- Building only what is valuable to the customer ensures that we are delivering real impact
- High levels of automated testing and observability enable us to catch issues early and respond quickly
- Clean code makes it easier to maintain and modify our software over time
- Flexibility in our code & architecture is essential for responding to changing business needs and delivering ongoing value