Large problems are difficult to solve all at once. Whether you're thinking about how residents will interact with a new building or how computer programs will interface with one another, start by exploring a small part of the problem that you understand well in depth. As you design solutions for this small part of the problem, you will naturally uncover details about how that small piece can fit into a larger unified design.
Before long, you'll start to develop a vocabulary of concepts that can be re-used in similar situations, which will make the overall design feel consistent and coherent. The more clearly this pattern language can be articulated, the easier it will be to approach parts of the problem you may not have understood or not been aware of at the beginning of the design process.