This is a huge huge question. Or rather there are many many answers to the question. But I also think it’s interesting so let me pull out a few main ideas.
Right technique for the problem: We don’t have a fixed process. Rather we have a different techniques that we try to adapt to the problem at hand. Different problems. Different solutions. (Insert classic line about hammers and nails.) But ultimately everything boils down to talking and working as a team to make better stuff.
Alignment: One of the most important parts is alignment - you really need to make sure everyone is going in the same direction. If the team isn’t aligned and everyone is building a different game - then you’ve got problems. So it’s really important to keep sharing information about the aims, plans, directions, visions, etc. Just keep sharing information. Your team needs it to go in the right direction. They need it to make decisions. (This is a crazy hard problem for big teams.)
Change direction: Also the plan + direction will change. Just accept it. Create the best plan you can for today. But know, allow and encourage the plan to change. When it does, let people know. No point in sticking to a bad plan once you can come up with a better one. Also during development you learn more about the game, come up with new and better ideas - it’s important that your process actively encourages and searches for opportunities to make a better game.
Alignment #2: If you’re creating a new feature - it’s really important to make sure that you’ve correctly communicated + captured the requirements. Ultimately you should trust your team to create good solutions. But it’s important that you don’t create a good solution to the wrong problem. So we try to capture the requirements for new features, write it down, share it, iterate it, argue about it, and make sure everyone is aligned on the expectations.
Breakdown the project: When we break down the project we try and turn huge tasks, such as “add combat” into many smaller tasks. This means we’re diving deeper and learning more about what is required. For OO the backlog list is huge, there is so much required that we have to digitise this list. It’s huge.
Resolve unknowns: It’s also really important to resolve unknowns. When planning / designing as soon as you come across an unknown - it’s really worth trying to resolve it. Turn the unknown into a known. Do whatever investigation is required. Prototype, explore, dig deeper - but any plan with an unknown in the middle is pretty useless.
Focus on gems: Try and reduce the number of average things in favour of doing more cool things. This may sound obvious but I’m often looking for things to cut, something that we thought was important but now realise that it’s not really special. The more we can do this the more cool things we can spent time on. (The Votes we’ve send out really help with this.)
Focus on the core: When we’re looking at a big list of ideas, it’s important to cut through the noise and complexity. I often try to go back to basics and ask “how does this feature help us make the worlds greatest sandbox MMO?”. If it doesn’t - snip - focus on something that does instead. That is really the highest level question. Once you’re working on a feature, it’s helpful to have a deeper question to focus the development.
There’s probably more - but this is what came off the top of my head. (Everyone in the team is probably thinking - this doesn’t sound like us, who’s he talking about?)