On the other hand if you lived in Iowa, you got to vote first and, if you went to the caucus, you got to play a large role in shaping the election. This is unfair for sure, but unless all primaries and caucuses are held on the same day, someone has to go first. But it doesn't have to be Iowa and New Hampshire every year, it is less fair that it is (as opposed to rotating) and it is not in the best interest of the parties to continue to place them first.
There is nothing magical about Iowa, despite what Shoeless Joe Jackson says. They aren't first for any "reason" that someone thought up. They go first as the result of a fluke of history and the whole primary system is a modern development with the schedule developing somewhat organically. Going first gives Iowa, New Hampshire and other early states an outsized voice in choosing the next president (a long with several economic benefits) and with their highly-white electorate, it could be argued that it further disenfranchises people of color. It would be more fair to rotate the order.
Rotating the order could be done randomly, with each state taking a turn going first as part of a 230-year cycle (if we count territories and DC). This would be fairer, but it would it be smarter? No, it would still be just as organic and devoid of thought as the current system.
If I were running one of the two political parties I'd want a system that was designed to choose someone who would win in November and then pursue the policies of my party. So, I'd make three big changes.
Get rid of caucuses - Like the standard schedule, caucuses are also unfair, but that isn't the concern here. The real issue is that they don't mimic what will happen in November the way primaries do, and the skills needed to win the caucus may not match up with the skills needed to win the general election. It's like using a basketball game to choose your quarterback. Sure, there are some elements of athleticism, confidence and drive that transfer from one sport to the other; but it would be far better to pick your starting quarterback based on how well they actually play quarterback. So, not only would I get rid of all caucuses and replace them with primaries, but I'd also try to force all primaries to be open primaries. Let's get the voice of the undecideds and cross-overs from other parties and choose someone who is palatable to the voting public and swing voters (as long as they skew in my party's direction).
Front-load the schedule with the "most important" states - Instead of starting with Iowa and New Hampshire, states which were closer than most in the last election but are pretty small, start with a state that was even closer - the swingiest of swing states - and is larger. Start with Florida. Florida is the most important state to win. Each party should want someone who can win Florida, so make Florida primary voters your most powerful (at least in 2016).
But it doesn't always need to be Florida. What I did was to take each state's electors and divide them by the absolute value of the margin of victory from 2012, and then I arranged the schedule from that - placing all the territories last since they don't have electors. So instead of starting with Iowa and New Hampshire, we start with Florida and North Carolina - two general election battleground states. If you want a candidate who can win those states, then make them the most important test. It also allows your candidate to spend months in Florida meeting voters, instead of Iowa.
It will also, because of the bias towards bigger states, mean that the race will likely be over sooner, but give the largest number of people the opportunity to vote in meaningful primaries.
This still means that highly partisan and very small Washington, DC votes last (not counting the territories) but at least there's a good reason for it.
Spread the contests out - No more "Super Tuesdays". Make a regulated schedule that at least gives candidates some time to focus on each state. This is especially important in the beginning when candidates are visiting battleground states where they'll need to put in time in October. I arranged a schedule with two contests every week, one on Tuesday and one on Friday - giving candidates 3 days per contest minus Sundays when they hit talk shows and people are in church etc...this goes on for the first 2 and a half months, and then it goes to four contests per week. In this way the primaries can start at the beginning of February and end in mid-June just as they do now. If this were the schedule now, we'd be through only 12 states, but since they're bigger it would be more delegates.
Organizing the election in this way gives the following schedule: