As soon as you release software, as soon you will have feedback.
But releasing software is not something easy. You can’t just release it. Cause if you don’t figure out how to keep quality high, you will become an expert on how to deliver bug fixes faster. That’s not the point.
A good approach gathering requirements and finding a better understanding of the business is important. Understanding what the team needs to learn in order to start delivering a feature, is also important.
One other problem the team needs to work on is about marketing, and community related questions if that’s the case.
If you are releasing software, it’s expected some blogging about new features, video posts and other ways to communicate what’s new. So it is not just about coding and throwing the solution to your customers. It’s about getting marketing and sales teams together and close to you. But at the beginning, you need to talk to your beta users, alpha users, and as your feature is not fully ready, your documentation about it is also playing with the same mode. You need a more simple solution to share information with your loyal-vip-i-wanna-see-first customers.
And hey, remember! The release process can be a simple thing and evolve from that. It can be a landing page where you are validating something. Maybe you are learning about a problem, having conversations with people related to the problem, getting some confirmations about opened questions (3Cs), and you continue having that discovery/delivery movement until you find that just enough moment. By doing this, you are releasing your solution to a problem. You can start playing with 10 customers, 100, 1000 and so on until you get your whole customer base impacted.
Soooo… How this release process happens in real life? 😛
- Start with a little text about your new feature. Call it “the 1 paragraph vision”. 🙂 If you are building user stories, you ask questions like why a feature is important, what is needed, who will have benefits, how can we understand that we have finished the feature… but sometimes we need extra information. Ok, this feature is ready… so what? What will change in your customer experience using your product? We want to engage our community to look at and care about this new stuff we are releasing.
- Deliver information in different channels and accordingly to your customer base. Business people and technical people may not want to see the same information. Find what are the different roles inside your community in order to understand who to prioritise first.
Release until the “just enough” moment. We can continue discovering stuff, playing with the card, conversation, confirmation process. We have the capacity to play with discovery/delivery as we have the capacity of a team to play with. We want to have our customers to have a feel about whats happening as soon as possible, but may be not done with the feature.
- Have cadence. Every X number of weeks, have a showcase. Tell your people what’s new and what’s next. Start with your internal team, and as you feel comfortable or as you have someone to talk to externally, start broadcasting information. If you have 1 client, you can start sharing information to the world. 🙂
- Understand what’s value to your customer. If you understand what’s the deal with your customers, you will find more and more opportunities for conversations and feedback. Get your schedule and go see some prospects or customers. Pair with someone in your team if you don’t feel ready to do this alone.
I believe that having this cadence on delivering (deploying + releasing) and continuously checking with customers if we are going in a good direction are the basics to let things flow. The discovery and delivery modes are inside that game as you are learning and building new stuff.
— Daniel Wildt
P.S.: this post was started back in 2012, and it get’s finished jan/2018 after watching two professionals I care and respect a lot: David Hussman (The Dude) and Joshua Kerievsky @ #ModernAgileShow ep. 20. Why it took me 6 years to finish writing about this? Don’t no. I just let it flow. 🙂