A ClickUp user recently asked…
Since ClickUp seems to be so great at releasing well-thought-through features extremely quickly, I’d love to someday see a blog written about your team’s approach to product development ->
How you decide on features/improvements (including using your Canny-powered feedback board) and how your team designs + develops so quickly, including using ClickUp itself, along with any other tools, such as Figma for wireframes + prototypes (as mentioned in a help video).
Thanks for noticing!
In 2018, we released 287 new features, plus tons of improvements.
In this post, we’ll detail our process *exactly* for releasing these features, showing you step by step how we use ClickUp to build ClickUp.
Buckle in, here we go:
Prioritize What We Add Next
Think of this as the ideation or brainstorming stage. But really we don’t brainstorm too much. Because we’re actively involved in using our product, the ideas just flow. We’re always thinking about how to level up ClickUp.
1. Ask: What do we need to be more efficient?
We’re really selfish because we think about what we would like to have to make us more efficient. . Then we build it for ourselves first.
ClickUp is meant for the whole organization to use, and because our own team covers a wide range of disciplines (business management, sales, design, software development, and marketing), the ideas come fast. No part of our organization is shut off from making suggestions about the product.
2. Consider what our clients want
From the very start, we’ve been open to customer feedback. That’s why we love using Canny as a feedback board and means to share our product roadmap. We also use our support messages to balance out our own priorities. If many users are requesting similar capabilities, that definitely has a lot of weight for what we do next.
3. Weigh the cost of development time with the largest payoff
The next thing is to accurately scope the development of a new feature versus what we think will have the best benefit for all of the teams that use ClickUp.
This is the art of releasing features because often customers or members of our own team won’t exactly know how large a feature is or the work involved in making it a reality.
Our development team balances what can be done with the resources at hand (that’s project management, right?).
4. Align similar features to be developed in parallel
Another part of development is understanding what needs to be done and then properly scheduling that to optimize your team’s work. At ClickUp, this is paramount. We must properly understand what our team can do as a whole and also what each individual contributor can do. Then we align what needs to be done with the team’s capacity and hit the flow state of development.
When you group similar features together, there’s a lot of synergy that comes out of that and we’re able to head off bugs or add feature improvements before they’re even released. We don’t silo our product development, so there’s a constant dialogue about what can (or can’t) happen.
Our team creates Sprints and builds based on that alignment.
The features have been set for this sprint. What’s next?
5. Prioritize the tasks
In ClickUp, we have a sprints Project and then create a List for each upcoming Release. From there, we add our tasks and any important details that relate to the new feature.
Note: Start your own development project with this amazing template in ClickUp. Based on our own sprints!
6. Estimate the time for each
This is often an overlooked piece of development. Our development leads will estimate the time it takes for a task, which helps create a release schedule. This also helps the team determine if there’s any room left for hotfix or backlog items.
7. Set up dependencies.
From here, developers will link their tasks together based on dependencies. We can then take an overarching view with the Gantt chart to see how each task overlaps and identify any roadblocks or bottlenecks.
8. Schedule when each task will be done
Now it’s time to set a schedule for when each task should be done. This is based on the dependencies and which feature or code needs to be worked on first.
9. Assign them to the correct developers
Reviewing what our developers can do and what they’re good at, we aim to maximize everyone’s capabilities. Based on the estimates, we assign tasks to our developers. Sometimes one will get a lot of tasks or maybe just a few, based on those time estimates.
Keeping Up The Communication
10. Share in Slack and ClickUp
We use ClickUp to store all of our task details and provide updates. Sometimes we may have an immediate need or problem, and we hit up our Slack channels for insight. We don’t use direct messages very often, preferring that people contribute answers or responses within Slack channels for the quickest and easiest communication.
11. Daily standup video conferences
Because we have a large remote team, we use video conferences to share where each developer is on tasks and to communicate about any blocks. From here, we can reassess and adjust the schedule if needed, which is simple to do with a Gantt chart.
12. Create a daily task list
We have a dedicated Slack channel to document our progress. Members write out what they worked on the day before and what their main focus is for the day ahead. We then update ClickUp with priorities, time estimates, and more comments if needed.
13. Do the work and drink many Monsters
Time To Release a New Feature!
14. QA Time
On the day before release, we do QA checks for all features on different environments and devices. This involves not only our QA and development team but also our client success reps to see if anything has been overlooked from a usability perspective.
Not everything needs to be tested automatically.
A common development philosophy is to write tests and ensure nearly complete test coverage. Unfortunately, though, this comes at a cost: it takes time. Especially when you’re changing things so fast, each new feature or update requires a slew of tests to be written and rewritten.
At the end of the day, you’re going to have to manually test everything regardless of how many automated tests you have. In the beginning at least, focus more on shipping, rather than testing. As you grow, you can add tests (contrary to popular belief), particularly if your product changed significantly. This way you won’t have as much tech debt as society makes it out to be.
15. Move the features
Features and task statuses are moved from staging to a pre-production environment to ensure everything plays nicely together. If everything checks out, we’re ready to launch it into the ClickUp app.
16. Prep the communication
Our features aren’t worth anything if nobody knows how to use them. Our customer success and marketing teams prep any supporting information–like help docs, blog posts, email, social media and more to make sure all the benefits and features are communicated well.
17. Just ship it. Don’t require perfection
Final checks are made on the production stage and the build is shipped into the app. We haul out confetti cannons, ring the gong and blare the air horn letting the world know that ClickUp has shipped an amazingly awesome new feature.
One of our founders, Zeb Evans, has started a few other tech companies before and previously was a self-defined perfectionist when it came to product releases. After seeing perfection drag on and on, and never really getting there, he has an entirely different outlook now. Just make it good. Then iterate, and make it great. Then, eventually, after a couple of iterations, it will be perfect. This comes with use and user feedback.
18. Tell the world
Shortly after cleaning up the confetti, but before our ears stop ringing, we somehow find a way to send out the email, publish help docs, and press play on the right videos.
19. Wait for your feedback and repeat
Once things settle down, we answer your questions, respond to any concerns, take another swig of Monster and get back to number one.
Our product development cycle may not look too different from yours, but we have a special ingredient baked in.
All concerns are expressed before we start and then we get down to work.
We don’t make excuses.
If we mess up, we adjust.
We don’t get distracted by other things we could be doing–we save that for another day.
That’s how we create ClickUp.