I just got home from a week-long retreat with the rest of the team from Cucumber, along with a special guest @salfreudenberg. We started the meetup by reflecting on and sharing the values and motivations that have brought us all together, trying to sum them up into one short, memorable statement of purpose that expresses our shared mission.
We covered the walls and windows with hand-drawn posters showing various attempts at distilling into words the meaning behind the stories we told each other. We couldn’t quite find the words to do those stories justice.
This post is an attempt to share the essence of that mission with you. To give you an idea of the people who make up our company, what we believe in, what we stand for, and what you should expect from us over the months and years to come.
Rubbish software is a waste of human potential
When software delivery goes wrong, everyone involved is made miserable.
The customers or executives who commissioned the software feel cheated by the spiralling costs and missed opportunities due to late delivery.
The end-users feel the frustration of wasted hours working around bugs and missing features as they try to actually make use of the shitty product.
The development team work long hours, feeling pressured and overwhelmed, only to learn that their end-users hate what they’ve made and the executives are pissed off with them.
And the code they’re written is so rotten it will have to be thrown away and re-written inside five years.
It doesn’t have to be this way
Each of us working at Cucumber has experienced the sheer joy of working on a software delivery team that clicked.
Where the developers, end-users and customers had regular open lines of rich, meaningful communication and feedback.
Where the pace of delivery was exhilarating.
Where the end-users were passionate advocates for the software product, and the executives sang the praises of the development team.
We want to share that joy with everyone
The practices we’ve used over the years to be in that wonderful state that makes great software inevitable are not some secret sauce, available only to an elite.
I’m not a great programmer, I’m just a good programmer with great habits.
— Kent Beck
These are real, tangible everyday practices. Practices we believe anyone can learn, if they’re willing to put in the hard work.
We care greatly about helping other people discover just what a wonderful, creative activity software development can be.
But sometimes it feels like it might take a revolution to get there.
We’re learning all the time
Is this just about Cucumber and BDD? No.
Are we experts with all the answers? No.
This is a tremendously exciting time to be working in software. We love experimenting with new practices, developing new tools and sharing what we’ve learned and built.
We love working with organisations, big and small, and learning how the dynamics and culture can be shifted to get better results.
We’ll never be done. There is always more to learn.
Collaboration is the key
If I have to find one word to best express the essence of what we consider to be fundamental in all of this, it’s collaboration.
Being part of a community that cares about collaboration is what drew all of us into the BDD community in the first place, and into the XP community before that.
Collaboration is how Cucumber, the open-source tool that brought us together, is built: thousands of collaborators all over the world working together on the same product.
Collaboration is how we’re building Cucumber Pro, working closely with our Early Access Programme customers to drive our priorities on a daily basis. Collaboration is why we’re building Cucumber Pro, so that everyone on the delivery team can collaborate on shared, executable specifications.
Collaboration is what lies at the heart of the way we run our business, involving everyone in key decisions and ensuring every voice is heard.
So there you have it. To some all of this up into a short, memorable phrase or two will take some distance, and some persistence. Watch this space.