Talk to customers, analyze usage data, talk to peers, managers, think, hold competitions, raffles,… For each idea:
Define the idea
Write out the idea for clarity — at least 5–10 sentences. Do some due diligence to see what else is there. Learn and revise (including abandon).
Does the idea make business sense? Does it make sense to the developers (if the idea is mechanistic or implementation related)?
Ideally, peer review. But at the minimum: Talk about your idea with the manager(s) and the developers. If both manager(s) and developer(s) agree (for some mechanistic things, only developers need to agree), move to the next step.
This is optional, and for major, complex innovations that can be easily prototyped only. Write code. Produce Results. Does it make sense? Peer review, if needed. If not, abandon. If it does, move to the next step
Write the specifications
Spend no less than 20% of the entire development time on writing the specs, including proposed functions, options, unit tests, concerns, implications. Run the specifications by developers, get this peer reviewed, improve, and finalize.
Set Priority and Release Target
Talk to the manager about the priority order of the change, and assign it to a particular release cycle.
Who Does What by When?
Create JIRA ticket(s)
General cycle = code, test -> peer review -> code, test -> peer review …
MVP of Expected Code or Aspects of good code: ‘Code your documentation’ (well-documented), modular, organized, tested, nice style, profiled. Do it once, do it well.