Consumer Internet and everything you need to know about it:
What is Consumer Internet:
A phrase used to represent an array of internet-based services that can be availed freely or at a premium to gain productivity, social connections, knowledge, efficiency, incentives, revenues, entertainment, shopping or payments for services (that can be availed online / offline)
The expanse and depth of this phrase cannot be fathomed in a couple of lines. However, the article attempts to give a comprehensive picture of what consumer internet means. To get a complete picture, it might make sense first to understand the evolution of consumer internet, the essential components, the ecosystem, what it means to different user types and enterprises and so on.
Who is this article useful for:
Advocating consumer internet is the core purpose of existence of this blog. While every techie out there creating new tool and products (and in some cases reinventing the wheel), this blog aims to educate the readers on how a lot of them can impact their lives.
This article in principle will help following people: – CEO/CIO/CDO and other executives who need to understand what this whole digital wave about and how it can help them achieve their key responsibility areas.
– Entrepreneurs and starts up co-founders as they plan their business, revenues and strategy for their next big idea
– Product managers and business analysts can treat this as a resource for their product strategy and gap analysis
– Applicable only for folks in consumer internet space
– Consultants, independent small business owners who plan to leverage the internet for growing their business. This article can serve as a short course before they start outsourcing any technology work to anyone.
– Product and digital marketing professionals: Who needs to chalk out a strategy for getting their products out.
– Investors: While a lot of investors have access to much better resources, this article can be useful for adding perspective to the data they already have.
– Students and professional looking to build a career in this sector
– Developers who code day in and day out to understand where they fit in the big picture.
I also plan on adding tools and resources available for downloads.
Internet as an enabler of communication:
In the evolution of humankind, the discovery of wheel played a critical role. It made transits and material movement much more comfortable. Ages later came roads, sea transport and railways, they were and still are prominent indicators of development of a country. Humanity kept progressing till these became a commodity and a need for faster communication became a must-have. Fast forward, ARPANET or the Advanced Research Projects Agency Network, originally funded by the U.S. Department of Defense created the first workable prototype of the internet in 1960 where they made computers talk to each other on a single network.
From there, protocols such as Transmission Control Protocol and Internet protocols (TCP/IP) were developed to define standards of communication between different networks. That led to the evolution of the network of networks which that got recognized as the Internet. However, it was Tim Berner – Lee in 1990s who developed World Wide Web (www) that popularized internet among commoners. It was the www that allowed access to data online in the form of websites and hyperlinks which led to what we call information revolution.
The information superhighway thus created led to expedited communication. Since then, the internet has evolved to support communication in various modes – text, voice, video, real-time, transactions and so on.
Let’s understand this in light of one end to end transaction. Lets consider a marketplace model (we discuss this ahead in the article) for demonstrating how communication plays a critical role in conducting commerce:
Problem definition: A requirement generally incepts when someone tries to solve a problem. We take an example of a professional needing to up-skill themselves to grow at work. They go out seeking for courses relevant to them.
Communication of requirement: Happens on platforms where the initial search begins, and the service offerings are discovered. Here, the person might end up going to Google / or a specific course platform to communicate his requirement to a teacher (the service provider)
Provision of service: On the other side of the spectrum, service providers are making their career or business by offering their services through digital products – like online courses, ebooks or physical products or through services tailored to the need of customers. They communicate their skillsets and offerings through common platforms and marketplaces. Here, a teacher may have recorded a video course or created ebook that’s relevant to our requirement in question.
The platform: The critical part of the puzzle. Think of it as a marketplace and just like any other marketplace, it has following characteristics:
-It allows for service listing by providers. Gives them necessary tools for adding their products and services, charging customers, managing finances and promoting their services.
– It allows service discovery by way of search, similar/related services, featured services as per predetermined preferences, etc. for users needing assistance. The platform also provides for reviewing mechanism that helps users to ascertain the quality of service expected against the money paid.
– The platform has monetization mechanism built around commission per transaction. Arbitration to manage conflicts, moderation and backend logistics for physical products and a highly available customer and merchant support.
In our current example, the person may visit Coursera, Udemy or Simplilearn kind of platform where they can pick up a course on any topic under the sun and get themselves to speed.
– Technology: The platform uses technologies for building products in the application layer (to be discussed ahead) that enables access to the data, creating and updating of data and communication between the service provider and user. The platform also needs to adhere to user interface design principles so that the application is easy to understand and use. The technology landscape is consistently evolving. However, technologies like Java and .net still lead the pack.
At the core, as we’ll see in next section, lies several layers of technologies built with one purpose: making one computer communicate with another.
Thus, a closer look would show how different stakeholders (person needing a course, service provider, platform manager, support executives) communicate with each other through applications built on top of the internet – a network of networks designed in a way systems “communicate” with each other through various protocols.
The Internet Protocol stack:
Without getting too technical here, in simple English protocols are the official procedures or system of rules how one system (or a computer) should talk to another. The idea being they should be able to speak a common language to be understood by each other and following procedures so as not to create chaos between billions of connected devices talking to each other.
Why it is called a stack is there are different levels of communications that happen to make one transaction possible. Unique procedures and constraints govern each level and their functioning is interdependent on its neighboring levels. (That’s the best I can do to simplify what a pretty complicated set up)
The diagram below shows OSI and Internet protocol stack.
Let’s start top down on the OSI stack since it’s more granular than TCP/IP stack and much easier to understand and explain (at least for me)
The part of the stack that we interface with. It’s the topmost layer and all the web and mobile applications we interact with are parts of the Application layer. The user interface, business logic, data storage and retrieval, file transfer protocols and emailing services reside in this layer.
Application programming predominantly refers to the development of web and mobile applications which sits within this layer. A report from Indeed.com listed top application programming languages in the year 2016.
We discuss more on these technologies in the ecosystem section.
All the applications we interact with leads to some form of data exchange from server to the client. Presentation layer takes care of encoding and conversion of data in the formats that can be interpreted by different devices wherever the data is accessed from. For instance, the Graphics Interchange Format (GIF) and Joint Photographic Experts Group (JPEG) images that you use on a daily basis are essentially a compression and coding standards for graphic images. These implementations and standards are defined in presentation layer.
When you login into any web application, you are allowed to access contents of the website. However, the system needs to remember your credentials so that you don’t have to keep entering them again and again as you navigate through the whole site. This is achieved through sessions layer – so to say. While the mechanics are much more complicated than this. For the sake of our understanding, this should be enough.
Most applications, like web browsers (your favorite could be Chrome or Firefox by Mozilla) or e-mail clients, incorporate functionality of the OSI layers 5, 6 and 7.
The most widely-known TCP/IP protocols are those that enables the exchange of user information. These protocols specify the format and control information necessary for many of the common Internet communication functions. Some of the most popular ones are:
Domain Name Service Protocol (DNS) is used to resolve Internet names to IP addresses. Domain is what we purchase from providers like Godaddy. What we actually get, is a registry in DNS for a name against the IP address we plan to host the website on.
Hypertext Transfer Protocol (HTTP) is used to transfer files that make up the Web pages of the World Wide Web.
Simple Mail Transfer Protocol (SMTP) is used for the transfer of mail messages and attachments.
File Transfer Protocol (FTP) is used for interactive file transfer between systems.
This layer transports application layer messages between endpoints with the help of layers below. The major job of this layer is segmentation of messages coming from application layer into smaller data packets and reassembling those packets before passing it on application layer on some other system.
Network, Link, and Data layer: Right from routing the data using wifi or ethernet cables to actually moving the data through physical optical fibers are carried out by these layers. Diagram below shows how a typical machine to machine connected to the internet looks like.
Client-server model: While talking to tech folks you’ll hear these terms quite often. Let’s simplify this for you.
A client is a device requesting data. When you access any website say “nutsovertech.com” from your computer, PDA, laptop, mobile phone, tablet, etc. – your device acts as a client requesting for data like web pages, images, videos, etc. All this data is stored on some another computer (which generally now is called “cloud”. More on this later.) which acts as a server. The protocol stack we learned above is used to communicate between these two systems (client and server) as shown in the diagram below:
The ecosystem of consumer internet:
There are several aspects of consumer internet that one needs to learn to get a complete picture and then there are major players serving at various levels to cater to these aspects.
DNS is a protocol, as discussed above for uniquely identifying your website. The major domain registrars are Godaddy, Hostgator, Bluehost, Dreamhost. On another hand, if you want to know who is the domain owner for a particular domain, tools like whois.com and domaintools.com help you find the details like name, address, contact details, date of registration, and tons of more data related to the domain.
The domains need to be renewed at a regular interval minimum being – annually. The domain that doesn’t get renewed expire and are made available for purchase again. There are tools like expireddomains.net where you can find a list of all domain that has recently expired and is available for purchase again.
As an aside, there is a thriving business of domain name trading which deals with buy and sell of pre-registered domains. For reasons mentioned below, a domain gains premium status and thus gets traded at much value than what it was purchased from the registrar.
A domain name is the identity of a business and plays a big role in branding, mind recall and ease of access. Also, from SEO (Search engine optimization – we discuss this in marketing section ahead) standpoint, domains gain authority as they age, which in turn makes them credible to Google. That gets the website to show up higher in search results leading to traffic to the website.
We learned in the client-server architecture section, that server is a computer that stores all the data. The server is also alternatively called hosts. A hosting service provider lets you store your data in a storage unit (like your phone memory, but much more spacious and powerful) that’s connected to the internet and is accessible through a uniquely designated address – called IP address. The players mentioned above also provide hosting services.
Cloud is a metaphor for server resources (storage, computes) that are accessed and shared over the internet. With cloud computing, “pay per use” was made possible for the first time. The model allowed businesses to the only provision and pay for space and bandwidth that they need instead of taking redundant high-cost server infrastructure. Again cloud computing presents its own advantages and complications, which is beyond the scope of our conversation. Major players in this space include Amazon web services for public cloud and VMware for private clouds.
As discussed in application layer section, there is a clutch of technologies, programming languages, and platforms that get used for developing these applications. It’s these applications that incorporate business logic for solving our business and day to day problems. Top programming languages are Java, JS, C# (.net), Python, PHP, Ruby on rails, etc. The diagram we saw above, also shows SQL as a language. However, its used for managing databases and irrespective of what programming language you are using, you’ll have to use SQL (structured query language) for managing databases.
Mobile apps are built on platforms that are controlled by private players like Google – Android and Apple – iOS. Both these platforms support their own languages and require special training for developers to learn the syntax. What’s complicated though one needs to rewrite the same business logic in two different languages to cater to these platforms.
There is, however, a hybrid approach that one can take using technologies like PhoneGap which allows you to write once and implement on both platforms. However, they lack the native feel and gives end users a jittery experience. There are however different viewpoints on this. Telerik.com (https://developer.telerik.com/featured/what-is-a-hybrid-mobile-app/) provides a fair explanation. If you intend to develop a mobile application for your business or your client, you should consider making an informed decision on hybrid vs native approach.
These are an integral part of the whole world wide web story. Browers are programs designed especially for sending requests to server/host from the client device for data. They extend their services beyond just data access but also maintaining sessions. Browsers have evolved over a period of time to suit the needs of various devices, add more functionalities while consuming fewer device resources.
A lesser-known fact about browsers is a browser extension. They extend the functionality of your browser in the ways you like. Chrome by Google and Firefox by Mozilla have amazing marketplaces by the name of Chrome Web store and Add-ons by Mozilla which allow you to download and use several extensions for free. For instance, you can add an extension for bookmarking sites that you like for later reference. An extension called “GetPocket” helps you do it. You may want to take a screenshot of your webpage – “Nimbus screenshots” will come in handy here.
Consumer internet business models :
Core philosophy behind existence: Strategy vs. utility
Every software ever built is either strategic to business and delivers a revenue or branding function or caters to a specific utility function (like payroll, etc.) in the organization. Martin Fowler first proposed the concept in his article Utility Vs. Strategic Dichotomy (https://martinfowler.com/bliki/UtilityVsStrategicDichotomy.html) in 2010, where he explored what does this mean for businesses implementing IT and teams (and DNA) that goes beyond building each type of software. I extrapolate the differences noted by him to give a perspective on where consumer internet can make sense to businesses and entrepreneurs and what does it mean to an end user.
Utility software: The software that helps you keep “ the lights on”! It’s what you want to be working well at all times without you having to care about the quality of technology, scalability or analytics on user interaction. A payroll software or an enterprise mail server, for instance, can fall in this category. An interesting twist to this is automation to achieve “Operational efficiency.” This has a significant impact on a businesses’ ability to scale without having to increase workforce and resources proportionately. The meteoric rise of some of the startups to a billion dollar valuation could be partly attributed to this.
Strategic Software: Software built around your competitive advantage leading to growth in revenues, market shares, and strategic positioning can be classified into strategic. The definition can be extended to software that directly contributes to revenues or is the only source of income ( an eCommerce enterprise for example.)
Another crucial aspect is risk and criticality each type of software, and its functioning has. It can prove to be catastrophic if the utility software doesn’t work well. For a functioning business, it’s important to make sure that the core business functions aren’t disrupted, and hygiene isn’t hurt. For example, disruptions to stuff like payroll or supply chain management are non-negotiable. On another hand, strategic software by definition is experimental and comes with known execution risks and failures. Also, the risk is controlled to a point where competition doesn’t squander your mistakes. Building an app for strengthening partner/reseller ecosystem will position you better over your competition in your ability to educate and communicate with your partners. However, if the software breaks, it may upset your partners for a while till its back up again, but it won’t disrupt lives or business.
The thin line: Not every product development is strategic
The whole exercise of sanctioning a tech budget, to development of technology or buying a tech off the shelf and commissioning, or the choice of the platform itself – have no bearing on whether a product is strategic or utility. Its the business function which the technology caters to makes the process strategic or utility. The decider being competitive or revenue advantage. We discuss this in further sections on what this means to different stakeholders.
Consumer internet = Strategic software?
Consumer internet, arguably, tends to be more on the strategic front than utility. An accepted definition of consumer internet products is companies with no offline business presence. Irrespective, we agree with it or no, whats clear is consumer internet products cater to revenue function, end customer interaction, faster communication modes (think of push notifications on the mobile app), all-embracing user experience, understanding of behavior economics (add link) and so on.
That said, there is nothing that stops consumer internet apps from driving utility business functions gracefully. Performance appraisals are a high importance utility function for organizations, and consumer internet apps like Teambit (https://teambit.io/) and Dueprops (https://dueprops.com/) just make it enjoyable, transparent and fairer.
The operational efficiency dichotomy
Operations can be quickly passed for utility. But for today’s startups and organizations, high operational efficiency lends a competitive advantage. A recent case where Uber was about to acquire an Indian taxi hailing startup, Taxiforsure. A significant disruption to that acquisition was reluctance on the part of Taxiforsure founders. The reason being, they had 1600 employees helping them run their operations in just two or three cities. In contrast, Uber’s global operations were run with only 800 employees overall. The acquisition would have surely meant mass layoff with little notice. While that represents noble altruism by Taxiforsure founders, it also goes on to show the way Uber used technology optimize its workforce and business model. As I write this, Uber has removed its call center access from the app. However, their support is way too powerful than the ones with call centers – just by way of learning user behaviors and putting it back in tech while eliminating people dependency and inconsistent experience.
What would this classification mean to CEO / CIO / CDOs:
The choice of business function (strategic vs. utility) completely changes the approach, DNA of teams working on it, build vs. buy decisions parameters and budget.
For utility projects, there may not be reasons for reinventing the wheel and installing a package i.e. buying one might just make sense. Here the cost is not a critical concern since the opportunity loss in risking the stability of utility software can be too high as noted above. A lot of your regular IT needs is “utility” which leads to greater IT budget allocated to it. Martin Fowler estimates a ratio of 95:5 for utility: strategic.
Whats also important to note, that this categorization is transient in nature. Whats strategic may eventually become utility and vice versa. For instance, something of operational significance can convert into a great competitive advantage while a piece technology once deployed as a significant differentiator is commoditized. This causes blurring lines between the two classifications, which in turn can lead to wrong treatment.
What would this classification mean to Entrepreneurs and startup founders:
In a Business to business setup, a startup founder needs to take sides. If they choose to go for the utility function, they for sure are up against some formidable competition and resistance. Given how critical this function is, Organizations are seldom willing to experiment or go with lesser known players in the market. Another issue is time to market. Taking a minimal viable product (nutsovertech.com) approach absolutely doesn’t work for utility products. The product can’t be shipped unless all edge cases (nutsovertech.com) and scenarios are taken into consideration. That’s what makes Lean (nutsovertech.com) methodology almost infeasible here. Thus while on one hand, it may not be feasible for you to implement a feature for every use case on another your first customer won’t sign you up till they feel completely covered. Funding products in such scenarios can be tough and the development cycles might take a while before the product sees the light of the day. On the brighter side though, these are proven use-cases, they come with known advantages and the return on investments can be much easier to prove which in turn makes it an easier sell.
The constraints mentioned above are much more relaxed for a consumer internet led strategic product and when sold at the right cost or in a pay per use model, it becomes much easier to convert a sale. Also, given you are still learning from the market and the application has room to evolve before a lot of unwanted features are made.
In Business to consumer model, you are not restricted to any of these constraints however you need to leverage benefits of consumer internet to its full potential. We discuss this in greater detail when we look at several different models. However, the difference between strategic vs. utility may not have any impact here. Whats important to note, that the organisation releasing such app is well
Teams: The same goes for and Agile (nutsovertech.com) methodology and teams when it comes to the development of a utility software.
<Article to be continued>