What makes software “soft”? Software’s easier to update, replace, and adjust than physical artifacts. However, in the wrong hands that softness can turn into quicksand, trapping its owners in a mess that’s easier to rewrite than revise.
We regularly spend time learning, investigating, and training in order to stay updated on the tools and techniques that work best for solving the problems we’re likely to face. We put a high emphasis on reversibility, making architectural and technical decisions that are easy to change (and being careful and clear when making foundational decisions that are more difficult to change).
A wide variety of software development practices combine in just the right way to become the engine of a team that is regularly delivering the most valuable features to their stakeholders. Some of these practices include investing in tooling speed in order to get the biggest benefit out of quick feedback cycles, sharing ownership of code so that the whole team feels empowered to continually improve every part of the application, and a culture that doesn’t tolerate bugs (but still views failure through a lens of curiosity and improvement).
Our team of software professionals wants to build cool stuff, and we’re excited for the challenges that a new product puts in front of us. We also recognize that getting started is the easy part, and keeping a product active and maintained over the long haul is the true measure of success. We want to design our systems in a way where they’re easy to maintain, and easy to make changes to when the business sees new value to be captured. We prize reliability and maintenance, along with flexibility and adaptability.
Knowing at the end of the day that you’ve produced something of quality is its own reward. Being supported by a team all working together towards a common goal to create the best product they can, together, creates a sustainable environment where excellence begets excellence.