Idea Life Cycle - The Ultimate Guide #18
markopoloparadox
started this conversation in
Ideas
Replies: 1 comment
-
Great initiative @markopoloparadox . Thanks for putting this together. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The Idea
Simple Summary
It's no secret that Ternoa needs to step up its game in handling internal and external ideas. During the period of last one year multiple attempts has been launched to tackle this issue but to no avail. Every time we would propose a new way of working, make a document about it and immediately abandon this new process or we did one session and stopped after that. Not to say that all of those attempts were made to tackle internal ideas and they didn't even properly consider external ideas or actor.
It's time to stop this viscous circle and to define one true way on how to do it! I would suggest you to find a comfortable place to seat and to fasten your seat belt because this is going to be one hell of a read.
Credits
Before I talk about how we can solve this issue I would personally want to thank @peshwar9 and @M2613 for trying to solve this issue for the last one year. I think the problem was that we never had the right tools that would assist us in finding a acceptable solution. Now of course we have changed and we changed the tools that we use and I think we finally can tackle this wild beast and tame it.
Is there even a issue?
Obviously it doesn't make sense to seek a solution for a problem that doesn't even exist. That's why I will try to do my best and lay down the problems that I have seen or encountered:
This is just the first 5 issues that came to my mind and I believe that there are a couple more of them but I think that by this point you already agree with me that some if not all my points are valid and that we need to do something about them.
What are we looking for?
If you read all my "complains" about our current system you can easily distill a recurring theme in all of those points, and that's uncertainty. If we want to find a solution that would solve all our problems that solution will need to remove all the uncertainty from our system while making the system easy to use and ergonomic not only for people who create issues but also for people who read them. There are couple of tools currently available for us that could theoretically solve some of my points. The issue with those tools are following:
A good example of a tool that has the potential but it has never meet our expectations is Confluence. It's ergonomic and easy to use tool where you can create really good looking documents in a couple of clicks. It's so easy that anyone can without previous knowledge create a document and contribute to the ecosystem. The issue with Confluence is that that's all that it offers. It's inconvenient for any serious discussion, you need to generate a ton of documents to cover just one topic and it is a nightmare to maintain once you have more than 15 documents. Moreover Confluence documents are not transparent nor open to the community so this tool isn't a option for us.
So, what's the solution then? Well, let's marinate this for a tiny bit longer.
Other tools like Discord, Telegram or Slack are meant to be used to discuss ideas with the community. Those tools provide the option to have proper conversations, that's a plus, those conversations are transparent and open so anyone can join and share their view, another plus, we already know how to use them and have an active community there, this is already the 3th plus. So, what would be the issue with them? Well, it's just plain horrible to have any meaningful discussion going on for more than 10 minutes on those platforms because anyone can at any point start a completely random topic while a discussion is going on about a feature X. Moreover, since discussion flows can be so easily broken it's impossible to get those discussion back on track and the usage of the search functionally is non existing. A clear negative effect of this is users asking the same questions over and over again even when the exact same question was literally answer one post above their one.
Ok, now we are ready to get to the point. Since all those tools failed us, some of them multiple times, it's time to think outside the box and see if we can fish a perfect tool out. lo and behold to our answer to our problem that was always in front of us, and that's Github.
This was anticlimactic
I know but hear me out. I can show you that all my points are solved by just using the tool that we all use and love. Let's go over all my points again and after each point I will explain you why Github is THE solution.
There is no template given on how an idea is supposed to look like
On Github you can create templates that anyone can follow and use. Easy and simple. ✅ Next!
There is no official channel to channel our ideas
We make Github our official channel. It's perfect for creating threads, issue and discussion. It's not as easy to use as Confluence but it's still easy. ✅ Next!
There is no way to tell the state of an idea
We can use labels to define the states of ideas. If we combine that with the project functionality it's going to be a breeze following everything from both the creator and reader. ✅ Next!
There is no firm deadline and timeline for an idea to be implemented
All the ideas that are accepted and deemed will be assigned to a milestone. Milestones have deadlines and they are visible to all the involved parties. ✅ Next!
There is no way to tell if an accepted idea will be changed or not
This issue is now mostly resolved by using TIPs and the Product Council. Once approved ideas they become TIPs, once approved TIPs they become TSPs. Approved TIPs cannot be changed or modified unless a new idea is proposed but that idea needs to go through the same process and the original one. ✅ That's all!
Conclusion
Still not convinced? Ah, you are a tough nut to crack but it's time to use my trump card. We will go through the whole life cycle of an idea and not a single detail will be left out.
Use case
How ideas are born
It's widely know that no one knows how ideas are born. Some people think that while we sleep we digest all the things that have happen to use during that day and the brain somehow magically creates new connections which we call ideas. Other people assume we live in a fully deterministic world (possibly also simulated) so no new ideas are actually created and instead we have no choice on what we think.
In our case we don't really care about that, what we care is how to efficiently communicate our idea to the rest of the world. Enter Github Discussions!
The discussion feature that Github offers is really a perfect tool and place to share our idea. It's simple to use and we can assign it flags that define the idea state. So let's do that!
I have this great idea that we should implement a feature that allows us to trade our NFTs for other NFTs and/or tokens. This feature represents how real world trading works for objects like yugioh/pokemon cards or if I want to trade my Nirvana ticket concert for Lady Gaga concert + 1k tokens.
Just by having a well defined idea we already have done half of the work, now we just need to create a discussion thread so that other community members can also see how brilliant it is 😎!
To make sure that my idea will be noticed, I need to assign the "idea-new" label to it. This label is treated like the Bat-signal and it will open the doors to others to write about how they agree with my idea.
The next step is for one of the support team members to notice my out-of-this-world idea and acknowledge that the idea is well formatted (and awesome). In a case that it's not (which is impossible) the person who checked the idea will write in the comments the issues that first needs to be addressed.
How ideas become stars
A well accepted and discussed idea is like a trail of fresh blood for our Sharks! Who are the Sharks, you ask?! Well, they are the real heroes(cough devils cough) of Ternoa! Their job is to look for ideas that they want to endorse and make sure that those ideas becomes something more. This means that all the Sharks compete for existing ideas and once the see what they like they take ownership of it. The Sharks consist of the following members: CEO, COO, CPO, CTO + external NFT experts.
On a more practical note, this is how it would look like. Let's start by imagining that I am Shark and the super duper awesome Trading NFT feature was proposed by my perfect twin brother.
First I would open the discussion tab and look for checked ideas. I would filter by
idea-checked
label and look for ideas that I might like. I would see the Trading NFT idea and after reading it I would acknowledge the greatness of it and write a comment that I endorse it and that it needs to be now converted to a TIP. This is done by setting the label toidea-greenlighted
. After we convert the discussion to a issue and assign it to the Ternoa Proposal Board and create a properly named branch.Before the author of the idea start writing a TIP, we need to set the status of the issue to Todo. By this we can quite easily follow the TIP process by just checking out the Ternoa Proposal Board!
Getting to the tip of a TIP
The job of the Shark is still not done. The author of the idea is now responsible to write a TIP and can in cases of uncertainty ask the Shark for help. Once the TIP has been written the issue goes to the "New" state where it needs to be checked by a support member. If everything is OK then the state is moved to "Checked".
(Author's note: We probably don't need to change both the label and the state of issue. Changing the state is probably just enough).
At this point if the Author and/or Shark think that additional activities are required, like the TIP needs additional market research or a technical review, the appropriate label is used and the state of the issue is moved to "Needs Research".
Once everything is resolved the state is changed to "Greenlighted" and a pull request is created.
The Final Showdown
A greenlighed idea means that it's ready to be discussed by the PC and if they like it the pull request is merged and it's now the job of the devs to implement it. If there are some late technical issues some slight changes are allowed but this will be reviewed and checked by the Shark.
That's it for the idea life cycle. Of course there is more to say about it but this is already too long so I won't go into the extra details. What I want to emphasis is that I made the whole process prosperously super verbose and super detailed. I didn't do it because I want to make this whole thing as painful as possible but for the sake of showing what is possible and what isn't. I am expecting that some of the parts will be easily ignored and/or simplified (like having 3 states for a issue instead of 5) but tbh that's the goal, to see what we need and to only use what makes sense for us.
TL;DR There is no TL:DR for you, just deal with it 😜
Beta Was this translation helpful? Give feedback.
All reactions