The trouble with platforms
Let’s begin by defining what a platform is. That’s a very popular word in a company’s lexicon. It’s used (and abused) by any number of people and so made to mean different things, depending on the speaker. Today I’ll talk about software platforms: a set of software components that can be used in different business environments without internal change with minimal effort. An example especially relevant to Upwork (or really any internet business) is payments. At some point you want to just charge the customer’s credit card with minimal fuss. No matter what the customer is buying: a DVD or a DVD player, a book or a subscription to a magazine, it all includes taking an amount of money from the customer’s payment instrument. Follows that the functionality that allows just that would become a pluggable component as soon as the business diversifies into more than one “product category” (the definition of which is specific to the business itself).
However, throughout my career, platform creation has always been a guided process that requires concentrated effort. Even dealing with something like the payments example isn’t as easy or straightforward as it looks at first blush. The APIs need to abstract the payment methods, they need to separate payments from bookkeeping (where a payment transaction shows up in company accounts), create an abstraction for bookkeeping and so on. Payments subsystem appears as a software component very early on in a company’s growth but it has a long way to evolve before it becomes a part of a software platform.
I haven’t been at Upwork (then Odesk and Elance) for early stages of its growth but according to the company’s lore the startup pivoted pretty hard at least once. Then, of course, there was the merger of two completely separate companies using entirely dissimilar tech. The point here is that Upwork hasn’t had a chance to build much of an actual platform, resulting in maximal fuss when dealing with customers. One of the platform components we are missing is a service implementing customizable fee calculation rules and the actual fee calculations across all of lines of business everywhere in the company. Such a service is essential and is standard in my experience for companies such as Upwork. Without it, just finding a place where we calculate some fees is a two week research project. The effort to change such fees is much larger. That’s because during the organic growth of the company we added fee calculations to the business process (and software implementing it) triggering the fees. Then we realized we don’t even have a complete picture of what fees will be assessed for a given business case because fees are calculated everywhere. We even got a few places where the same fee is calculated by slightly different algorithms producing slightly different results.
I know it’s hard to get excited about fees but they are the main source of income for Upwork. The ability to wield that tool as a surgically precise instrument can help us motivate the marketplace and adapt the business to changing economic conditions. I am really excited about building a single fee service as a cornerstone of Upwork’s software platform, and am happy we have the opportunity to do so now with such clear rewards for successful completion.