Saturday, January 18, 2014

Proposing - Context Intelligence System(CIS)

Website/App has to adapt and behave in accordance with the Context. I'm sharing a design  idea of  a software component to achieve this context aware behavior. For now, I name this component as "Context Intelligence System(CIS)".

What is Context?

User may be a registered user (or) who visits your site without signing in which can be identified by a cookie.  User's are mapped to location , device,  time stamp, social media data, interests etc. to form a context.

Context can also be any other circumstantial data relevant to the product. For example,
- User Affinity to the product  like first time user, active user can be a context
-  Data from outside circumstances and surroundings which are relevant to your business.  For example, weather data, stock market data etc. can also be part of a context.


You can see from above picture, CIS has two components - CIS - Data Store and  CIS -Engine.

CIS - Data Store

CIS will be the central location for all context related data.  Below I have listed down the various types of data that can go into this CIS datastore.

This is a sample data set, selection of this data are highly specific to your business.
1) User location, device, time-stamp data are stored and manged here.
2) Data from your third party data stores like Janrain(user social media data) are pulled and stored here.
3) External available data like weather information, stock market data.etc can be stored here.
4) User actions, User Product affinity are aggregated and stored here.
We can use Hadoop or any other big data solution to collect, crunch and store this data.

CIS also captures and mange the data real time when user interacts with your app. Real time data can be device info, location info .etc

CIS datastore has very good data-set, so this data can be used by other components in your system like recommendation engine, BI.

Point to consider  - Data Duplication.  Make careful decision when you have a requirement to duplicate the data from original data store.

CIS - Engine

CIS Engine is the core component of CIS System.  It performs the below operations

Context specific API Facade

CIS Engine add context specific parameters to your API call via API facade layer. CIS gives personalized context aware behavior to the API.  ( You can read this eBook to know about API facade -

For example,

We can pass the context like device, location to the API call  to make your API context aware.
Search API call for the default search page can have items related with the context.
Notification API call can get the context (device =mobile and location) to display context aware notification

Context Rules

CIS Engine have context rules to perform context specific decision making.

For example,

Rule1 - If the context = (device=mobile) --->send notification about the nearest store offer.
Rule2 - If the context = (location=Boston,weather=raining) ---> run the Google Adwords campaign in this locality for a product/food that people like in rainy days.
Rule3 - If the context = (action=discarded shopping cart) ---> send the mail and run the re-marketing campaign
Rule4 -  If the context = (user affinity=first time user) ---> display the notifications for first time users
Rule 5-  If the context = (user affinity=active user, location=Los Angeles) ---> roll out a new feature (This helps to roll out a new feature for selective audience.)

Rule2 talks about Google Adwords. Google Adwords provides API's to manage campaigns. Here depending on a context, you can pause or restart a campaign.  Campaign management can be automated to a extent to be in-line with the context. ( Other marketing platform like facebook, twitter works in similar way.)

Adaptive User Interface(AUI)

Adaptive UI/ website itself is a broad topic with separate design patterns and principle, so I didn't put the adaptive UI design in this CIS scope. As CIS stores and manages all context information, I believe it can also manage the functionality/code for adaptive website. 

What's new about CIS?

Having the context aware system at the center place helps to better mange, have control and visualize the things. CIS gather all useful information about users, actions, context at one place for better decision making and applying rules. Like any other development, you can build CIS iteratively and improve.

This is the initial design of CIS and there may be scope of improvement.

Tuesday, January 7, 2014

A simple solution for better product development and management

I'm coming to my point straight, the simple solution I mentioned in the title is "Right Metrics". Having-  "Right Metrics" results in better product development and management  It may look obvious, but many didn't get this right. . We all have some type of metrics to track our product development and  progress. But whether our metrics are in-line with the product goals?  Does it reflects the actual reality?.

To explain this, let's take an example that you are going to develop a youtube style app for kids called "KidsVid" and assuming you have enough resources to start your project.

I'm giving you some fictional situation to explain what could be a Right Metrics in this product life-cycle.

Situation 1:  Product Development Metrics

Suppose if you are taking the metrics after first month to track the progress on the product development of this KidsVid app, the metrics has to reflect the progress on core aspects of product development like.

1)  API  Delivery ( All product functionality are exposed as API)
2)  Product Spec Delivery
3)  Zeroing of Minimum viable product
4)  Wireframes, Design documents and delivery for UI
5)  Product Technical Framework
6)  Core Technical  block of  the project like adaptive website, video streaming .etc
7)  Delivery of workflows and modules which are in-line with your spec (or) minimum viable product.
8)  Implementation of best practices like product management tools, test driven development, continuous integration.etc

These metrics are highly specific to your project and business. But the core idea here is get the metrics that matter.

Situation 2:  User Adoption Metrics

Now assuming you have successfully launched your product  and you want to see the user adoption for your product. Metrics which talks only about  user visits (or) sign up with your site is not saying the entire story. Your metrics has to reflect - how many users actually using your product , what actions they performed .etc so that you can track the real user adoption. Basically your metric has to see from different dimesionsions

Situation 3:  Analytic Metrics

You may want to see the analytics of videos in your site. Here, Video Retention Rate is the right metrics to have rather than  just tracking how many user clicking the video.

Having a right metric helps to track the actual progress and adoption of your product.  A Right Metric has to tell the truth in simple terms.

Sharing some tips on having right metrics.

Dimensions and View Point

We have to see from different dimensions and view points to have a right metric..

Dimesions - Dimension covers all aspects of a situation/problem. Product Development Metrics cited above covers different dimensions of product development.
View Point-  We have to see from the view point of customer, developer, product owner, business .etc.

Time Period for Metrics

Preparing the metrics may not be a day-today activity for all use cases. For marketing, it may be daily. For Product development metrics, you can have it monthly . This time period  also plays an important role in having a right metrics.

Accept the Shortcomings

If your  are not satisfactory with the metrics, just accept the shortcomings. Especially this is very important if you are at a higher level of your organization like investor, advisor, cxo, co-founder, product manager. etc.

Improve Iteratively

Good if you are not satisfied with the metrics.  Now go-ahead and create appropriate tasks for your team to achieve a satisfactory metric, thus you are iteratively improving to build a better product.

Get your metrics right to build a successful product with a wonderful customer experience!.