Peak Valuation?

It seems kind of crazy, but the tech industry seems to have achieved historic high valuations. A buddy of mine talked about the 100 club --software companies with 100x revenue valuations. Historically, SaaS companies have traded between 7-14x, with a few outliers like Salesforce beyond that. Now it seems many companies are trading at 25x, 50x and, you guessed it, outliers are at 100x! 

I can understand investor enthusiasm. When you see the robust growth from longstanding SaaS companies like Zendesk, Hubspot, Twilio, Shopify and younger companies like DataDog, Elastic and MongoDB it can appear that there's a magical combination of SaaS, developer tools and open source that will seemingly grow forever. Likely IPO candidates Gitlab and Databricks are doing just that. Many of these high-growth companies have been part of an overall platform shift to the cloud. With accelerated cloud adoption during 2020's covid quarantine, you might think there's no downside. 

But these companies are exceptional. As a reminder there's a crop of former high-flyers like Box and Cloudera that have seen their valuations come back down to earth after posting tepid growth. It's a good reminder that not every company that VCs invest is exceptional. Investors (and founders) should keep that in mind.

Hopefully whatever corrections happen are minor and we revert to healthy, rather than historic-high valuations.

What do you think? Are tech stocks overpriced?  Post a comment below.


Solstice Run - June 20

Solstice banner 2 medium

Some friends of mine from MySQL days have organized a world-wide distributed virtual running event. It's open to every runner, any distance, anywhere in the world. The run will take place on the summer Solstice, June 20. 

If you are a runner, or would like to try it out, please register. (Of course, it's free!) I'd like to see if we can get people from more than 40 countries signed up.


Managing During a Crisis

 

Mad gas mask back cover

There's no doubt we are in a difficult time. We are facing a global pandemic and ensuing economic crisis that is likely the most difficult situation the world has faced in generations. The past few weeks I've had many conversations with founders and CEOs about what they are doing. So let me share some thoughts and observations for managers, leaders and founders.

During a time of crisis the most important points are:

  • Communicate
  • Develop contingency plans
  • Make hard decisions
  • Take bold action sooner than later

Without getting political, it's clear that leaders in many countries have not done a great job in these areas. That makes it even more important for business leaders to step up. Not only to help flatten the curve, but also to provide guidance to their customers and employees.

Communicate

Communicate to your employees, your customers, your partners, your investors. People need to hear from you, whether you're the CEO, an executive, or a manager. Especially with many tech businesses operating in a remote / work from home environment. Reach out one-on-one with people, not just your direct reports, but everyone. Ask them how they're doing. Ask what you can do to help. Don't just send out a blanket email to customers either. You've probably got twenty of those in your in-box. Instead focus on your company mission and taking care of your customers.

Many of your employees will be facing dramatically different circumstances of working from home, dealing with family crises, worrying whether they will have jobs and so on. So give them flexibility in their working hours and the time to address family and personal needs.

Develop Contingency Plans

No one knows how long the lockdowns will last or what the longterm economic impact will be. But you must develop a set of contingency plans. What happens if we can no longer sell in Enterprise accounts? What happens if our customers stop renewing? What happens if we can no longer hire new people? 

Some scenarios that might have seemed extreme a week ago are now the de facto situation. The prudent thing to do is recognize that things will continue to change. Consider what signals will guide your decision making through the crisis. Watch carefully your sales funnel, what deals close and what gets pushed and who goes into production. Look for patterns that help you determine where to concentrate your efforts in marketing, sales, customer success.

Build a plan and then consider what if it gets even worse? And worse still? If you are selling to government, healthcare, financial services, logistics and tech companies, those segments may be ok. Retail, travel, hospitality, sports, manufacturing may be severely impacted. Non-essential businesses have been closed in many states and countries. What is your plan if that becomes nationwide? 

Many marginal businesses will be challenged during this crisis. If you've got less than 12 months runway in the bank and do not have clear product / market fit this is now an existential crisis. If the earlier dot com meltdown and 2008 recession are any indicator, VCs will be in triage mode and many will walk away from weaker companies. So don't expect a lot of guidance and certainly no further investment. Whatever goals you set with your board are probably out the window. Your most important goal may be as simple as: can we survive 2020? Figure out if there are one or two use cases or segments where you have some repeatability and focus your efforts. It may require a significant pivot to lower pricing, online sales, or specific narrow use cases.

Ideally you can cultivate an environment where everyone is generating ideas, whether these are ideas for cost reduction, or over time, ideas on how to innovate and identify new use cases. Sometimes the best, most creative thinking comes out of the constraints of a difficult situation.

Make Hard Decisions

Some of the healthiest companies I work with have two years of runway in the bank. And they are still being very cautious on spending, cutting discretionary marketing, putting a hiring freeze in place, putting expansion plans on hold. It may be hard to hit sales targets without the new hires you planned in January, but if things are even worse in June (and September) it will have been the prudent thing to do. 

Take Bold Action Sooner Than Later

Just as we wish our political leaders took more dramatic action earlier, do not fall prey to a "wait and see" attitude. Do not assume that your business will be ok. Yes, video conferencing and BI may be counter-cyclical. But it is better to be prepared for the worst than to be fatally optimistic. This is a good time to be very clear on the core mission of your business. Make sure teams are focused on what really matters, the small number of things that are essential to your business, not the "nice to haves." 

If you can afford to keep your team intact during this period, that is a great thing. People will remember that you took care of them and they will repay you with dedication, loyalty and hard work. 

But if you have less than 12 months of runway, you will need to reduce your burn rate and it is better to do so sooner and all at once rather than dribbling out a few cuts at a time. Cut spending to the point that it hurts. If you need to make a further reduction in headcount expense, consider a pay cut at the executive level before you eliminate jobs. There are no easy decisions here. But if you need to cut jobs, cut deeply all at once. The worst situation is you have a layoff, it's not deep enough and then some weeks or months later, you do it again. 

Do your best to provide some kind of safe landing (severance and recommendation) for any employees whose jobs you eliminate. Treat people with dignity and respect so that when it is time to rebuild they will want to come back to work for you. 

A crisis such as we have now is an opportunity for all managers to demonstrate real leadership. It is a time when people show their true colors, for good or for bad. It will be difficult, but become the leader that your company needs.

If you have other ideas or suggestions, please feel free to add comments below.

Update: And here are some excellent articles


Launching Delphi - Feb 14, 1995

Booth Delphi 1.0 launch Feb 1995It was twenty-five years ago today that Anders Hejlsberg and I got up on stage at the Software Development '95 conference and launched Delphi to the world. The joke was that all 1,500 of us were geeks who couldn't get a date even on Valentine's day. 

We knew Delphi was a good product. Maybe even a great one. Our beta testers loved it, the team was excited and we had a 32-bit version in the works for the upcoming Windows 95 OS that would be bigger, better and faster. But the scale of Delphi's success took us by surprise. The Borland booth was mobbed at the conference. Delphi, with the help of DavidI and Charlie Calvert, gave birth to an ecosystem of third party books, magazines, component libraries and more. I've met countless developers over the years who told me Delphi enabled them to learn Windows development, build their career, their business.

Anders Delphi 1.0 launch Feb 1995So what made Delphi so good? You gotta give credit to Anders. He is probably one of the ten best programmers in the world and certainly the best developer I've ever worked with. He had more than ten years of compiler experience under his belt when we built Delphi. He knew exactly what tradeoffs mattered in language design to balance programmer productivity with machine performance. Delphi compiled to machine code at the speed of 35,000 lines per minute on a 90 mhz pentium. I have no idea how fast that is on today's machine. But you could load a demo program, hit the run button and by the time you clapped your hands together it was running. And I clapped my hands together ever time I gave a demo, just to make the point. 

As Anders pointed out that night on stage, Delphi was written in Delphi. So the team that built Delphi (and it really was a team: Anders, Gary, Chuck, Dave, Allen, Hank, Ray, Marc, Danny, Charlie) used it every single day. We made it great because Delphi was the tool that we wanted to use. It was pretty mind-blowing when Anders loaded the Delphi project source code into Delphi and compiled itself. 

The Delphi project was not an easy one though. It came at a tough time in Borland's history. The company was sued by Lotus in 1990, acquired Ashton Tate in 1991. By 1993, the company essentially sold off Quattro Pro and Paradox to Novell after Microsoft decimated the standalone spreadsheet and end-user database market. Oh yeah, and the founder and CEO, Philippe Kahn left to create Starfish Software a month before we launched. Philippe helped protect Delphi as a skunkworks project when we started and he coined the codename VBK (ahem) which none of us liked, but all of us believed in. 

We knew if Borland was to stay relevant in developer tools, we needed to build something better than Visual Basic. We never saw Delphi as VB Killer, but certainly a VB Kompetitor. How would we compete with that behemoth? Well, we weren't cocky, but we also weren't afraid of Microsoft. We had to make Windows programming easy enough that a DOS programmer could do it. And in that regard, our prior efforts with Turbo Pascal 7, missed the mark. Borland had a couple of other internal efforts that never saw light of day (Monet, anyone?) and at some point, Gary, Anders and I came to the realization, someone had to make it happen, and that someone was us. Having a native code compiler meant that Delphi would have a huge performance advantage over interpreters. It also meant Delphi developers would be able to create their own reusable objects without having to learn a different language. That gave us huge extensibility. 

We also learned there was another change on the horizon and that became our opportunity. Borland VP Rob Dickerson had highlighted the need for the company to build a client/server development system. Again, we looked around and we realized Paradox wasn't going to do it, dBase wasn't good enough, C++ was too hard. And so I put up my hand and convinced Gary and Anders not only did we need to make Windows development easy, we had to take on Client/Server development at the same time. Luckily they agreed, not knowing what Client/Server development meant. I didn't either, but I trusted we would figure it out. Ultimately this became our biggest differentiator in the market. While our performance over VB could be 2-3x faster, compared to SQL Windows or PowerBuilder, Delphi was 5-50x faster, and sometimes 800x faster. 

When we first started, we thought the project might take a year, but that Client/Server stuff was a lot harder than we expected. One of the developers working on that area eventually left the company and when Chuck and Anders looked at his code they just about barfed. That cost us about six months. I'm pretty sure every single person working on the project came to see me and said: "Can't we forget that Client/Server thing and just ship the desktop Windows version?" But my answer was always the same. I drew a curve of what Delphi desktop revenues would be. Then I drew a second line for Client/Server below the first one but growing at a steeper angle, eventually eclipsing the desktop revenues. I don't know if anyone believed me (and I honestly didn't know if I believed it myself) but it put an end to the discussion.  

Zack Delphi 1.0 launch Feb 1995I knew that the Client/Server product was more important strategically for the company because it would expand our market beyond Borland's traditional base. Ironically, at some point my boss VP Paul Gross asked why we were working on the desktop product, suggesting we skip that completely. I told him Delphi desktop revenues would be $30 million in the first year (a number I made up on the spot) and he nodded and said "good point."  

Delphi's first year revenues were $70 million (far higher than we'd expected) and grew from there. That's about $118 million, adjusted for inflation. And the Client/Server revenues really did eclipse the desktop revenues in the second year. To say Delphi saved Borland was not an overstatement. 

We also made a good bet on shipping a 16-bit version of Delphi first, rather than jumping straight to 32-bit. It was a safe assumption that Microsoft would slip Chicago (Windows 95). So we had a stable 16-bit compiler and operating system and could work on that without having to worry about the ground moving beneath our feet. We were fortunate to get the 32-bit compiler under development in parallel, shipping it just about 12 months later as Windows 95 was gaining market share. Delphi 2.0 boosted performance another 3-4x giving us an even bigger lead.

When we built Delphi we never thought it would last so long or have as much impact as it did. We were grateful for the support and feedback from our customers and third party developers. While we weren't obsessed with press coverage and awards, we were happy that it helped get the word out. I still have the Jolt Cola award on my bookcase. I figured if Delphi lasted to version 3.0, that meant we did a good job. But twenty-five years? Who could have guessed?

Looking back on Delphi 1.0, much of those two years is a blur of sixty hour weeks, late evenings and occasional setbacks. But the memories that stand out were about the team. We were committed to building something great, something that we would use. Gary and Anders (and Chuck, and Danny...) all had great taste. So there was a kind of aesthetic to the product. It's hard to explain, but we knew it as "it works the way you hope it would." Delphi wasn't just fast, it avoided the limitations of many Rapid Application Development (RAD) tools that ran out of gas when you pushed hard. 

I've done a lot of interesting things in the last twenty-five years, but Delphi is the product I'm most proud of. It was a magical time in our lives when we were experienced enough to do good work and young and foolish enough to bite off more than we could chew. We solved some hard problems that mattered in a market that we understood and the market responded. It shaped my thinking about how to build products in ways that I continue to use and teach to this day.

I'm grateful to Anders and Gary that we took on the project. Gary is the best engineering manager I have ever worked with and I was glad to get to work with him again at MySQL. Anders, of course, has gone on to do even greater things architecting C#, .Net and TypeScript. I'm proud of the many developers, writers, and testers, product managers and marketers (Lance, Diane, Ben, you were awesome), who built on the early success of Delphi 1.0 to create a legacy that has withstood the test of time.

And thank God we finally got that darned Language Reference Manual out. 

Zack gary anders 2011

Got a recollection of Delphi 1.0 or a story about Anders, Gary or me? Post a comment below...


Delphi Informant: Giving Birth

This article appeared in Delphi Informant magazine in April 1996 discussing the development of Delphi 1.0.

Zack Delphi 1.0 launch Feb 1995One of the most fun things I’ve done in my career is to help build the “1.0” version of Delphi. Okay, 2.0 was pretty fun too, but, as they say, there’s nothing quite like the first time.

When we started building Delphi 1.0, it was hard slogging. A lot of the tools out there, like PowerBuilder, SQL Windows, and Visual Basic were pretty good. Long before we even had a prototype up and running, I was on the road talking to developers to understand the problems they were facing. Most of them were pretty happy. I remember particularly thinking that the VB corporate users by and large were just the happiest bunch of developers I’d ever met. Heck, they were even having fun! I remember one particular meeting with about a dozen developers from a major airline. They told a not uncommon story of how a senior VP had decreed that they would use Visual Basic after he prototyped an application on a weekend. The developer told me that he didn’t want to have any association with — ugh — Basic, but after trying it out for a while, he changed his mind.

Another time, I was meeting with a development team at a Wall Street foreign exchange. They showed me this tremendously impressive application for monitoring currencies — written in SQL Windows. It was beautiful. I thought, “Oh no, another satisfied customer. Time to move on.” So after a demonstration I asked how they liked the application. His answer: “It’s a dog.” The response time was simply too long to even be considered for production use. After all, Wall Street practically defines the phrase “Time is money.”

I saw these scenarios repeated in meeting after meeting, city after city. On the surface, customers seemed pleased with the productivity gains of “Rapid Application Development” tools. But as I delved further, I found the love affair often came to a bitter end when they tried to move from prototype to production. I found lots of spaghetti code out there, and DLLs written in C to make up for performance bottlenecks in applications written in PowerBuilder, SQL Windows, and VB.

It was some nine months into the two years of the development of Delphi 1.0 before we showed it to potential customers. There were two reasons for that. First of all, Delphi was an underground project that was truly secret. Heck, for the first year we had more code names than beta testers! Secondly, and perhaps more importantly, I wanted to make sure we understood customers problems rather than simply gauging a reaction to a demonstration. That way we could ensure we were building the right product, rather than fine tuning the wrong one.

When we finally started showing Delphi to customers, the reaction was dramatic. After all, we were solving the problems they had told us about. Our mantra: “Performance, Reuse, RAD, and Scalability.” This helped us to not only define the product, but to communicate the benefits to the customer.

Oddly enough, one of the problems we faced was how to name the product. As Jerry Coffey pointed out in this column [“Symposium,” Delphi Informant, January 1996], we were experimenting with all kinds of names. Although we had early on decided that “Pascal” should not be included in the name since it wasn’t really meaningful except to long-time fans, we really hadn’t made much progress on the name until a few months before its release.

Leading contenders included “Visual AppBuilder” (luckily, it was taken) “Application Architect” (too much like a CASE tool), “Client Builder” (sounds like a sales prospecting package), “Object Vision” (ahh, we used that already, didn’t we?) and just about every combination of the words “Visual”, “Power”, “SQL”, “Application”, “Object”, and “Builder” (“Visual Power SQL Application Object Builder” anyone?)

As we were in the late stages of selecting a name, whenever I’d do a presentation, whether to potential customers, sales reps, or third party vendors, I’d always ask them what they thought of the proposed names like “AppBuilder.” Invariably, the response was lukewarm. Then they’d ask, “Why don’t you just call it Delphi?” So in the end, we did.

Danny Thorpe, then on the QA team, now currently part of the R&D group, had came up with the original code name “Delphi” since it was to be a client/server tool connecting to the likes of Oracle among others. We had to come up with a code name for our first beta test and everyone felt that Delphi was acceptable. We had many later code names for internal use, external use, different countries, and at one point, I must admit, I randomly made up a new code name for every presentation, so that if there ever was a leak, we’d know from where it came.

Delphi 2.0 has come a long way since then. Our original goal was to address a few of the usability issues and also migrate to a 32-bit compiler and take advantage of platform features like OLE automation, OCXes, etc. Along the way, we introduced several major innovations like Data Module Objects and Visual Form Inheritance that increased code reuse.

The 32-bit compiler itself was actually started way back when the original 16-bit version of Delphi was started. At the time it seemed like a safe bet that “Chicago” (Windows 95) would slip out of 1994 and that Windows 3.1 would still be a viable development platform for Delphi 1.0. We were able to have most of the VCL ported to 32-bits and running with the new compiler prior to the release of Delphi 1.0. So we were quite confident that the architecture would ensure compatibility with most code from Delphi 1.0, assuming it wasn’t dependent on 16-bit data assembler, data structures, or unsupported API functions.

Although it’s a bit too early to announce plans for the next version of Delphi, we’re certainly working on a number of fronts to further reduce the amount of code folks need to write, and make it easier to support very large projects.

Zack Urlocker is Director of Delphi Product Management at Borland International. The views expressed here are his own. He can be reached on CompuServe at 76217,1053.
(Well not anymore!)


Danny Thorpe: Why The Name "Delphi?"

by Danny Thorpe

This article originally appeared on the Borland museum website. 

Danny thorpe"Delphi" started out as a beta codename for a closely guarded skunkworks project at Borland: a next-generation visual development environment for Windows based on Borland's Object Pascal programming language. The codename hatched in mid 1993, after the development team had been through about 6 months of deep research, proof-of-concept exercises, and market analysis. Members of the then Pascal development team were hanging around R&D Manager Gary Whizin's office brainstorming clever codenames to use for the new product. It was not a large office, but it was not a large team either - about 10 people between R&D, QA, Pubs, and Marketing. It would have been odd not to see Anders Heilsberg, Chuck Jazdzewski, Allen Bauer, Zack Urlocker, Richard Nelson, myself, and several other regulars jawing away on some topic or another in Gary's office. For the codename jam sessions, there may have been some overflow into the hallway.

Borland has a long history of "unusual" codenames, some with catchy slogans or backgrounds that tie the odd name to the market or product focus. A codename should have no obvious connection to the product, so that if an eavesdropper overhears the name in conversation it won't be too obvious what product is being discussed. The difference between an everyday disposable codename a great codename is the pithy passphrase behind it. The most memorable for me was the codename for Quattro Pro 4.0: "Budda". Why? It was to assume the Lotus position!

So we were sitting in Gary's office, kicking around weird and wacky codename possibilities. The strategic decision to make database tools and connectivity a central part of the new Pascal product had been made only a few days before, so Gary was keen on having a codename that played up the new database focus of the proposed product, and of its development team. The database shift was no small matter - I remember having grave reservations about "polluting" the Pascal tools with database arcana that took me almost a year to shake off. It was a big gamble for Borland, but it was very carefully measured, planned, and implemented. In hindsight, making Delphi a database product was exactly what was needed to break Borland's Pascal tools out of the Visual Basic - C++ market squeeze play and set Delphi head and shoulders above traditional Windows development tools.
Gary kept coming back to the codename "Oracle", referring to SQL connectivity to Oracle servers. "Oracle" didn't fly with the group, though. Aside from the obvious confusion with the same-name company and server product, the name itself implied server stuff, whereas the product we were building was (at that time) a client building tool, a way to talk to Oracle and other servers.

How do you talk to an oracle? "The Oracle at Delphi" was the word association that popped into my head. So I offered up "Delphi": If you want to talk to [the] Oracle, go to Delphi.
The suggestion wasn't an instant hit. It's an old name, an old place, a pagan temple in the ruins of a dead civilization. Not exactly an inspiring association for a new product! As some press articles later noted, the Delphic Oracle was particularly infamous for giving out cryptic or double-edged answers - not a great association for a data management tool. Asking a question of the oracle was free to all, but having the oracle's answer interpreted and explained (compiled?) cost a pretty drachma. (The marketing guys liked that part)
Overall, though, the "Delphi" codename had a classier ring to it than the sea of spent puns that littered the room. Pascal is a classic programming language, so it just felt fitting somehow to associate a Pascal-based development tool with a classical Greek image. And as Greek mythologies go, the temple at Delphi is one of the least incestuous, murderous, or tragic ancient Greek icons you'll find.

We went through a lot of codenames during the development of that 1.0 product, coining a different codename for each press or corporate briefing of the beta product. This was an effort to limit rumors and allow us to track the source of leaks. The last thing we wanted was for you-know-who to get wind of what we were up to. Through all these disposable codenames, the Delphi codename stuck. Towards the end of the development cycle, marketing started using the Delphi codename across all prepress and corporate briefings, and as the codename for the final beta releases. That got the rumor mills talking to each other, and the tools industry was abuzz with talk about this secret project at Borland codenamed "Delphi". J.D. Hildebrand wrote a whole editorial in Windows Tech Journal about the "Delphi buzz" months before the product was launched. (paraphrased: "I can't tell you what it is, but I can tell you this: Delphi is going to change our lives.")

When it came time to pick a retail product name, the nominations were less than inspiring.. The "functional" name, a name that describes what the product actually does and is therefore much easier to market and sell, would have been AppBuilder. This name actually still appears in some IDE internal class names, such as the class name of the IDE main window. (R&D caved in to the functional name pressures and set about implementing it early) But AppBuilder didn't light up people's imagination. It didn't work well internationally - functional names are only functional in their language of origin.

Thankfully, a few months before Delphi was scheduled for release Novell shipped their own product called Visual AppBuilder. There was much rejoicing in the Borland halls, for at last the "AppBuilder" debate was laid to rest. With the functional name taken out of the running, suggestions started coming from all quarters to use the Delphi codename as the product name.

Delphi wasn't home-free yet. The lead marketing person had legitimate concerns about the extra effort that would be required to build name recognition in the marketplace for an "iconic" (opposite of functional) product name, so he requested a vote of the development team. There was only one vote against (guess who?). Much to our chagrin, someone came to the conclusion that the development team's views were not an accurate representation of the marketplace ("sample error" was the phrase I heard), and pressed for a survey of the beta testers. When that poll didn't produce the result he wanted, the survey was broadened again to include Borland's international subsidiaries, press, market analysts, stock analysts, corporate accounts, software retailers, and probably a few K-Mart shoppers. It became a bit of a comedy: the harder people tried to dismiss "Delphi" for the product name, the more it gained support.

"Delphi" has a classical ring to it. It has a consistent meaning/word association worldwide in all languages. It has no embarrassing vulgar slang meanings in other languages (that I'm aware of). Most of all, the marketing guys had done a marvelous job of building up market anticipation and buzz around the "Delphi" name. The market was primed and ravenous for this thing called "Delphi".

And that, boys and girls, is how the Delphi product got its name.

Danny Thorpe  joined Borland in 1990 around the same time I did. He worked on the QA Team for Turbo Pascal and later as part of the original Delphi team. Danny came up with the Delphi name and later worked on key parts of the compiler, VCL library and IDE.