Today the Web is about to get twice as fast. PHP, the most popular Web development language, which runs by some estimates 80% of the Web sites, is getting a big step-up in speed.
Underlying this exciting news there is heroism. What are the typical kind of heroic business stories we talk about? Do the following stories sound familiar?
“Dec 31st, 6pm deal closed! John, the head of sales flew to the other side of the globe to get that big order in that’d make or break the year.”
“The customer’s e-commerce app is down during the holiday season. They are panicking and losing revenue every minute that goes by. Fred, our senior technical consultant was all over it. Resolved the issue within 15 minutes. The customer sends a thank you note to the CEO. We saved the day (and a lot of revenue).”
“The funding round just hit a road bump a week before we don’t make payroll. We hit a timing issue with one of the investor’s limited partners and they can’t fund for two more weeks. The CEO meets with the bank and gets their commitment to support that extra week of liquidity.”
These are the kind of stories we hear about in Silicon Valley. Time sensitive. Adrenaline rush. Crisis. The hero makes that real-time effort and makes it happen!
This is what I call the fun part of being a hero. It is quick. Energizing. We’re stressed but our survival instincts kick into gear. We do what we need to do in the heat of the moment. Not quite as heroic as taking a bullet in battle for a friend but that’s about as close as it gets in high-tech.
But what is forgotten in these stories are some of the heroes that don’t have the benefit of being on the adrenaline rush of real-time heroism. The ones who are running the marathon and not the sprint. Living the grind. The disappointment.
With today’s release of PHP 7, PHP-based Web sites will be running twice as fast without needing to make any changes to the underlying software code. This is an amazing accomplishment! It’s not typical that general purpose computing platforms that are in such broad use are able to get such huge performance boosts without requiring a significant re-engineering of the application.
But this is not a story of technology but rather of true heroism. A story of persistence. A lot of sweat. Many disappointments and frustration.
PHP has been around since the 90s. Throughout the years we and others invested a lot in ensuring it continues to get faster from release to release. We partnered with companies like Intel to ensure that we always had the latest hardware and tools to ensure it evolves as chips evolve. But at some point we hit a wall… We got to the point where we were only able to make incremental improvements that barely moved the needle.
At the same time we saw a small subset of competitive languages that, while coming from behind, were making faster progress than we were. In 2012 we decided on a “me too” effort where we embraced some of their thought process on how to get better performance. For roughly 18 months we put a huge effort into getting our proof-of-concept to run the simple application benchmarks faster than all of our competitors. It was 18 months of hard sweat by our main hero. But then we tried to run real-life, complete applications on this proof-of-concept and within a few minutes 18 months of hard work and high expectations went down the drain. We found that the real bottlenecks these applications had were not addressed by the embraced methodology.
Man, what a disappointment! No heroism here as heroism is usually equated to success. And this was a long slog… No adrenaline… Frustration!
At this point it would have been quite easy to give up on the big gain and continue to make incremental progress… After all, we were running most applications very well anyway… Typically as good or better than the competition. That’s why we run close to 80% of the Web workload anyway… So who cares?!
But no, this is where heroism really kicked in. Beaten down and bleeding our hero decides to go down a different path. This path cost another five months of hard work without knowing what lies on the other end. Working incredibly hard and long days without knowing whether we’d meet disappointment again. We, the leadership, encouraged, cheered on, but deep inside were bracing for another potential disappointment.
The day arrived where we were able to test the new and improved work. Wow. The new version made everything fly. It also eliminated major bottlenecks which gave us many new ideas we could work on and it just kept on getting faster, and faster, and faster…!
It took heroism to make the Web run twice as fast. Not heroism of quick results, being in the limelight, feeling the adrenaline rush, or even saving the day.
This is engineering heroism at its best. Fully owning the problem, creativity, thinking big while going through a prolonged period of disappointment, grind, lack of visibility on progress being made. Heroism that didn’t save the day, but that enables the future for PHP and the Web as a whole.