Our engineer, Micah Rotich, recently visited Hoover Dam. As an engineer, he couldn't help but notice many similarities between bridges that were built decades apart. This observation inspired him to write a post about how good engineering principles never go out of date.
I recently visited Hoover Dam, an engineering marvel on the Colorado River, about an hour from downtown Las Vegas. It was constructed between 1931 and 1936 during the Great Depression, yet it is one of the greatest engineering accomplishments of the century.
Walking around the visitor center, I got to see multiple displays of interpretive signs that tell about the history of the construction of the Dam. Naturally, as an engineer at PixelEdge where I help build enterprise-level applications, I could not help but draw similarities between the construction of the dam and the development of web applications. Here are some key similarities and principles that stood out to me.
Two bridges at the site of Hoover Dam built more than 80 years apart follow an identical deck-arch design. The first bridge, which goes across the spillway, was completed in 1934. The second one is the monumental Memorial Bridge on I-93 highway. It was completed in 2010.
The planning and designing of the Memorial Bridge took over two years during which multiple designs were considered. Eventually, the deck-arch design was chosen - not because it reflected the design of the first bridge but because of low maintenance and easy construction staging Deck-arch design proved to be timeless.
Similarly, in building enterprise level web applications, choosing tried and tested best practices can help lower implementation and operating costs. Such considerations can be important in choosing what technologies to use in developing the application, from programming concepts and database to design patterns.
While providing irrigation water and generating hydroelectric power were the main reasons for the construction of the dam, recreation and tourism significantly influenced its design considerations.
Architects revised and modified the appearance of the dam beyond engineering considerations to make them pleasing to the eye. Today, Hoover Dam is the most-visited dam in the world, attracting some 7 million tourists a year.
Web application development should, in the same manner, take into account the evolving usability of the application beyond the primary function. Human-Centered Design (ISO 9241-210:2010) is an approach that applies human factors, usability knowledge, and techniques to ensure that digital solutions are useful. By involving users, you can uncover functions that would otherwise not have been considered in the form and shape of the digital solution.
Beware of the pitfalls of involving users when applying the Human-Centered Design.
At the edge of the dam are concrete spillways drilled through bedrock. The spillways were built as a safety measure to allow high water to flow around the dam rather than through it. Each spillway has an ability to handle flows similar to Niagara Falls. However, the spillways have only been used twice, during the testing in 1941 and in 1983 when the waters of the Colorado River overflowed.
Take the case of YouTube view counter. The engineers never thought a video would be watched in numbers greater than a 32-bit integer (=2,147,483,647 views). But PSY’s Gangnam style broke the counter and prompted Youtube engineers to adjust the counter limit to a 64-bit integer (9,223,372,036,854,775,808). Now, several videos have views exceeding the initial limit. This is an example of an edge case that is not as catastrophic as an overflow over Hoover Dam would be.
On the whole, my visit to Hoover Dam reminded me that best practices can help avoid common pitfalls and ensure the success of engineering projects. Enterprise application development has multiple decision points around design, implementation, cost, and efficiency that would benefit from following best practices.
TLDR: Enterprise level application developers should take time to visit the Hoover Dam.
Written by Micah Rotich, software engineer at PixelEdge.