I haven't tried Ada yet, but do have experience with VHDL. It's the most modular language I've encountered. It's easy to work with big teams in VHDL. Choose everyone's responsibility, design the interfaces (entities) and have a brief discussion on it. Then go separate ways and implement your parts (architecture). They all finally fit together like magic without needing too much coordination or interaction between the team members. I'm pretty sure that's what's great about Ada too. However, I still don't understand what it is about the language's design that makes this possible.