BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Presentations Developing a Digital Product: What It Is and How

Developing a Digital Product: What It Is and How

Bookmarks
46:47

Summary

Roberto Mameli discusses the implications and what it takes to build a successful digital product in the digital economy and how to leverage the network effect.

Bio

Roberto Mameli has over 20 years of technology experience in Silicon Valley, San Francisco Bay Area. He is an innovative technology executive and transformational product technology leader with experience managing product technology organizations building and delivering competitive consumer products, digital customer experiences, digital platforms and enterprise-wide applications and systems.

About the conference

Software is changing the world. QCon empowers software development by facilitating the spread of knowledge and innovation in the developer community. A practitioner-driven conference, QCon is designed for technical team leads, architects, engineering directors, and project managers who influence innovation in their teams.

Transcript

Mameli: My name is Roberto Mameli. I lead the product technology team at Creditas here in Sao Paulo, but my formation and my history starts from Italy, where I was born, but lived my entire adult and professional life in San Francisco where I worked for Oracle, some of the big companies, Macromedia, but started developing and getting passionate about digital product and digital transformations.

I'm very pleased and honored to present to you my experience and how I have developed this passion as well as how to build a digital product, and some of the core values that I think are important when thinking as a technology team, what is important when we start thinking about a digital product.

Here's the agenda, we're going to first talk about what is a digital product to me and what it means, and why is it a little bit different than building any other type of products. How we can actually leverage something that is called a platform economy and the network effect which is really important and it's actually key, the big differential of a digital product versus other types of product.

There are some of the key things that I mentioned earlier in terms of values. One is that in a digital product, the experience really is the product, and when we want to enable the experience as a product, we also need to build it on top of a technology platform where the technology platform itself is a product. We will be talking about that as well in a little bit more detail. I'll go over the basic building blocks of a digital product architecture and then some step-by-step. It will not be super technical, but it will give you some details and some general overview of what to think when building a digital product and its platform.

What It Is

A digital product, at least to me - there's different definitions out there in the internet - is an experience, is the experience offered to a customer around the product that is available in the physical world either as a good or as a service. What that means is, for me, for example, Facebook, Instagram is not necessarily a digital product. In the end, everything is digital, zero bits, 0 and 1. What a digital product in the era of a digital transformation is really for me, is the digital experience - we'll talk a little bit more about what that means. That is offered to a customer in the physical world, from goods and services that are available in the physical world. Obviously, some of the most important examples, the most known to everybody, are the ones at the bottom, the ones that I've had experience with, so they might not be at the level of Uber and Airbnb.

For example, Uber are a perfect example. The physical product is obviously transportation, point to point with cabs, and Airbnb - accommodations. Loggi is here in Brazil and Latin America, which is point-to-point delivery. Open Table is in the U.S., iFood here, food restaurant delivery. This are maybe digital platforms that you don't know about. Art.com is a digital platform that offers digital and physical art as an experience. Esurance in the U.S., Youse, some of you here in Brazil know this. Gympass in Brazil, I used to work there. They offer also a digital experience with a digital product by giving access to physical facilities. Creditas, obviously where I'm working right now and that offers a digital product, a digital experience with online loans.

What do these product platforms and digital platforms have in common? This is very interesting to me. What they have in common is, obviously first and foremost, they all provide a value to customers. That's one of the things that it's really important because it seems obvious that every product needs to provide a value to the customer. The customer-first mindset goes beyond giving value to a customer because it goes beyond to thinking about the business and starting to think about what the business wants to give to the customer as opposed to what the customer needs from the business. That is really an important concept in building a digital product. It's important, it's always customer first.

The second thing that is really important and that they have in common is that they all provide an addictive experience, addictive not in the bad sense, but hopefully in the good sense of the word, where the experience is the king and not just the product itself. Every company offers a product, what these companies that I mentioned, the most successful ones, make it different about digital products, in general, is that the physical product, the physical good, is not just the product. It's also the experience that makes it important. This experience is something that we will talk about it because it needs to be reflected at the technology level, at the platform level. We will talk about how to do that.

It's very important to tie the product to experience it in the end. When you're thinking about customer first, you're thinking about the experience that this customer is going to have. This is a change in mindset, when you hear about digital transformations, basically these are the basic concepts of any digital transformation that companies go through.

The other thing is that they all have multiple touchpoints. They have the physical touchpoints, if it is a physical product, you get on a car with Uber, you receive a package with Loggi. These touchpoints are everywhere where the customer needs them. This is another very important concept, it's called POS, which stands for point-of-sale, which is the experience that you're providing to the customer with your digital product. It is an experience that is available where you need it, at the point of sale. In other words, the customer doesn't come to you, you go to the customer. You go to the customer at the point in which the customer needs that product or might need that product. What that means is, from a technology perspective it has a lot of implications. We will talk about that in the next slides.

Also, what is a little bit more techie as a fundamental, as a pivot of this, is that they're all built on top of a platform that is open and public, and this is really important. When the digital companies, successful companies build a digital product, they do it not just offering the experience, not just offering the value that the product brings, but also making the platform that they run on and that it's used to deliver this product, making it open and public. This obviously is a big differentiator that you all as a technology team need to think about if you want to build a digital product.

Leveraging the Platform Economy and Network Effect

Let's go a little bit more into detail. I spoke about platform, I spoke about platform economy. The point is, all the companies that I mentioned, at least, especially the biggest one, the ones that value billions and billions of dollars, they all are leveraging a platform economy. When they're building a platform, where they're offering this product and this experience, they offer it on top of the platform and it is open and public, but a platform as well that allows for digital connections, not just the internal ones that you need internally to run your business but external ones. They leverage what is called the definition of a platform economy, which means that it is a digital connection of providers and consumers that interoperate and generate increased economic, social human value.

By building your product and by delivering your digital product with an open and public platform, you are also leveraging what is called the network effect of having a platform where other players, other consumers, other providers can connect to it and add value. You as a business benefit from this increment, this added value, but in the end it's the economy as well. Think about the millions and millions of dollars that are generated by digital products - as well as human value as well, because in the end, I do believe that we are technologists but we are also participants in this world and so we hopefully contribute by creating human value. That's something that also is really important to me. What that means is that a platform is a mindset, it's not just a technology foundation that you're developing. You naturally need to start with this mindset first and then start thinking about how to develop the platform and the technology that you're going to need to deliver and to implement it.

Every business, all of you, all of the companies that you're working for, if you get into this mindset, you can think about in this model as well. You first start with the customer, you then think about how I'm creating this experience, you then think about, "I'm creating this experience on top of a platform, I might as well make this platform open and public so that it leverages network effect. Besides the customers, who are the ones that might actually add value and provide additional value to the customer besides me?" That applies to everyone, it's not just a few big ones that can build a digital platform and leverage the platform economy.

That's a call to action for you guys, for us as technologists, because we're talking about business concepts and we're talking about business values, but at the same time, a lot of this starts with technology team that builds this product and builds this experience. It starts with us to basically create these concepts and basically adopt this business model by starting from technology. It usually doesn't happen the other way around. Usually, this happens from within technology to the outside world. That's something that I believe in and it's really important. I've seen it over and over.

Experience as the Product

Why am I saying that the experience is the product? Because we live in an experience world. It started with the industrial age, with the internet, we came to what is called the information age. There was web 1.0, web 2.0, some people are thinking that we're already web 3.0, 3 and 4. The point is that we are now in an experience age, what I observe and what I see when I talk to a lot of companies and a lot of companies that at least are trying to embark in a digital transformation is that a lot of companies and a lot of the technology teams of these companies are still living in the information age and build systems that are systems for the information age and not for the experience age.

This has been a passion of mine because - what is the experience? If a digital product is based on delivering an experience to a customer, what does it mean in terms of technology and what does it mean in terms of product? Experience to me is information, whether it's the product itself, whether it's a form, whether it's something that you need to perform a transaction, plus what I call senses, emotions, and connections. This is not philosophy here, when I'm talking about these concepts, please bear with me because this is not philosophy, this is not a business MBA course, this is about technology. It all has to do with technology.

How do we build a platform and a digital product based on that that can leverage and create senses, emotions, and connections with the customers that are using that product or that are using that system? It means that a digital platform itself needs to support, it needs to enable emotions, senses, and connections in addition to the information, the information being, as I said, the data, the physical product itself. You see it evolving really fast because now you start with the connection between the physical and digital world. If it's purely a service, obviously you don't have a physical good, it's just a service. Then you start adding to these concepts, you start adding augmented reality. This is where you bridge the physical world with the digital world to start capturing the senses in the experience of the product that you're delivering and the experience that you're delivering to the customers.

I actually have not got into virtual reality, but you've seen a lot of the innovations that are happening in virtual reality. Virtual reality is actually much more present and it's no longer a future, it's something that is taking over more and more. I do believe that at least for people in this room, starting to think about augmented reality is something really important. We will be talking a little bit about that when we go into the technology aspect of what I'm talking about.

Platform as the Product

A digital product requires a technology platform that needs to be built and accounted for the experience. It means that for a technology platform to be a product platform, it needs to be first of all business modeled and not system modeled. We are all getting deep into technology, into infrastructures, into servers, into systems, into all this good stuff that is happening here, but when you build a technology platform that is a product platform for the digital world, you need to model your platform from a business perspective and not from a system perspective, and not from a technology perspective. As a technologist, you have the responsibility to get out of where you are whether it's a group, a room, or the company itself, and get out there and understand from a customer point of view, what is your business model, and how to model from a business perspective your platform.

It needs to be open, needs to be public, needs to be self-learning - this is really important because the feedback loop of everything that happens within the product in terms of the information that is coming in and out from the customer back to the systems, from the systems to the customer. In addition to all the other things that I'm talking about like for example, the senses and the emotions that are happening, that's something that a system needs to capture and needs to be continuously processed and then fed back into the platform itself so that the platform can self-learn, adapt, and ultimately return a personalized experience to the customer. Imagine when you have a conversation or you have an experience with someone else, you're adapting to the other person, the technology needs to be able to support that as well.

It needs to be multitenant - this is really important because when you build a platform, and you're focusing on building what it is that your business needs. If you want to be open, if you want to be public, and if you want to leverage the platform economy, there will be somebody else that's going to want to run on your platform. If somebody else, meaning, another business, a partner, another third-party, or whatever, other developers, are running on your platform, you need to make sure that your platform is multitenant because you need to be able to separate and segregate the data and the information that is getting fed into the platform.

It needs to be configurable, because again, for the same reason, somebody else might want to use the platform in a different way in which you have conceived it. Some of the "settings" that you might have in your platform might not be right or they've not been tuned for another provider that wants to participate in that platform. You need to make sure that your platform is also configurable and that there's really nothing hard-coded from configurations and experience perspective.

It needs to be scalable, because if you're now really taking off the volume is going to go pretty high, is going to go high pretty fast. It needs to be secure, and we will talk a little bit more about that. I think security is very important. When I talked to the CTO of Amazon, he said that his biggest concern and his first and foremost concern is security, everything else comes second. I think it's very important to mention here.

I think I mentioned here are basically the basic concepts of what a digital product is, why a product is an experience, and why the platform is a product as well, and what are the basic concepts that you need to think about when you're building such a platform.

The Architecture and its Components

The world is much more complicated than this, but at high level, these are the basic building blocks and we'll double click on each of these to some extent. The idea is that a digital platform basically is a platform that has these components and these layers. There's no mix and match of these, the borders of these components need to be very clear and need to be very well defined.

You can see that you have a multichannel customer experience layer. When I separated it, it's still in the same level when I talk about multichannel, thinking about all the senses, all these emotions that we're talking about. This needs to be done and it's usually done with integrations with IoT, which is something really important to think about when you're developing a technology platform, third-party apps, and third-party layers as well. You have what I call a business API platform layer - there is a lot going on here. I call it business API, if you remember, because I said that it's not just a web API. We'll talk about the details and the model of an API. I call it business just to remind us that it's modeled based on the business and it's model based on what the customer understands of your business.

That's why I repeat this, that's why there is some of the major blocks of this layer is, for example, a business API facade. It can be a facade, it can be a mediator model, but it's a part that exposes the business functionality to the experience layer. There is a component that is very important. If you want to be customer-first, you need to know about your customers, and you need to know about your customer in its entirety from the beginning to the end. From the very first time he gets into your site or gets into whatever is the first device or the first experience that they'll get into all the way throughout the entire journey. Typically, in a digital platform and a technology platform as such, the journey is not just within a system, you're no longer in a monolithic system, so it's absolutely very important to keep this 360 view of the customer.

As I talked about, based on senses, based on emotions, based on the information and the data that flows from the customer back to the system, you need to also have a very important layer of personalization because you don't want to be an experience that is stale, an experience that is the same for everybody, it's not an experience. If I provide the same experience for everyone, for all the millions of customers out there, it's really not an experience to me. Personalization and technology as machine learning, other things, is extremely important. There are also other things like, for example, orchestration, automation. I'm not here to list them all, but just to give you a sense of what goes on into this block.

Then there are all the other systems, and if you are a successful company - unless you're a very early startup like from one or two years startup - and you're still in business, you have a Legacy system, nobody escapes from those. It's very important to recognize, to honor those, and to make sure that you don't get into, "Let's rewrite the system." You need to move forward. These systems are something that you can always leverage, and you need to be always leveraging. You're obviously building new systems, you're obviously new capabilities with newer architectures, innovation is going really fast, technology is really fast. Next year there will be another new architectural paradigm that we will be using, we will all be talking about. That doesn't mean that you're not still interoperating with your other systems.

You have complex internal systems as well, and then you also have what I call this block of common platform services. I'll get into more detail of what they are but the idea is that as you develop capabilities in this platform and as you develop business capability as well, you want to make sure that some of these capabilities can be reused and basically bubbled down into this layer, which is a common platform layer.

All of it, as you can see, is basically being captured within a data platform which is very flexible and it's very extensive. It's obviously big data, data science which will feed into ML models, it will feed to a lot of other AI models for this personalization and for improving the customer experience, as well as internal purposes, like data warehousing, business intelligence, and so forth. This is the overall.

Step-by-Step: Customer Experience Layer

Let's get a little bit more into detail into each of these boxes. When we talk about developing in the digital platform, a multichannel customer experience layer, first you need to think about three types of experience. You need to think about physical experience - there will be a physical experience, you need to take into account that from a technology perspective with that connection.

I was in San Francisco recently and there's already a bunch of Amazon physical stores. I actually think it's kind of funny. It's really important and that's because the physical presence of the experience is something that you need to take into account within the platform and within this channel experience layer. VR is maybe applicable to a few restrictive ones, at least for the time being, augmented reality is really important, that's something that you should be starting to develop with right now.

All of these talks to an experience API - remember as I said, every time that we talk about API, we talk about public, open, and we'll go into more details of those. We'll talk about experience API which is built on top of the other box that I presented earlier, the gray box or the business API layer, which is more optimized for speed, for convenience of the experience layer.

Another important part of this multichannel experience is that, you need to think about, also in terms of self-service versus assisted. Self-service - we all want it to be directly to the consumer, directly to the customer. The customer needs to be able to do everything that he or she may need to do without talking to anyone. The reality is with a digital product, unlike other products, as I mentioned, Facebook, Instagram, there is never really a need to talk to someone, but in a digital product, when you have a physical product or a physical good and service, you might want to. You might still need to talk to someone. That someone can be a person, the someone could be a chatbot, but the point is there will be an assisted experience.

The reason I mentioned it all here is because when you're building a customer experience, you don't want to build it in terms of, "I need this functionality. I need this other functionality." You need to think about it from a customer point of view, and the customer point of view is how we'll interact with you and with your product through your experience. If you're building it separately, if you're not thinking of it holistically within your technology platform, this experience will be really jagged, will be really discontinued. The customer will not like that. This is very important.

On the self-service side we're talking about web, mobile first, native apps. It's really important to think about POS, point of sales integration. Even when you're building your company branded experience, you also want to make sure that it is open and it can be integrated, so you need to think in terms of widgets. To be able to provide this experience when the customer needs it, you need to go to the customer it's not the other way around where the customer needs to go to you. Then, you don't want to have to rebuild everything that you might re-leverage from your experience in the experience, whether it's another system, that's another provider, or at the time where the customer is at.

It needs to be messaging enabled, the experience is very conversational. We talk about conversational UI in user experience, but conversational UI means that it is really based on messages back and forth. Sometimes it's even more convenient than going to a site or going through an app, and so that needs to be built into the multichannel customer experience component.

Don't forget about voice. Voice interfaces are the present right now. I have three Alexa devices in my apartment and I use it all the time. I interact with a lot of these digital platforms that I've been talking about like Uber, like Airbnb. Not going to a website, not going to my native app anymore, I just go and talk to the device and I say, "Get me..." Very important to think about that.

How do we do that in terms of technology? I'll just mention some of the things that are important to me because I see that a lot of times we forget about this. Everybody knows that we need a web server, everybody knows that we need HTML, and all that. What we don't know, and what we sometimes we don't remember is the advantage of having polymorphism in your experience layer. It’s the advantage of having content management systems built in from the get go into your experience layer, because the experience might not be just the experience that you deliver. It needs to be personalized, but also it needs to be configurable if you want to have other players play within your platform and on top of your platform. One of the things that I suggest is to leverage content management systems for configuration as well and for making this platform and this experience much more configurable.

There are other things like A/B testing, CD dynamic acceleration, tag containers. There are all these technologies that when you're building, especially if you're building a digital customer experience from scratch, or new, separate from your Legacy systems where you're doing it pretty much within the platform and the monolithic itself, these are things that you don't want to forget when you start building that framework.

One of the things that I mentioned is that in order to leverage emotions and senses - primarily senses - you need to make sure that within your customer experience layer, you also have support obviously for the camera, for voice, for video, and you want to make sure that you support all this mind types that are available out there and not just the usual ones which are video and text. That's really important because just text, or pictures, and images are information age type of things. In the experience, you need to have video, you need to have voice, you need to have all these, and so for that, leverage these external devices.

Speaking of, you have to remember about IoT, having also a multichannel experience layer and an API layer at the experience and at the business level, you can also take advantage of these integration very much more easily. One of the suggestions, one of the things that I've done in the past very easily is using Lambda where that helps a lot with this type of integration.

Step-by-Step: Business API Platform Layer

Let's talk about the other box, which is the API layer. I call it business because it exposes a business object model and not a system object model. One of the biggest challenges of doing this is to think about what vocabulary are you going to use. It's not the systems, it's not your tables, it's not your events, it's not your threads, it's not any of that. It's really, what a customer would call those things. If you need to explain what that object is, it means that to a customer, to somebody on the street, maybe your name and your vocabulary is not correct, and basically, your model is not correct itself. As I said, it needs to be open because it's interoperable. It needs to be public if you want to make sure that other people will leverage the capabilities that you have. Self-learning, multitenant, I mentioned some of these so I will not get into those details.

I will get into those details in terms of technology from a technology point of view of how I will start building this business API layer, which is by starting with a DDD architecture, domain driven design. I'm thinking of in those terms, building a domain model on top of that, and then developing your API once that you have that domain model. The API - there you can use REST, you can use GraphQL, I'm not religious about it. I'm not getting into the fight, "It's GraphQL, will replace REST, you don't need REST any more," or things like that. I can see where you would actually have both. I can see where you will have your REST API for your domain model and where you'll expose the GraphQL for accessing based on that model, additional data, and the data in a much faster way, in a much more organized way.

One thing to remember is that one of the biggest challenges in building this business API is that - especially if you have a Legacy system, and you already have another type of experience, ad hoc, hard-coded, more or less experience or website and so forth - is to really go through the toughest part, the toughest job, which is to take out all those business rules, all the business logic, to take this in your site, in your traditional Legacy site experience, and then move it to the business layer. That's actually one of the toughest jobs to do, but it's something that you have to do.

Once you have defined your API, what are some of the components that you're going to need to get started? You're going to need, first of all, an API gateway, you already know that. You're going to need to define your endpoint, obviously starting with API dot, whatever your company is. Make sure you have clear documentation of your API if you want other developers to use it and if you want other third parties to develop on top of that. Have a security model in place already. If you make it public, it doesn't mean that everybody should have access to everything. It means that you need to have a strong authentication to find out who it is that is accessing your API. Don't forget SSO in a connected world. In a connected world of third parties using your platform, single sign-on is extremely important.

Authorization - you need to find out if the person that is calling your API can actually access the specific resource. Delegation - a lot of people forget about this, but in a digital product world, delegation is actually very important because delegation is what allows someone else to perform the access on behalf of someone else, where I as a customer, I am always the owner of my data. I'm always the owner of the objects that I've created inside my technology platform. In an assisted type of world where the assistant can be a customer, agent, and so forth, delegation is extremely important. It will not work without this model.

Other concepts, I won't bore you with those because I think everybody that has gone through REST API design model, they know what some of these things are. One thing that is important though, and I'll talk about it in this slide, is that when you're building this business API platform layer, and you're interoperating with your Legacy systems, with your internal systems, you want to make sure that this API is the API that exposes to your customers, or to, in this case, other developers of other third-party apps or other businesses as well. You need to make sure that this business API is really fast so that the objects that you're managing at this level might contain information and data that is actually native in the transactional systems. You want to make sure that you have a caching layer of some sort.

That means that you will be talking to your Legacy systems through your other systems, through other REST API if they're more modern. If they're a little bit older or they're more Legacy, you'll be talking RPC, or gRPC, and so forth. From a data perspective, you see that basically you're going to have to start building an event system, an event architecture. I actually am doing a plug in for my colleague here, Camilla. Go to that talk, it's very important.

You need to have two components that are extremely important. One is a real time event streaming system infrastructure, whether it's RabbitMQ. I wanted to make it very generic and not religious about it. You can use RabbitMQ, Kafka, Kinesis, whatever, some of these real-time streaming infrastructures. Then from the caching perspective, you're going to have to cache this information, the information of all these objects that will render the API or will be rendered in the API with a NoSQL store that that is a critical component of this layer. I've used ElasticSearch in the past, I do any of these three, in my previous experiences, they all worked really well. Obviously, it all depends on your case.

Successes/Examples/References

I'm just going to show what we're doing here at Creditas, which is adopting all these concepts and we're building this platform with a composition model that starts with all this layer of the API. Then, in terms of the concepts of what this common platform components that I've been talking about, you need to think about business domain services, this is your business model. You need to think about other more domain models based on your business. In the case of Creditas, in terms of risks services, pricing services, and from a technology perspective again, this is what we have been using here at Creditas.

Questions and Answers

Participant 1: When you said that additional products should provide customers a physical experience, you gave the example of Uber, of Gympass. We use Gympass at our company, and when you have some feedback from users, there is a looping on the feedback of the user experience and the product update. How do you usually do that on your personal experience, not exactly on a specific company? How do you usually provide the continuous update for customer's feedback on the whole architecture?

Mameli: First of all, your customer experience layer needs to stream a lot of events, a lot of information. QuickStream is really important. You need to know where every click that the customer is doing. You need to also embed feedback inside your experience itself. Uber does this very well, every time that you get a ride, you have to rate the driver, they even send you a notification to rate them. That ratings system is part of collecting that feedback, it's extremely important. These are some of the two examples. Whether it's pushed feedback or whether it's something that it's an implicit feedback that you're getting just by knowing what the customer is doing, just by knowing how many clicks it takes to get to some place, to some functions, to some capability. Just to tracking the time that it takes, for example, to receive a product, or to get a response from specific questions.

Customer agents as well, in their CRM, they need to always have feedback information that goes into your data platform. These are the ways in which you basically account for feedback.

Participant 2: [inaudible 00:46:23].

Mameli: If you don't have it now, I'm pretty sure you will. It is something that it's part of a digital product. You cannot have a digital product and not collect the feedback of the customer experience with that product, it will not be successful.

 

See more presentations with transcripts

 

Recorded at:

Oct 31, 2019

BT