Page 1 of 1

Features for V1.0

Posted: Mon Jul 27, 2009 7:58 am
by CintaNotes Developer
Ok, first an announcement: the next version of CintaNotes will be 1.0!
There are multiple reasons for this:

1) Overall the program has got mature enough and actually usable;
2) Betas are not allowed to some software catalogs, most notably download.com;
3) Some people wrote to me asking to get rid of beta because betas are not allowed by their "nazi" sysadmins at work :D

But before we start picking features for the next release, I'd like to return to the issue of the priority scoring formula.
The last formula was suggested by Midas:

Midas wrote: I summed the wheighted pro vote (asap*2+nice) and divided by the poll sommatory (total number of people voting on the issue); then, I did the same with the contrary vote (no need+don't do it*2).
I came to realize that this formula exhibits some really strange behavior, look:

score(asap = 1, nice = 0, noneed = 0, dont = 0) = (1 * 2) / 1 = 2.00
score(asap= 20, nice = 1, noneed = 0, dont = 0) = (20 * 2 + 1) / 21 = 1.95

Is it really fair that one (!) "asap" vote outweighs 20 "asap" votes and a "nice" vote?

I think a better formula would be to multiply the simple score (asap*2 + nice - dont*2 - noneed) by the percentage of pro votes relative to total number of votes, that is:
score = (asap*2 + nice - dont*2 - noneed) * (asap + nice) / (asap + nice +dont + noneed).

For the examples above is gives:
score(asap = 1, nice = 0, noneed = 0, dont = 0) = 2 * 1 / 1 = 2.00
score(asap= 20, nice = 1, noneed = 0, dont = 0) = 41 * 21 / 21 = 41.00

which I think far more accurately reflects the real priority. What do you think?

Edit:
No, my suggestion is also not the best idea, since it actually reduces the negative effect of downvotes.
Actually the simple formula is ok, but we want to:
1) give more weight to unanimity so that (10, 1, 0, 0) scores more than (10, 3, 0, 1)
2) give more weight to "popular" features with many voters - I think we should just add something like (0.01 * total_voters) to the resulting formula to take care of this. Adjusting the constant will allow us to give this parameter more/less weight.

Re: Features for V1.0

Posted: Fri Jul 31, 2009 1:26 pm
by ale
Something simpler? like for example

score = a*asap + b*nice - b*noneed -a*dont

where for example a=0,2; b=0,1

But I think it's impossible to rely only on a formula, I mean in any formula I would always put a +c parameter where c is subjective and weights in how you see a feature fit the whole vision of the application, the time/benefit ratio of the implementation and why not, your own "I like/happiness" factor because maybe the community can suggest and vote a feature that simply the developer may not like a lot or would like to postpone and the opposite, the community may not vote and push a feature you would like to see into CN

Re: Features for V1.0

Posted: Sun Aug 02, 2009 5:11 pm
by CintaNotes Developer
ale wrote:Something simpler? like for example

score = a*asap + b*nice - b*noneed -a*dont

where for example a=0,2; b=0,1


Well, that's actually the same simple formula, only the score is scaled down by 10.

But I think it's impossible to rely only on a formula, I mean in any formula I would always put a +c parameter where c is subjective and weights in how you see a feature fit the whole vision of the application, the time/benefit ratio of the implementation and why not, your own "I like/happiness" factor because maybe the community can suggest and vote a feature that simply the developer may not like a lot or would like to postpone and the opposite, the community may not vote and push a feature you would like to see into CN


But sure, I actually always meant these polls to just provide the estimate on user demand for a particular feature, and it also actually helps to see when the problem is there but the suggested solution can be improved (large number of +2 _and_ -2 votes). So the polls are good to:
1) Validate really needed and useful features and
2) Advise against implementing something not really useful.

Of course, I take many other inputs into account, most notably the ease of implementation, and I also understand how important it is for me to stay motivated, so I'll never start implementing a feature which I feel strongly opposed to.
The final formula is approximately: total_score = w1 * user_value + w2 * architectural_risk + w3*code_quality + w4*easy_to_implement + w5*personal_fun_factor.

w1-w5 are weights which represent my view of the relative importance of a parameter;
user_value - is the user demand score I get from the polls here;
architectural_risk - features that involve risk of substantial code rewriting/restructuring are better done early;
code_quality - tasks that involve improving code quality and paying back the "design debt" deserve prioritization;
easy_to_implement - if the feature only takes an hour to implement, why not do it right now?;
personal_fun_factor - as I said, personal motivation factor should not be underestimated.

I never do the actual scoring (perhaps I should:) ), this just represents how I make decisions regarding what goes into the next version.

Re: Features for V1.0

Posted: Mon Aug 03, 2009 8:45 am
by ale
CintaNotes Developer wrote:
ale wrote:Something simpler? like for example

score = a*asap + b*nice - b*noneed -a*dont

where for example a=0,2; b=0,1


Well, that's actually the same simple formula, only the score is scaled down by 10.

Taking away the division for the poll sommatory will give weight to "popular" features, so like in your example

(a) asap = 1, nice = 0, noneed = 0, dont = 0
(b) asap= 20, nice = 1, noneed = 0, dont = 0

it gives 0.2 for (a) and 4.1 for (b). But it's the first thing which came to my mind and I didn't try the calculation for the real features to see if it gives weird results

Re: Features for V1.0

Posted: Mon Aug 03, 2009 12:49 pm
by kranor
Shouldn't it be something like this

Ranking = ((asap + nice)-(Don't do it))*(positive votes - negative votes)

I cant see the point of don't need so there is no point counting it but the weighting should be

Asap = 2
Nice = 1
Don't = 2

For Drag out note to delete the rank would be this

Asap = 4
Nice = 1
Don't = 4

Rank = ((8 + 1)-8)*1 = 1

What do you think?

Re: Features for V1.0

Posted: Thu Aug 27, 2009 9:07 pm
by gravi_t
First of all, this is great news! I've been using CintaNotes from quite early on, (also posted here a few times) and it is great to see how it is getting better and better.

If you don't mind, I'll stick to the original topic: Features for v1.0

In my opinion, features included in the new release should be ones that change the functionality more drastically, as well as ones that add a bit of "good looks" to the notes.

Here is my top 3, in order of importance. These are the only 3 remaining, all my other wishes have already come true! :)
    #76 feature - Basic support for multiple notebook files
    #70 feature - Recognize and highlight HTTP links inside notes
    #154 feature - Basic formatting support: bold, italics, lists, monospace

Here are 5 more that I don't miss but I think they would make a v1.0 appealing to new users:
    #160 feature - Wildcard-based search
    #145 feature - Extend search: "aaa bbb" should match "aaa something bbb"
    #72 feature - Sorting notes by time, title, link
    #45 feature - Support for multiple languages in UI
    #86 feature - Picture and screenshot clipping

gravi_t

Re: Features for V1.0

Posted: Fri Aug 28, 2009 2:57 pm
by Midas
For the sake of debate about the voting on features, I'll elaborate a little on the reasoning behind my previous and newly proposed formulas. Bear with me.

First of all, I'm glad that Alex noted the problem of the weird results that my last formula produced upon different poll turnouts -- I believe it happened because the formula was operationally flawed by a mix-up of values. So I went back and retraced my steps, carefully keeping the values insulated.

Let's assume the ideal case where a poll gets an absolutely even voting: 4 votes, one in each option. We'd have a value of 3 pro (1*2+1) and 3 con (1*2+1), with an end result of zero.

If instead of 4 votes we had 8, also distributed evenly, the end result would still be zero, only the poll turnout would be different (8 vs. 4), proving that the later issue was significant to a larger share of the potential voters. Both cases can be thus represented:

(pro.3)-(con.3)=0 & (pro.6)-(con.6)=0

(Note: we're subtracting absolute values here...)

To account for the poll turnout, the final vote should be weighted by it, but only AFTER the results have been found, not partially WHILE finding them -- that's what I did wrong.

To do this, one can simply multiply the final score (pro minus con) by the total voters (poll turnout) -- which is impossible if the score equals zero, so we should grant one positive starting vote, that can be justified as an incentive for raising the issue put to the vote.

In order to avoid working with numbers that can grow very large, we further divide the final result by 100; so the new formula should be:

(1+((asap*2)+nice)-(uneeded+(don't*2)))*turnout/100

Which in the cases above would have the following (slightly positively skewed, but) proportional results:

(1+((1*2)+1)-(1+(1*2)))*4/100=0.04
(1+((2*2)+2)-(2+(2*2)))*8/100=0.08

And in the problematic cases presented by Alex:

(1+((1*2)+0)-(0+(0*2)))*1/100=0.03 ; and not 2.0 as per previous formula!
(1+((20*2)+1)-(0+(0*2)))*21/100=8.82 ; and not 1.95, per my previous formula...

I append a new table with results from this formula to the roadpost topic in the request subforum (viewtopic.php?f=4&t=198) to make this point easier to follow. I know this looks somewhat convoluted, but I think that fairness is better insured. Over to you.

Re: Features for V1.0

Posted: Tue Sep 08, 2009 5:38 am
by kranor
Would it Be any better for Joe Bloggs out there If you change the amount you divide by to make numbers more manageable. If you were to divide by 10 as opposed to 100. This would help to cut down on the 0.04 type figures, making it easier for people to read the roadmap?

Re: Features for V1.0

Posted: Wed Sep 09, 2009 11:47 pm
by Midas
No problem Kranor, that reduction is arbitrary -- but it is usually done by 100, so it can easily converted to a percentage, thus 0.03 = 3%... of course then you'd have 8.82 as 882%, but it's all a matter of the magnitude you choose to work with.

Re: Features for V1.0

Posted: Thu Sep 10, 2009 5:26 am
by kranor
So really we need to decide whether to show scores as real number or as a percentage. personally I vote for a real number. :D

Re: Features for V1.0

Posted: Mon Sep 14, 2009 6:19 pm
by Midas
I like the percentages 'cause they give a sense of relative measure. But I'm good anyway if only the calculations are legit.

Re: Features for V1.0

Posted: Tue Sep 15, 2009 7:40 am
by kranor
I really do like the new calculations so now it's just redoing the scores then I guess

Re: Features for V1.0

Posted: Wed Sep 16, 2009 1:29 pm
by CintaNotes Developer
Hi guys!
Sorry for disappearing so abruptly. I've been moving to a new apartment, and if you moved once you should know what it's like )
Thanks a lot for staying put and keeping the fire on the forum alive!!!!
During this time, I managed to move CN development a little bit forward, but unfortunately not that far and fast as I hoped, so the release of the 1.0 version most probably won't happen till middle October. And don't worry, I haven't lost interest in developing CintaNotes!

With respect to the new formula that Midas suggested, I find it very promising and think that it comes really close to fairly representing the user's opinion.
One thing that I don't quite get is why we need that one positive starting vote, since that doesn't make that much of a difference anyway, and we still will get zero in case there's only one vote for "don't need". Second, I fear that the formula places too much weight on turnout, I'd prefer to add it (with some constant factor like 0.1), not multiply with it.
Otherwise I think the formula should be adopted.

Seeing the new rankings, I don't quite feel that I'm ready to tackle Parsing For Links, Formatting Support or Picture Clipping yet. They are planned for the commercial version anyway. Features like Tag Filtering, Newest on Top and Advanced Backup are already implemented so they can be removed from the list. And some tasks are not present there like Multiple Notebook Support, or Note Sorting.

Considering that the free 1.0 version will appear first, most probably the next tasks I'll be doing will be migration to the SQLite database (because of high architectural risk) and Note Sorting (should be easy to do using the database facilities). Note Sorting will also include visual grouping like in Outlook - CN is now lacking in ability to visualize and browse notes. For example, it will be possible to instantly see which notes were taken today and which are quite old (and that can be also inside of a certain tag). This is the case where I have to go for the more organic features instead of the more advanced. And moreover, these are the tasks that I feel like doing now, 'cause I feel that they will move CN towards being a perfectly round-up free product. When the free 1.0 is out, that will open the road for further enhancements, including those that are planned for the commercial version. Hope that you can see my point here and bear with me :). But as usual, I'm open for a discussion.

Re: Features for V1.0

Posted: Wed Sep 16, 2009 2:19 pm
by Noddy330
Alex, Looks good to me
Nod

Re: Features for V1.0

Posted: Mon Sep 21, 2009 9:10 am
by Midas
I have no objections, Alex. :)

As for the formula proposall, do you mean it should change into something along these lines:

((asap*2)+nice)-(uneeded+(don't*2))+(turnout/100)?

Re: Features for V1.0

Posted: Tue Sep 22, 2009 9:33 am
by CintaNotes Developer
Midas wrote:I have no objections, Alex. :)

As for the formula proposall, do you mean it should change into something along these lines:

((asap*2)+nice)-(uneeded+(don't*2))+(turnout/100)?



Yes, something like that, only I think that dividing by 100 will make turnout almost unnoticeable, I guess it would be better to divide by 10.

Re: Features for V1.0

Posted: Wed Sep 23, 2009 10:03 am
by Midas
Processing. Please stand by... :)

Re: Features for V1.0

Posted: Fri Sep 25, 2009 5:29 am
by kranor
I would like to raise one issue that In have with the vote system in general. The lack of an abstain option. The closest we have to this is 'I don't use this personally'. To my mind this wording is fine but to mark it as anything other than a zero vote will affect scores too much. When a person states they don't use it they are not saying it is a bad idea, just that they won't use that functionality. I propose an additional choice with a zero mark for those who wish to vote just to see a features score without swaying the score one way or another.
I do think that the best idea would be to weight the 'I don't use this personally' comment as 0 and introduce another comment to cover -1, maybe something like 'please don't do this' with the -2 comment changing to ' if you do this it will really cause me problems' or something like that anyway. The important part being a zero weighted option.

Re: Features for V1.0

Posted: Sat Sep 26, 2009 12:03 pm
by CintaNotes Developer
kranor wrote:I would like to raise one issue that In have with the vote system in general. The lack of an abstain option. The closest we have to this is 'I don't use this personally'. To my mind this wording is fine but to mark it as anything other than a zero vote will affect scores too much. When a person states they don't use it they are not saying it is a bad idea, just that they won't use that functionality. I propose an additional choice with a zero mark for those who wish to vote just to see a features score without swaying the score one way or another.
I do think that the best idea would be to weight the 'I don't use this personally' comment as 0 and introduce another comment to cover -1, maybe something like 'please don't do this' with the -2 comment changing to ' if you do this it will really cause me problems' or something like that anyway. The important part being a zero weighted option.

Hmm, but there _is_ an abstain option - not to vote! Otherwise it would be like that old joke: "I rode for three days to tell you how indifferent I am" ;)
And I think there should be a negative effect if someone indicates that (s)he won't be using a feature, because this will promote organic features which are used by everyone.

Talking about feature bloat: Some people make good money reimplementing some seldom-used and well-hidden features of software like Word and Excel and selling them as separate programs :mrgreen: