In the latest retrospective, we all agreed that there is room for improvement regarding the Feature Discussions process. These are some questions where we should take a decision and my opinion right now (I want to take a look at current Feature Discussions to have a stronger opinion):
What should we include in the opening post?: Usually in a forum, the opening post is not changed because it’s supposed to be a conversation. This way, if a new person starts reading the thread, it just makes sense. However, we think it could be useful to have the current status or the final implementation in the opening post as well, so if someone just wants to understand how to use a feature, they don’t have to look for the info in the thread, it’s available in the opening post. Should we modify the opening post? If so, should we keep the description provided at first so the conversation makes sense?
I feel that both things are important and they should be easy to find, so I think I would keep the opening content and include a new section at the bottom with the Current Status/Final Implementation, with a warning saying this information has been added afterwards.
Should we differentiate between functionalities/requirements and implementation?: Right now, we’re only talking about the implementation process and we’re kind of mixing everything.
At first sight, I feel it would make sense to differentiate between the functionalities/requirements that could be needed for a feature, and how to implement them. I would be the owner of the first part, which functionalities are included and which are moved to a new FD, and Luis of the second one.
How would we divide between functionalities/requirements and the implementation?: Does it make sense to have everything in the same thread or should we split it?
In my opinion, everything should be in the same thread as they are really related. Sometimes, while working in the implementation proposal or the final implementation, we will come up with new ideas about functionalities or requirements. We could include a new sections for functionalities and another one for requirements.
Are templates useful as they are right now? How could we improve them?: We have a template for the opening topic, which encourages users to think about useful information like examples and possible solution, and a detailed template Luis prepared for the Implementation proposal. Is there any information missing or something you feel it’s not necessary?
I would include new sections for functionalities or requirements in the opening topic, although we could just delete them if they are not relevant for any Feature. I feel the IP template is great, although I’m not writing them. And I think we should have something similar for the Final Implementation as well.
Should we keep using User Stories? If so, at which point?: We feel User Stories aren’t being useful right now and, in fact, we’re not using them that much. They can be confusing for some users. Maybe they could be useful just for the implementation, so would it make sense to just use them in the Implementation Proposal, which is what we’ll use for the final implementation?
As it isn’t still clear how we are going to work with functionalities and the implementation I would stop using User Stories for now but I would try to think, each time we write an IP, if having user stories could be useful and how. I don’t have a strong opinion here, I want to think more about it
EXTRA: The way I see it, a possible workflow of a Feature workflow could be the following:
Suggest a feature: We have an idea and we should provide: Description, Examples, Possible functionalities, Possible requirements and Possible solution. They are not all required if it’s still not clear.
Functionalities and requirements discussion: We start discussing if that feature makes sense and which functionalities/requirements could be relevant. (Consider as many as possible as it could affect the implementation).
Research how to implement it: At this point, we could research how to develop it. Even if it’s a small feature and we don’t add the
needs researchtag, we usually do a small research to come up with an Implementation Proposal.
Although we won’t implement all the functionalities, we should keep them in mind during the research. During the research we can discover new functionalities we’ll have to consider.
We should start a conversation as well about the implementation and come up with an Implementation Proposal, that should be enough to start implementing the v1.
In this IP we should sum up all the decisions we have made: which functionalities are going to be included in the v1 and how we’re planning to implement them.
Development: We work on it and release a beta version. We start testing it, and ask the community to test it. At this point the implementation may have change, or even the functionalities we are going to add for the v1 (maybe we discovered one functionality is much harder and we decide to postpone it), so we should sum up the Final implementation, similar to the Implementation Proposal, with the final status, with the settings and everything that has changed. We could also include here a demo.