Things should be done faster with mini verifiable milestones
One thing that I found could have been improved is how projects are carried out.
Most projects I am aware of are of a very typical waterfall flow, that they are usually discussed in meetings back and forth around one quarter, or ever half a year ago, and then officially founded by assigning engineers, product managers, and designers. It then comes with a comprehensive product requirements document (PRD), listing all the details of requirements, and after long discussions about it, there will come engineering design docs, etc, followed by the actual implementation later. The actual outcome assessment only happens after all the implementation, during a/b tests.
I have a very honest and straightforward opinion: this is not the optimal way, nor is it closer to be a great one. It basically means a huge investment of time, people, money, and opportunity cost, into something nobody has much concrete to be sure about. In this pattern, it means an idea devised by product manager cannot be verified until everything is completed. And the entire investment in it, taking the designing stage into consideration, is half a year or longer.
Think about it: you put 5+ people into something that you don’t have any idea how successful it will be for half a year, and all you can do is just believe.
I’m not saying a full-fledged agile development is the silver bullet (it’s not - I may discuss it in another post), but it’s also not a good idea to have a big project that spans several teams and months in blindness.
There should be milestones in which people can see if things are in the right direction. E.g. if you are building a recommendation system, instead of completing everything at once, it’s easier and better to just build something much smaller for one factor, e.g. page view, and verify if it boosts engagement, and iterate on top of it one by one.