One of our core principles at Buoy is to accept change. A common motto is “we can’t be afraid to be wrong”. What does this mean? Our team builds software in an agile environment. Everyday we have to make lots of decisions. What technology should we use? How should we design the solution? What is “good enough”? We can’t be afraid to be wrong. Sometimes, the best path forward is to make a decision and learn. This is what agile software development is all about. Learning from our experiences. Learning from our software out in production. Learning from our customers.

Over the last few months at Buoy we’ve been growing. Our team size has been growing along with our software. As such, we’ve had to spend time evaluating our previous decisions. How did we end up with 3 different ways to use feature flags? Should we continue to use GraphQL for all the things? The truth is, we’ve made decisions along the way that were the best we could make at that time. We have to make decisions with the limited knowledge that we have at a given time and within the constraints of timelines and business needs. As time goes on, we’ve learned and we must be sure to set up time to re-evaluate our decisions and grow from those learnings.

There’s 2 things we should always be aware of.

  1. Beware not to fall into the sunk cost fallacy. Just because we’ve spent some time effort on something, doesn’t mean we should continue down the same path.
  2. Don’t introduce change just for the sake of change