I updated the priorities of the issues in Redmine to match the February 2017 roadmap. The priorities carry the following meanings.
- High applies to the first half of the 2.x series. All these will be implemented (except for those waiting on a third-party fix) before the addition of the READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE dangerous permissions.
- Medium applies to the second half of the 2.x series. All these depend on the addition of these dangerous storage permissions. I expect to begin work on these issues in the second half of 2017.
- Low applies to the 3.x and 4.x series. I would expect 3.0 to be released sometime in 2018.
In general, my design philosophy is to polish off one set of features before moving on to the next set. This is why, for example, there are several issues relating to polishing the bookmarks and domain settings included in the high priority. Not taking time to polish existing features, but constantly rushing on to the next hot thing, is what leads to the morass of poor software that assaults us from almost all sides.
In deciding which order to implement features, I am guided by the following general principles.
- Implement privacy features first.
- Implement those that are quick and easy before those that will require significant investment.
- Prioritize items that are most important to users within the framework of 1 and 2.
From time to time I hear from users, including my wife, who wonder why tabbed browsing is pushed all the way back to version 3. The answer is that the tabbed browsing I intend to implement is quite complicated and will require a large amount of coding. It will also require a lot of work to make sure that the privacy features apply correctly to each of the tabs, especially when tabs have different settings. It makes sense to me to postpone it until after the privacy related features in the 2.x series, which are quicker to implement, have been completed.