We have just launched our first version of our platform. Our team has decided to push releases weekly according to user feedback. How do we keep our product development on track? We are a self funded three founder team. What protocols are other Startups doing for this?
Here's what we do:
1. After each update, team continues to work on next milestone on the roadmap. Reaching that milestone can take 1-3 weeks based on complexity. If things are going well, this will become the next update.
2. We fork off a maintenance branch and work on hot issues - crash fixes, bug fixes, important enhancement requests. Sometimes this will be the next update.
We do weekly sprints and things are always dynamic but in general 2 rules:
1. Executing the roadmap (1) is top priority and hot fixes (2) is next.
2. Weekly updates are desirable but not necessary (it's OK to take 2 weeks to get the UX right and QA done).
Say you are releasing one feature. Now imagine you release ten features at once, and you manage to introduce ten serious bugs. If that happens, you probably have more to worry about than your release strategy, but it illustrates the point. In agile software development, we often talk about the importance of delivering value. What that means is getting the result of expensive development hours out to users as soon as you can, rather than storing them up in unreleased repositories.
You are almost ready to release, and someone says, “feature x is nearly ready, can we just get that in as well.” And when feature x is done, you may as well wait for feature y.
Consider a new feature in the app that requires a change to a backend API. Let us say you have added the feature to your code, but the new API has not been released yet. If your app does not work without that API feature, you are now in a position where you cannot release an update. This also blocks the release of subsequent features and makes it much harder to release emergency fixes. You will need to test your app, archive it, upload it to the store, prepare the store page with marketing information and screenshots, put your app through review, and finally release it to end-users. If your release takes too much effort, you will be reluctant to do it frequently. If you’re in a position where something is stopping you from releasing, it’s easy to end up in a feedback loop.
This is a simple strategy, where you decide when you have enough features to release. Once the features are completed, you make the release. It can be hard to get your code in a releasable state, with everyone in the team lining up finished features together. Rather than being a release strategy per se, this is an entire delivery framework. In scrum, teams work in sprints. These are regular, time-boxed intervals, typically around 2–4 weeks. The features to be delivered are agreed upfront and released at the end of the sprint. On the downside, scrum introduces heavyweight processes and ways of working that can slow you down, so I wouldn’t recommend it for teams that are already working well, or where there isn’t a problem that needs fixing.
Besides if you do have any questions give me a call: https://clarity.fm/joy-brotonath