This blog combines two of my favorite things: optimization and complaining about traffic.
At Gravity, we mix people of different backgrounds and expertise to create better products, and our best ideas sometimes come from an employee translating experience from a completely different realm to solve client problems. Driving to work (or, more accurately, creeping to work), I noticed Denver’s traffic issues are a bit like a website speed issue, and I decided to apply some knowledge*.
* My original draft had only one suggestion, “Have you tried turning traffic off and then turning it back on?”, but our blog editors suggested I dig deeper.
Traffic in Denver is bad. We’re not Houston, nor Nha Trang-level chaotic, but it ain’t good. That’ll happen any time you increase a city population by 20% over 10 years… there’s no way for infrastructure to keep up.
Our city government has tried two well-meaning plans to solve the problem, and both are impractical as primary strategies.
Option 1: Ride your bike!
HINT: IT GETS COLD HERE. Five months out of the year, this is a great idea. Now about those other seven…
Option 2: Take public transit!
If you don’t live next to a train stop AND work downtown, we don’t have effective public transit.
Here’s my commute by car (21 minutes) and by public transit (57 minutes). Which would you choose?
Side note: I live less than six miles from the office. I could literally jog there faster than taking public transit. (Not run… jog.)
First, what not to do: Throw hardware at it.
Throwing hardware at a problem is to the technical world what “throw parts at it” is to a mechanic – you randomly replace/upgrade parts of the system because, if it’s not working, it must be because some piece of the system is old, slow or broken. Any good mechanic will tell you that’s a) a false assumption, and b) a good way to waste money because you don’t know where the actual problem lies (and you’ll hear the same thing from any good developer, IT person, etc.).
In our traffic problem, the equivalent is building more roads. “Too many cars for the road? Make the roads bigger!” Studies show this doesn’t work, plus it’s completely impractical in much of the city.
Let’s attack this like a developer.
Understand the scope:
- We have more vehicles than the existing roads are designed for
- We can’t build new roads
- And keep in mind the broader context… we’re in the early stages of a sea change. Autonomous cars are coming, and they’ll be here before we could finish building new/bigger roads (if that were even an option). With even a small percentage of cars driving autonomously, our current road infrastructure could handle substantially more traffic.
We need to optimize the current system to make 2020-2030 workable until car traffic is less of a burden.
In any system, you have to find the bottleneck. Optimization in front of your bottleneck is a false gain, and optimization behind your bottleneck will starve for work (per the Theory of Constraints).
A website download is like rush hour: we have a whole lot of objects (images, CSS, scripts, etc.) that need to get from point A, the server, to point B, my computer. Some objects are bigger, some are smaller, and the road (connections to the server) can only let so many objects through at once.
When we optimize a website, this is where we start digging.
- How do we reduce the number of objects coming down the pipe?
- This is what our city government has tried by encouraging other forms of transportation. You can only reduce so many cars, and, like the website owner who keeps piling tracking codes and images onto the home page, the number may go up instead of down despite your best efforts.
- Encouraging other forms of transportation is a good thing, by the way. What I take issue with is “eliminate cars” is seemingly the primary focus – it’s not a realistic solution by itself.
- How do we make the objects smaller so they can move faster?
- In code, we compress objects. If some are too big and can’t be compressed, we delay loading so they don’t slow down everything else.
- The traffic equivalent is to take the big and slow stuff out of the lanes meant for cars. Options include:
- Prevent trucks from using small thoroughfares (we already have weight limits on many streets – it should be all of them).
- Fine all the trucks that park in the middle of thoroughfares
- If I had a nickel for every time a beer truck blocks a lane of 13th Ave. to unload at a bar at 8 am… Government: “But we do fine them!” Citizens: “Clearly not enough.”
- Prevent bikes from riding on thoroughfares with no bike lanes.
- Bike people probably hate this suggestion, but I think it’s worth examination (for designated thoroughfares, not for all streets). Daily, I see cars flooring it and swerving to get past bikers in the right lane of large streets. There is no bike lane, and most bikers are obeying the law… but when they’re going 7 mph uphill, cars are going to go around them, and it’s dangerous for everyone (as well as backing up traffic). Add a bike lane or move the bikers to a safer street.
- How do we make the route more efficient?
- So, we shorten the distance:
- You can’t put people closer to their offices, can you? Probably not, but you can improve the paths between the two. Every day when leaving work, I see which way Google tells me to go. I can take the short route, 5.9 miles, on smaller roads, or I can take the longer route, 9.2 miles, on the highway. Why is adding 1⁄3 the distance even an option, and often faster than the straight shot? It’s because our thoroughfares are not optimized.
- 6th, 13th and 14th Avenues should be treated like major roads, not side streets. Eliminate the parking lanes on the sides, eliminate stoplights, add turn lanes, etc. We know how to make traffic flow better.
- One argument against this is that some roads are in residential areas, and the stoplights and street parking and narrow lanes keep people from driving too fast.
- Here’s a crazy idea… instead of making the street more dangerous to scare people into slowing down, you just enforce the speed limit? Those speed camera vans are already printing money – add more.
- And by the way, I live on one of those streets. From years of experience, traffic “scare-to-slow” tactics make things more dangerous, not less. Come count the number of cars that blow through the traffic control lights, and see how fast they go when traffic isn’t backed up. Don’t trick people into obeying the law – enforce it.
- Eliminate obstacles:
- Dear Denver permit people: If you would stop issuing permits to close traffic lanes during rush hour, traffic would improve significantly.
- Government: “But it’s more expensive that way!”
- Citizens: “More expensive than building more roads?”
- You don’t need to close 13th Ave. every Friday afternoon for festivals in the park.
- You don’t need to close Speer for paving at 8 am – they can start at 9.
- You don’t need to let every developer shut down a lane of traffic for months to put up a building.
Developers: “Do you know how inconvenient that is for us?”
The 5.7 million citizens of Denver: “WE DON’T CARE.”
- If I can’t shut down servers during the day, you can at least work around a few rush hours.
I wonder how long this lane has been closed:
I took this picture today at 2 pm. The paving crew found it necessary to mark the entire street as a no parking zone even though they were working on a different block. This is not a traffic problem, just an example of Denver’s generous permit policy.
Finally, a non-IT-related idea: Teach people how to drive.
I’m not kidding. People don’t know merging on/off the highway should work like a zipper. People clearly don’t know that everyone going at a slow, steady pace will get everyone there faster than driving fast and then stopping. I know a marketing company that could make you some great billboards.
Go forth: Optimize and iterate before the next 100,000 people move in.