Earlier this fall, CommerceBear got together for our first annual Bear Summit. This was an opportunity for the team to spend time discussing our bigger picture as a company, realign on our core goals, and strengthen our connections as a team.
One of the products of that summit was this set of Developer Values, collecting the ideas that guides how the team works in order to support, empower, and learn from each other. We’re proud to share our defining principles, and hope it provides some insight into the philosophy of our developers.
technical humility; critical of code, not people; we see the problems; change is okay
Whether we’re iterating on a design, nailing down a concept, or writing code, we’re doing it because we know that it is rare for something to be perfect in its first form. As a team, we engage in healthy discussion to refine these ideas using all of our collective experience. By speaking your mind and remaining open to feedback, your perspective and input helps to shape our direction as a team.
We respect each other’s perspectives; there are no stupid ideas. It is only natural for team members with different perspectives to come up with different, sometimes opposing ideas. This is a chance to work together towards a common understanding and grow as a team. You aren’t your ideas; we are our ideas.
product focused; merchant focused; user focused; feasible solutions for the problem at hand
We strive to build reliable software that solves real problems. Every day, we continually improve and provide value through our product.
Improving our product can take many forms. We could provide direct value to our users by adding a new feature, fixing a bug, or improving some flow. It could also take the form of writing technical documentation, fixing tech debt, or improving the developer experience.
We balance our ambitious visions of the future with development, operational, and merchant concerns, and take steps as a team to ensure that we can continue to provide an excellent product to our users.
autonomy; flexibility; we support you the best way for you; choose your own tech and tools
As a team, our processes are always evolving. The way we deploy code, the way we plan our backlog, and how we do standups are all team processes that we share. These are subject to change over time, as we adapt to new team sizes or find better ways to work together. You are a valuable part of the team and we make these decisions together.
There are also processes that belong to you: how you plan your day, how you choose your tools, and how you get tasks done. You can make your own choices to be productive because you know what processes and tools work best for you. The team will not enforce constraints on your processes; you have the flexibility and the autonomy to choose your own tools. However, if you find yourself spending many cycles grappling with your own tools, reel it in and make use of the team-recommended tools.
open source acceptance and contribution; held accountable to good code; clean and consistent
Day to day, we communicate with each other through Slack, Jira tickets, and meetings. We discuss ideas, draft project plans, and help each other think through problems. In addition to this active communication, we are constantly communicating through our code. Every developer reads and writes code; ideas are conveyed, processes are expressed, computations are made. Our code is the most up-to-date description of our software and is written for humans just as much as it’s written for computers.
We hold each other accountable to write readable code that lets maintainers easily understand what our software does and why. When we write code, draft pull requests, and contribute to documentation, we know who our intended audience is and write like someone is going to depend on it later. In all, we strive to meet the balance between code readability and maintainability.
There is no single “right” way for a development team to run, and different teams may thrive under different values. These work for Bear, and underpin the day to day experience of our development team.
A huge thank you to Chris Grass for turning a team’s worth of ideas into a clear, concise summary!
We hope you’ve found something of value to consider. If this sounds like a great place to work, you’re right! (So keep an eye on our careers page…)