When you build a new real estate site from scratch, you should start by creating the custom post types, fields and taxonomy. This will add the necessary items to the WordPress admin, allow you to populate content and then you can design the front-end.
Almost every real estate sites will need to display properties on a map. Before you add custom fields to properties, learn how to enable Maps functionality.
Often, you'll need to display specific custom fields only under certain conditions. For example, there is no need to display a "land size" custom field if the property in question is an office.
Custom taxonomies will help you arrange properties into different categories. These categories will depend on the kind of real estate site that you're building. For example, you could have a category for "vacation properties" and "office space".
Once you've created the custom types, fields and taxonomy for properties and agents, it's time to create several items. This way, you'll be ready to design the front-end templates and lists.
If only one agent takes care of each property, you should create a "one to many" relationship between them. If several agents can help with each property, you should set-up "many to many" a relationship.