While Cognito Forms itself is only a year old, our team has been developing the approach, technologies and target features for almost five years, based on decades of web consulting experience. When we set out, we knew we wanted to create software that was inherently intuitive and easy to use, while providing powerful features we found missing in other products.
Although we have great ideas for what a form builder should be, we launched Cognito Forms before implementing everything, because we wanted to mold and shape the product through the experiences and feedback from our customers. Now that we have thousands of users happily using the product, we are getting this fabulous feedback in droves! So our challenge, and the topic of this post, is how we strike the balance between the features our customers want and what makes sense for the overall direction of Cognito Forms.
Rachel Andrew of edgeofmyseat.com and Perch recently blogged about how Perch made the shift from consulting to product development. We really enjoyed her post, so we thought we would share with you how we manage the feature requests we get from our own users:
Step 1: Ask For Feedback
We knew from day one that we did not have all of the answers about what Cognito Forms should be. So from our launch, our support page has prominently asked our users to submit feature requests for things they would like to be able to do but cannot find in our product. This simple thing–asking for feedback—has been a very effective way for us to engage with and respond to the needs of our customers.
Step 2: Triage
Sometimes these requests are simply support requests, where users need a little help figuring out how to do something that is already supported in the product. In these cases, our support team quickly responds with workarounds or other solutions where they can. However, when these requests are for features that are not yet supported, we still want to be able to respond in a positive way.
Our solution for managing customer feature requests is Trello, a fantastic tool that allows you to create “cards” that can be tagged, assigned to users, and grouped into swim lanes that identify where the cards are in the process. We actually “borrowed” Trello’s own process for managing features, adapted for our own needs.
When our customers request new features, we immediately add them to our Idea Board. This is publicly accessible and linked from our website so anyone in the world can see, up-vote, and comment on any of the features in the development pipeline. We then provide our customers a link to “their” feature, so they can subscribe and track the feature’s progress as it moves from our backlog through development and testing to production.
Step 3: Cleanup
Sometimes the requested features are very specific—niche needs—or potentially complicated for other users. Other suggestions may have already been requested, or may be planned as a sort of sub-feature that is crucial to the development of another feature. Periodically, we clean up and consolidate these ideas, generalizing overly specific requests, adding comments about possible solutions, and categorizing features using colors to help us visually understand what part of the system the feature affects.
Step 4: Review and Assess
Following each production release, we immediately move released features into new swim-lanes denoting when these features were released to production. These swim-lanes are titled “Live (Month/Day)” to indicate that the features are live and ready for action.
Next, everyone on our team individually reviews our proposed features and “sponsor” features they feel are most important to overall direction of the product and/or most useful to our users.
Finally, we meet as a group and each team member presents their vision for their sponsored features. We work through all of them, and collectively prioritize features based on customer feedback, our overall vision for the product, and what’s possible based on where we are today.
Step 5: Develop and Promote
Features that have been selected are promoted to the “Next Up” and “In Progress” swim lanes so our users know what we’re working on and where we plan to go next.
Overall this system works very well for us, both internally and externally. Our users get invested in the direction of Cognito Forms, and know that we’re listening to their needs and wants. That converts passive users to more active, engaged users and gives them a voice in our product. And our team is more engaged too, working together to sponsor and prioritize features and seeing real feedback from our customers on the board.
What do you think of our approach to managing features? How could we improve the experience for you?