What you have descriptiondescribed is typical of a 'waterfall' approach to software design. There are some circumstances where this is appropriate, for example, the y2k bug and I have been on such projects.
However most development today is done with a more modern, typically 'Agile' process.
I would suggest that you consider the following Agile process:
- devs and qaQA and product meet weekly to review new tickets, bugs and chores and score them for the degree of difficulty
- devs and qaQA meet (before dev starts work) to consider tests, testing and a test plan if needed
- devs write the code and the unit tests that verify it. Tests are NOT optional
- devs and/or qaQA write integrated and UI tests. Tests are NOT optional or 'ideally done'
- qaQA perform extra testing manually on a representative variety of devices and applications.
- work is demo'ddemoed to product and when they are ready merged into master.
Also
- everyone can enter bugs and they are reviewed weekly
- qaQA acts more as a service to help than a gatekeeper to pass/fail.
- everyone gets training in Agile with a short/long term scrummasterScrumMaster on-site
- use a bug/feature/chore tracker as mentioned by Peter. Consider Trello, Pivotal Tracker and Jira
- all members sit together for 0 comminicationcommunication lag
- use a good IM tool. The hot new standard is slack.
This is not a comprehensive list (see resources below) but the key idea here (and I've certainly experienced it over decades of development) is that once the feature is written, with accompanying tests, it's relatively unlikely for the developer to want to start tearing it apart and trying different things based on ideas from others whether they are good or bad. So the earlier the input that the QA team can give the cheaper it is to do it, i.e. the cost of changes rises over time.
Other resources: