I'm working on modernizing Rosetta Code's infrastructure. Starting with communications. Please accept this time-limited open invite to RC's Slack.. --Michael Mol (talk) 20:59, 30 May 2020 (UTC)

Rosetta Code:Village Pump/Old draft tasks

From Rosetta Code
Old draft tasks
This is a particular discussion thread among many which consider Rosetta Code.

Summary

Discussion on what to do about draft tasks which don't seem to be getting attention

Discussion

There are some draft tasks that end up sitting around for a long time with no one adding examples or discussing anything about it (someone noted this on EBNF parser recently). I don't really want to push a hard rule on draft tasks, since everything about them is pretty ad hoc. I'm wondering if we should "clean out" some of the drafts that didn't really take off. Or maybe we could mark them as "failed drafts" (but use a nicer word)? It would be nice to keep the information around in case someone wants to pick them back up (especially if they have a correct example), but I feel like they should at least be marked somehow. It may be fine to delete them and try to come up with a coherent task suggestion for the ever-growing task suggestion box. What do you guys think? --Mwn3d 18:15, 11 May 2011 (UTC)

Draft tasks remain so primarily because nobody adds content to them. To understand why that is, we'd have to ask each person who chose not to write an example. (To that end, it'd be awesome to be able to do something like this;
  1. look at a user's known-languages set.
  2. Ask the user if they'd try to implement a task in (language they know that the task isn't implemented in).
  3. If they decline, ask them why.
If the problem is that a task is too complicated or large, that doesn't mean the task isn't poor. Generally, in these cases, the original author might be asked to provide a few more examples in different languages. That's likely to provide enough differentiation in examples to cause some folks around here to question the task's description.
Otherwise, perhaps simply creating something like {{WillNotImplement}} which takes a parameter as to some reason "why" might be enough to get some tasks out of the doldrums. I see no reason a draft should be archived or set fully aside without some discussion or attempt to get it up to snuff, first. --Michael Mol 19:35, 11 May 2011 (UTC)
I think that someone who starts a task off should only do so with the intent of providing one good implementation in a short order of time. Mainly because the disciplin of providing both, would raise such a task, even if it remains draft, above the level of a task with no agreed, good, implementation. Without that first good implementation and task description , the task has very little to differentiate itself from some entry on the Suggest a programming task page, and should, in fact be somehow deleted and replaced by an entry there if the task page is abandoned without gaining those twin things of:
  1. An improving/good enough description.
  2. One correct implementation.
By adopting the above, would we then have a sizeable problem of tasks with one good implementation and a good task description but no further activity for some time? Not sure :-)
--Paddy3118 21:51, 11 May 2011 (UTC)
I strongly dislike the "must provide an implementation" requirement for something to be a draft task, as it prevents people from trying to build tasks that they don't know enough to implement. That's somewhere in the vicinity of 90% of the things I've tried to get created. I believe the reason the Suggest a Programming task page is a place where ideas go to die, and I hate that page with a passion. I'd rather see large numbers of directionless draft (or sub-draft, whatever) tasks free to be claimed, clarified and directed by anyone with the motivation, then have that festering page sit there. The key problem is that entries on that page don't get revisited by the people who create them, and it's unlikely they will. There needs to be some degree of freedom to take such an idea and mold it into something more suitable, but there's no sense of such freedom or drive in the task page as it exists. There's also no real way to purge items off of that page even if they do get implemented. (This may be a point where I strongly disagree with RC regulars, and if that's the case, then all I ask is that some system of evolving half-baked ideas from people who don't know enough to build them themselves is built) --Michael Mol 22:04, 11 May 2011 (UTC)
How about three classes of task? Add a new pre-draft or alpha task for which we expect tasks without both their first implementation and a good/improving task description, to be migrated to after a while. The task retains its page, but its status is flagged. --Paddy3118 22:36, 11 May 2011 (UTC)
Some draft tasks just have big problems. For example, this is a really tough one to do without a very specialized support library, and this doesn't have a real implementation in any language (an interface spec is usually not a solution, and certainly isn't for a data structure task). OTOH, I added undone drafts to the template report of things not done for each language to make it easier for people to step up and provide implementations; that's generally the best way of helping a task make it to full task (even if in some cases that's not all that's required). –Donal Fellows 23:36, 11 May 2011 (UTC)

What if we were to add a 'custodian' role to draft tasks, where someone who sees a draft without a custodian can be the go-to guy for clarifying the task idea into something that can be implemented or built upon? Once the task graduates to full-task status, it falls under the more general behaviors we already have. As for things like VList and Loading animated 3D data, perhaps those tasks should be modified such that they're more achievable or implementable. (VList might also include a "demonstrate its use" section, while the 3d animated data task might not be so specific to require the use of Smil and X3D, but go on to show how to proceed along the individual model "frames") --Michael Mol 01:21, 12 May 2011 (UTC)

Isn't the initial 'custodian' the person who starts the task? I think it is good that people that have good ideas for tasks, but who do not have English as a first language, have asked for help with their task and recieved it. But what about the tasks for which the people who might have helped, feel reticent for some reason? --Paddy3118 05:14, 12 May 2011 (UTC)
Yes. As things stand, the custodian for a new task is whoever created it. However, the task creator doesn't always stick around (The majority of entries currently in Rosetta Code:Village Pump/Suggest a programming task) or check back (see the mess that caused in Multisplit). By making explicit who the 'custodian' is, we have the ability to allow transfer of ownership in case a task author/originator has moved on. With transfer of ownership comes the ability to take something that hasn't been built upon, and reshape it so that it can be built. --Michael Mol 14:07, 12 May 2011 (UTC)
Don't we want tasks in which the original creator had to put in the initial effort to see it through any initial doldrums? --Paddy3118 05:14, 12 May 2011 (UTC)
Yes. And this wouldn't prevent that. The best tasks on the site have tended to be those which someone sat through and was available as they evolved. However, not everybody has the skills to take a task idea and put it into enough human words to be clear and task-like. (I personally know people who've chosen not to create tasks not because they wouldn't like to, but because they don't think they're allowed, but because they don't believe they can put their idea clearly into task form) Not everybody has the skills to actually know about what it is they'd like to see written as a task. (Such as when I asked for Levenshtein distance, or, really, half the things I've put on Rosetta Code:Village Pump/Suggest a programming task; these are things I'd like to understand, but don't) A custodial system would let someone take an abandoned task suggestion, boil it down to find the interesting bits and build tasks out of those. If there was anything useful in the original idea, it isn't lost, but refined by someone with an interest in it. --Michael Mol 14:07, 12 May 2011 (UTC)
Perhaps it would be of use to identify people who might help shepherd a task through draft. If someone wants to create something but are less comfortable with the wordsmithing and definition, then identify mentors. A task mentor wanted page or something. That would give them someone to bounce ideas off and get the wrinkles out of before things get too loose. --Dgamey 03:47, 18 May 2011 (UTC)
Might work. We'd want to clear out the existing 'suggest a task' page, and create a template for placing new ideas there. The template would need arguments for a short summary, long summary (including offsite references), and who's taken on the shepherd role. The template can even force-sign the submitter's username, to aid communication. It would probably link to a page titled after the short summary. where discussion can take place before a draft task page is created. --Michael Mol 16:21, 18 May 2011 (UTC)
We'd need a way to connect up the submitter to the potential mentor. Maybe something on the user's page to link them and to state what they are interested in helping with. Maybe it could be a watched page and the mentors get notified. --Dgamey 22:23, 18 May 2011 (UTC)
Do we want to, in effect, move some of the list of suggested tasks into abandoned task pages with just as much information in them? --Paddy3118 05:14, 12 May 2011 (UTC)
Actually, that's more or less what I'd like to see, with the caveat that we can identify when tasks are abandoned and have free license (in a social sense) to reformulate them into something more useful and/or interesting. The 'custodian' idea was intended as way of explicitly identifying who had that license, and as a way of clarifying whether or not a task is truly abandoned. (If a task transfers custodianship, then we can ask the new custodian. If the new custodian doesn't ceases to take interest in the task, then the custodianship can transfer again) --Michael Mol 14:07, 12 May 2011 (UTC)
How about an {{abandoned task}} tag? It would facilitate changing draft task to abandoned task with an easy edit. Maybe even by a bot. It should also throw up a big warning box. --Dgamey 13:18, 27 May 2011 (UTC)
Sounds reasonable. I'd probably want to change the name to {{unmaintained task}}, though. --Michael Mol 16:55, 27 May 2011 (UTC)
Is this a case where it would help if we got the thoughts of long-term members of much larger wiki's? (Is there a meta wiki wiki)?
--Paddy3118 05:14, 12 May 2011 (UTC)
I really don't know. I can think of arguments either way, as usual. However, I'll ping this page out on the twitter and Facebook accounts; we might conceivably get more input that way. Could also set up things like Doodle and Facebook polls. --Michael Mol 14:07, 12 May 2011 (UTC)
Concerning people not adding solutions to draft tasks:       One reason (for newbies) is that they might not know about draft tasks;   I know I didn't for some time.   Another observation I've noticed is that,   once a draft task becomes a (full) task,   then people start to add solutions.   Another reason is that (I for one) hate to spent time and effort in adding solutions to draft tasks and then have the draft task deleted without so much as a how-do-you-do.   Another concern is that some tasks really push the practical limits of executing a computer program that runs a long time before results are generated (or found).   Not everyone has a super-fast PC or a PC with a large amount of real storage.   There hasn't been a large number of these, but they have been becoming more frequent.   It used to be that these types of solutions were for "stretch goals", but they seem to have been more common as of late,   and I don't like to implement a solution that doesn't meet the primary requirements   (least it gets flagged as not meeting the task's requirements).   The last time I discussed/talked about the difficulty in meeting a requirement   (even after the author himself asked if the goal was a bridge-too-far),   my thoughts on the matter were rebuked,   so that approach didn't get very far.   So I suggest, ask for achievable results such that it is solvable for almost any computer programming language.     -- Gerard Schildberger (talk) 20:14, 24 December 2020 (UTC)
I've done a fair few draft tasks, but left others aside. From at least my personal experiences, some of the reasons people might not do draft tasks are:
  • It's too difficult.
  • It's written poorly and is hard to understand.
  • It is too memory and/or time intensive to be worth the effort.
  • It isn't interesting to me.
  • The task itself is fine but the output formatting requirements are unnecessary and annoying.
  • Any solution I could write would be too long.
Of course, many of these issues apply to some actual tasks as well. But I think part of the reason draft tasks languish with draft status is the same as the reason we don't attempt the tasks they describe: we look at it, don't know what to do with it, and move on. And it doesn't help that a lot of the drafts were put here by one-time users who then never returned to curate them. Thebigh (talk) 06:49, 25 December 2020 (UTC)