Wednesday, July 23, 2014

Tweaking Agile/Scrum

I've been working on agile and scrum for quite some years. Generally I like Agile/Scrum methodologies, but I think some of its aspects can be tweaked to suit better.






First, I'll share the problems I see with agile. Especially, this is very important when you are doing a new product (or) development

1) Free thinking, experimenting environment and sharing ideas can become limited as individuals concentrate more on their current user story and tasks on hand.

2) May not fit everyone's working style.  I'll explain what is "working style" I'm talking about.

Take, Person A, Person B working on your project. Now, the way they approach the problem is different

Person  A   -   do research --> read through API's --> do the coding--> quality deliverables.

Person B    -   do some dirty coding --> read API's --> make something works --> do the coding --> iteratively improves --> quality deliverables

We are more concerned about the output rather than their working style. Here the last step "quality deliverable" is important than anything else. We need  to see how we can make the agile/scrum fit the different working style's like this.

3) Problems in Time sheet. I have explained about this in detail below. Time-sheet may not be tied with Agile/Scrum entirely , it can be a general perspective from product management.

4) Visibility about big picture related with company, product, vision .etc are limited to selected few who do the tasks like sprint planning.


What we can do?


I have put few suggestions to address the problems mentioned above.


Sprint Planning


Macro thinking, Big Picture, overall Business/product objectives has to be part of every sprint planning meeting. Tell them where this sprint  fit in overall business/product goals. In this way, everyone is motivated towards the task in hand thinking the big picture.  It also encourages innovation, new ideas and out of box thinking from team members.


Daily Sprint Call


Daily sprint call  need not be a place to discuss only about your current sprint and work. Don't make mandatory for team members to share the status of their current work unless there is a real dependency with other team members (or) something important to share. Again, creating daily dependency between project members is not a good project planning.  Daily sprint call can also be just a causal greeting with coffee.


Time sheet


Time-sheet may be needed to see the effort spent by project members which can be used for some  metrics (or) to raise invoice (or) for other organizational needs.

This is my take on time-sheet which fits good it is a new development.

1) Time-sheet need not be a daily task of the project members.

2) Encourage developers to track the things they are working daily which helps to fill end of sprint (Most sprints are fortnightly). So in a way,  it fit's everyone's working style. Also, it will not make them to fill just for the sake of filling.

3) Don't put micro tasks with micro time which are trivial. For example, from software development perspective, don't create a task like 'Installing Something' and put 1 hour for that .  Idea is overall output from a project member is important  rather than tasks in daily time-sheet.

My suggestion is let the project lead/manger and team member sit together and fill time-sheet at the end of every sprint.  By doing so, it helps to get consistency and uniformity in defining tasks.
It also helps to take metrics as you wish and become more manageable and readable for future references.

Monday, March 31, 2014

Pattern Mining - The crucial link for your product alignment

Patterns emerge from the way consumer interacts with your product.  These patterns tells how users use the product  to do what they want.

Now, do your product stick to the existing patterns? (or) you go and seek for new patterns and trends?

The product has to evolve with new patterns and possibilities. Sticking to a pattern may make your company/product complacent. For this, You have to hunt and mine for new patterns. Based  upon the new patterns, you can alter your existing offering (or) you can give entirely a new offering.  How fast you align the product with external circumstances and audience sentiment is more crucial than ever before.





Now, how you can mine a new pattern?. Some of the possible ways you can to do this are...

See your customers - Data Analytics


See your customers. See how they are using your app.  For this, Data Analytics has to be part of your product development and management. For efficient data analytics, you need to have a good data set
and customer actions has to be captured with efficient logging .etc . So Data Analytics has to be factored out in product design and development.

Talk to your customer


Go and just talk to some random customers. You'll be surprised to get more insights by knowing how they are using your app and the suggestions they give. It would be even better if you able to segregate your customer segment something like - customer discarded your product, customer actively using your product, new customers, customers from different locality.. etc. and talk to them. You can do this as an monthly exercise.

Mine the pattern from the outside world 


Seek the pattern in the outside world.  This can be general consumption of information in your space (or) through a proper  research conducted by surveys and feedback.

Follow your competitors


Another way of doing this by following your competitor (or) the companies in your space.  If you see some trends, you can also align with the that.

For example, Facebook introduced places which is similar to Foursquare Checkin, Facebook introduced hashtags which is from twitter

Crunch data to get insights


Crunching and combining the above data points helps you to mine new patterns which guides your overall product alignment.

Apart from these data points, your ability to foresee the things and your intuition also helps here.

Why we need?


New trends and patterns are emerging very fast and your product/offering may become obsolete sooner than before.

Who needs this?


  • Even if you are a start-up (or) an established player, you have to do this.
  • Do this even if your business is doing good (or) you are a leader in your space.  At times, you miss the changing tide and things may change very fast.
  • Do this if your business is not doing good. Even a small change in your offering may work in your favour.
  • Also mining new patterns is not something restricted with product development (or) product management alone.  For example, digital marketing is becoming more dynamic. Your strategy for last month may not work this month. You may need to sell entirely in a new Platform. So you have to mine the patterns and see the trends here as well.


May be,  BBM could have achieved what WhatsApp did. (or)  Nokia could have capitalized the smart phone market if they aligned their product strategy and offering at the right time by mining the new patterns and see the trends.

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.



CONTEXT INTELLIGENCE SYSTEM(CIS)



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 -http://apigee.com/about/content/api-fa%C3%A7ade-pattern)

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!.

Tuesday, November 26, 2013

The C factor!

If we receive wrapped gift, it generates a curiosity in our mind. It gives sense of mystic feel to the whole experience. Can we use this type of curiosity factor to create a genuine interest in the audience mind?. Understanding user behavior plays a role here. (  Related Post - Psychology in Product Design : http://www.juststartit.in/2013/02/psychology-in-product-management-part-1.html)





Let me give some examples to explain this.

Consider the below headlines in a news/content website.

Headline1 - Tom Cruise has Date with Laura
Headline2 - Check who's dating Tom Cruise

Naturally Headline2 triggers more interest than Headline1 and prompts us to click the article.

While writing this post,  just came across this article in Mashable -  "World Leaders Tweet Support for Iran Nuclear Deal — Except One"  ( http://mashable.com/2013/11/24/iran-nuclear-world-leaders/). This headline triggers an interest to read the article to know that person.

In another scenario, take a link inside a website

Link1   -  Get 10 % discount on purchase
Link2   -  Click and claim your discount.

Likelihood of clicking the Link2 is more .

This also applies to marketing emails where an apt subject can trigger curiosity to open and read the content. But  we  need to make sure not to use this everywhere  and make the entire product/website mystic :).

This curiosity factor plays a role predominantly in marketing and in designing the content. But we can explore this curiosity factor to use in workflow and in UI to generate interest.

As with any other technique, it all depends on the context and implementation. 

Saturday, August 24, 2013

Recommendation - Its all about the possibilities

Recommendation engine plays a crucial role in consumer websites/apps. Some applications like pandora are driven entirely based on the recommendation.





If we  take an example of consumer website like eCommerce, news website., there are various factors that can be taken into account for recommendation engine development.

I'll list down these possibilities for a better understanding and share some tips on implementation...

Collaborative Filtering and ML

Recommendation Engine can leverage Machine Learning frameworks like Mahout  for the below types of recommendations.

User Based - Recommendation engine can give recommendation by mapping the similar user and their preference.

Item Similarity - Similarity between items are calculated and recommended

User based and Item Similarity recommendations comes under Collaborative Filtering technique.

Content Based - We can compare the attributes between items and users to provide similarity. It is especially useful when we don't have sufficient data to perform collaborative filtering. We can use some similarity algorithm from ML library like Mahout or we can use search system like SOLR for this.

Clustering - Clustering techniques can be used to group the similar items

Other Possibilities:

Below I'm listing other factors that can be considered for recommendation. I believe these things are more intuitive and we can identify them when we see from an audience view point.

Out of user boundary / Opposing Views -   We can recommend something fresh out of an user boundary.  Something user never explored before. It can also be a content from others with opposing views.

History - Recommend an item by tracking user's viewing history. Views can also be tracked by a heat map or attention to particular area of web page by the user.

Top selling  Items - Recommending Top selling items, Top 10 items .etc

Trending Items - Trending/Most shared item in social media like facebook, youtube, twitter

New Releases -  New release may trigger user interest. This is highly relevant in fashion world.

Friend's actions - Recommend an item based on the friends actions by leveraging social media. But this is not always relevant. I may not want to buy the same shirt my friend wear but I like to read the news he commented.   In the section  - "On Implementation" - Uniqueness and Weightage talks about this

Location based - Some purchase decisions may be location based. When a user located in Mumbai and if it is a monsoon, we can recommend rain accessories applicable to that location.

Map user personality - We can map user personality  and recommend an item. We can pull information  from social media sites like likes, favorites etc and map the user personality. We can also map a personality by mapping user's past actions with the product. A hybrid of both approach also works.

Personalities can be like this - One who try new things, One who spend on premium/expensive stuff,  One who always purchase on deals .etc

Time based - Decision making may be different from starting of the week, end of the week, month starting. etc.

Screens - Recommendation may be different on various screens like laptop, mobile, tablet. For example, if your customer using your mobile app and you able to access his location, you can recommend an nearest store deals, distance to nearest store .etc

Still there  may be many  things to factor, more techniques &algorithms that can be useful to give a better recommendation to the user.

On Implementation


How to factor all these possibilities on the implementation?. I'm sharing some tips on the implementation front...

Unique Approach -  Unique approach for each usecase. If we take this recommendation example, recommending an article in news website is different from recommending a shirt in an online apparel store.

Hybrid Models-  Combining the various approaches/possibilities may work. Here we can combine multiple ways of recommendation.  It can be a combination of user based  +location based +something else.
Its not always Yes or No, try to find alternative paths.

Weightage - Weigh the features, have a strategy and incrementally build and release the features. For instance, you can build the basic recommendation engine using item based or content based and incrementally add the features based upon user testing and feedback.

Right Metrics - Have a right metrics.  For the above example, the metrics would be how a consumer reacts to the recommendation, what is the change of traffic pattern .etc.

Place for Experimentation - Have a place for experimentation. Check and measure with labeled or test data. You you can also experiment with A/B testing to test which approach actually works better.


Wednesday, August 21, 2013

Going Lean will save your time in Software Development Lifecycle

Eliminate wastage is a Lean software principle. In the software product development life-cycle, we can avoid the wastage of time and resources in many ways and in-turn we can invest our time productively in building a product and give a better customer experience. This post covers some basic things we can implement in project to save our time and  also improve the overall quality of the product.




No Grepping


Having a better log analysis and monitoring mechanism saves overall project time. Don't waste time in grepping or FTP ing the log files. You can have a look on Splunk Log Management (http://www.splunk.com/view/log-management/SP-CAAAC6F/) to get an understanding of log collection, analysis and monitoring. You can also build your own implementation.

Some technical pointers if you want to build your own implementation..

Log everything in same time stamp, preferably UTC.
Have a common  log data  format everywhere from server logs, audit logs, application logs. etc.  Explore JSON logging
Log Processing - Check Logstash (http://logstash.net/).  Hadoop can be used in specific use cases.            
Searchable Log Repository - Elasticsearch. can be a good choice
For Analytics and Insights - You can use Pig/Hive, Hbase, RedShift, Impala, Google BigQuery  or any other relevant tool
Have an alert Mechanism for important events specifically on error scenario, suspicious events.

Searchable Product Repository /WIKI & moderate it


Have a product repository with WIKI along with a good search feature (Example: https://www.atlassian.com/software/confluence/features). Don't maintain the project documents in the file system or in version control systems like svn. Lot of time would be wasted in searching  and maintaining it.

What can go into this repository?.

- Project functional/ requirement documents
- Technical/architectural documents
- Specific problem encountered during development and ways to resolve .
- Reason for technical /functional design decisions
- Important project/business insights
- Research documents
- Problem encountered at system level( Examples: Memory /Space Issues in the environment) and the resolution
- Environment related like server information, background processes .etc
- Code Workflow

and any other relevant documents

Have this repository without moderation is of no use. Avoid unwanted articles dumped into it and maintain the overall quality.

Don't be a human keyboard


There are tasks like this in every project

- FTP ing the files
- Clear temporary files to retrieve disk space
- Monitor the CPU/Memory
- Apply software patches
- Install software
- Replicate the environment
- Look something specific in logs and alert

 Build some handy tools to accomplish these types of task. Automate the process if necessary.

Continuous Integration, Deployments - with automated tests


Automate the whole deployment process and have a continuous integration. Use tools like bamboo (https://www.atlassian.com/software/bamboo)  for continuous integration and to create build plans. No manual intervention should be there in any build and deployment process. Also have your tests integrated with the build process.

Test Suites and Test Plans - Do wonders


  • Have a clear strategy when creating TestSuites, Test Plans and Unit Tests.
  • Create specific test plans for various tests like Smoke Test, Sanity Test .etc.
  • Schedule to run the test plans automatically. It helps to see the problems pro-actively and also saves considerable time in a longer run.

You can use the bamboo tool mentioned earlier to maintain the test plans and scheduling.

Code Review - A must to have & better with a tool


Code Review should be part of the development. Have a proper tool to collaboratively review and add comments. (Example: https://www.atlassian.com/software/fisheye/overview). It helps to saves considerable time in longer run and also increases the overall quality of the product.

Think beyond opensource tools


Invest in tools like Jira, wiki. etc (or)  which ever tool you can afford. Just compare the licencing cost (mostly it is pay as you go)  with overall productivity you are going to get. Also compare the cost per hour you spend for a developer with the hours eventually the tool will save for you.



Monday, February 25, 2013

Consumer Psychology in Product Development Lifecycle

Understanding Consumer Psychology plays an important role in all stages of product life-cycle.

Cognitive


We need to understand what user perceive and factor that into product design.  Cognitive psychology plays an important role here. If we able to foresee the customer problems and their expectation for our product, we can give a better customer experience.

I my  previous posts, I have talked about the Customer Experience in general.
http://www.juststartit.in/2013/01/approach-to-product-development.html




Small Things  makes Good Impact


Often small things makes a good impact with the users. Some examples below,

 1) A personalized email with a name rather than 'noreply@xxxxx.com' gives a sense of comfort and closeness with the product.

 2) A human face in a web page triggers a positive emotion.

 3) Choosing a color, theme in designing the pages conveys a meaning to the product.

 4) In branding, a tagline plays a vital role and  decides on how customer relates with the product.
Some good taglines: Disney – "The happiest place on earth": Kit-Kat – "Have a break. Have a Kit-Kat.".

 5) Increase in response time by some milliseconds on a crucial page may impact the overall conversions.

Persuasion


We need to persuade the users to buy our product or to sell our services. There are some basic principles of persuasion coined by Robert Cialdini

I have added examples in the context of a web product.


  • Reciprocity - People tend to return a favor,
    
 Give a free (or) trial version. They return a favor by buying them.

  • Commitment and Consistency - Once people commit to what they think is right, orally or in writing, they are more likely to honor that commitment.

 If  there are constraints like age, location to use a product, we can make the users to declare and accept a form. Majority of them will not violate after this commitment.

  • Social Proof - People will do things that they see other people are doing. 

Show what  other people have done with your product. It can be a review or a detailed case study. It gives a sense of confidence and they get involved.

  • Authority - People will tend to obey authority figures.
  
Tone of FAQ and other important sections of the site can be in a little authoritative tone.

  • Liking - People are easily persuaded by other people whom they like. 

People tend to get interested in a product if it is reviewed or bought by people they like. Social Media can be leveraged here.

  • Scarcity - Perceived scarcity will generate demand.
  
We often see 'Limited time offer' (or) 'Limited items available'. It uses this principle.

I believe this article can be a starting point to think in the perspective of  psychology and consumer behavior

Tuesday, January 29, 2013

Really inspiring Reality TV

Reality TV is quite inspiring for their creativity and ability to sell anything from cooking, mining to house renovation.  Do some of these programs have common traits to make it appealing?.  I'm explaining this with the reality TV programs which I have watched in recent times.





Pawn Stars -  It chronicles the daily activities at the World Famous Pawn Shop.         






Property Brothers - Where Identical twin brothers  help home buyers to purchase and renovate homes                                                                              

Kitchen Nightmares - In which chef Gordon Rams spend time with the failing restaurant to revive the business.                          


Some emotions are common to most of us. These programs capture this to make it appealing. We get involved independent of theme and the background of the program. I have listed down some commonalities .
. .

Detailing with interesting stories 


We love stories.  Detailing it with interesting stories creates a genuine interest with the audience. In PawnStars, when someone walk into the store to sell an article, we hear stories and background about that article, which creates a curiosity and interest.

Show the difference of opinion


There is a difference of opinion and people debate in these programs.  In PropertyBrothers, couples have difference of opinion on which house to choose from the given options. Audience align to someone's view point due to this difference of opinion.

Build Anticipation


Audience likes a suspense factor.  In "Pawn Stars", there is an anticipation on how much the article actually worth. In "Kitchen Nightmare", there is an anticipation on how customers would react after the renovation of the restaurant

Capture the Emotion


These programs capture the emotion and make it more dramatic as possible. In PropertyBrothers, we see the happy emotions of  the couple after they found a home of their dreams. We also see the furious emotions of employees of the failing business in programs like Kitchen Nightmares.

Certain things doesn't seem to fall on patterns. But when we relate and visualize, we can see some common traits and patterns.

Saturday, January 26, 2013

Jumpstart to Big Data and Cloud

These guidelines and approaches are targeted for first time users of  Big Data(Hadoop ecosystem) and Cloud. "Cloud" here refers to public cloud  services like Amazon AWS




Big Data - Go with the Hadoop distribution

Start with the hadoop distributions like cloudera, hottonworks.  These distributions comes with all the required dependencies and packages to work. You also get an admin console to check and mange your hadoop cluster. Avoid setting up the  Hadoop cluster on your own unless absolutely needed. For development purpose, if you want to work on your windows machine, install a VM player and use the Cloudera distribution on top of it.

Big Data -  Use  Map Reduce Programs only when necessary

Do your development using Pig or Hive for your big data map reduce problems. You can handle most big data uses cases with these tools.  Don't write your own map reduce part unless you have very specific use case that cannot be handled by these tools

Big Data - Use Cloud to scale

Make your code run on your local distribution(cluster) like cloudera. Your local distribution can be of any size. You can use this for your development and test your code.  If you want to scale, you can check cloud options like amazon EMR. Important point to remember  is your big data code for data crunching,  recommendation.etc are not going to change much if you want to  run in cloud service like EMR.  If you read the documentation and follow the steps you can set up your code in the cloud in no time.


Big  Data - More handy tools

There are many handy tools and connectors available in this space. Always search for the options before you start doing  your development. For example, part of your big data problems, you may have a requirement to export the data to database. You can use a tool -  "Sqoop" for this purpose instead of writing your own.

Big Data - Understand the Use Cases


Understand all the use cases where Big Data fits in your application assuming you have large data set.

Some use-cases I have listed here for your understanding..

1) Counting and Grouping

Example: Grouping a user based on some criteria, Counting the most visited page. etc

2) Filter the data set using some parameters.

Example: Get the user list who accessed your app via Iphone.

3) Process, Filter the data and combine with various data sources like RDMBS, Mongo Db

 Example: Get the user list who accessed via Iphone and get those user's profile details from mongo db.
 Process the message with these details and put a entry into the Email delivery table of some datastore.

4) Analytics, Recommendation algorithm

Example: Finding the related items and recommend to users. What Amazon and other sites do. You can build a big data analytics solutions using Hadoop.

5) Data Pipeline ETL

You can crunch large data set and transform and store it in some data store for anlaytics.


Analytics, Machine Learning  problems are not entirely dependent on Hadoop/ Big Data 

Analytics, Machine Learning problems are not entirely dependent on Hadoop/Big Data.  Machine learning libraries like Mahout  have specific distributed algorithms which can leverage Hadoop/ Big Data for processing huge data sets. It can work without Big Data/ Hadoop as well. So learn and understand the algorithms, check which suits your need without worrying the Hadoop part.


Cloud -  Just start using it

Cloud providers like AWS abstracted the underlying virtualization part and they made easy for the end users. Read the documentation, best practices and you can start using it  without worrying much about the underlying implementation. Don't consume so much information(lot of information available in this space) without proceeding with your product/project goal.. More can be learnt, great insights and knowledge can be acquired as and when you start using it.


Cloud -  More offering apart from Scaling and Cost

Cloud services like Amazon, Rackspace are not only usedul to scale your app or to reduce the cost. You can  explore their ecosystem and check various services they provide with storage, cache,CDN .etc and leverage in your app

Cloud  - Things Fail.  Don't investigate. Have a fail-over strategy

If a instance or virtual machine fails,  hardly you can restore it.  Have a good failover strategy(Load Balancers, Backup.etc) .

Cloud  - Application Abstraction Layer

Have a abstraction layer in your application wherever possible when you use cloud services like cache, CDN. etc. All your program interacts with this abstraction layer and real implementation should be hidden. So there will be minimal change,  if you switch over to a different cloud provider in future.

Cloud  -  Collect Metrics and Analyze

Collect the essential metrics, analyze and check how your application performs in cloud. Amazon has a excellent service - CloudWatch for this. Even you use best practices, it is better to analyze how your application performs in cloud and do the necessary tuning.


Thursday, January 24, 2013

Big Marketing Shift

We are seeing a major shift in how people find a business and engage. Advertising is no longer sufficient to drive customers to your business. We are seeing a big shift in how we market our business





Build Communities


Communities for or around your product plays a important role.

There are various ways to build a community. You can build a community around your product theme. For instance, if you are selling a walking gadget, form a community like "Joy of Walking" in social media and through other channels . Engage the audience and  talk about it. Don't pitch in your product directly and try to sell there. You can give out the coupons and through other means you can leverage this community. Forming a community directly with the name of the product is  also efficient in some cases.

Review Driven


First check the reviews and then decide. This is how people now make choices. We check Yelp, TripAdvisor, Play store .etc. for reviews. One good thing about this is if your product/business/service satisfies the customer,  you get positive reviews. So it all boils down in giving a good service (or) doing a great product. Rest of things are automatically taken care of.

Alternatively, you can also form a strategy to get positive reviews,

- Register your services engage and genuinely address the customer concerns in review sites and other relevant forums.

- You can also get the feedback from the customer who walks into the store and assure them you'll address the concerns they've raised. After that, it is very rare they go and put a negative review. It is the human factor of the business.

Contents..Contents..Contents..


Content rules. Put quality contents across channels. Let it be the photos of your business (or)  video tutorial in youtube (or) exhaustive Help /FAQ section in your site (or) posts in facebook/twitter.


More Engagement


Engage more with the existing and potential customer in forums, web sites, groups and social media as much as you can.


Wednesday, January 23, 2013

Explore the ecosystem by working in a Startup

Best part of being a developer in a start-up is you get exposure to core processes apart from coding. Interactions you  have with people from other divisions are mutually beneficial and  in-turn do goodies for the company. To give an idea of what I'm talking about , I'm listing some of the possible interactions you can have in a web startup



With Marketing Folks 


Understand the marketing initiatives and campaigns. Get clear visibility on how and where people interact with  your site seeing the campaign.  With this input you can design your landing page and other things more efficiently and be in line with the marketing goals and expectation of a user. You can also work out on other strategies to create further interest to the user to make them stay in your site.

On other hand, give various insights to the marketing folks on how the campaign performed like the type of  users registered, their demographics, how active are they .etc. Marketing people can use this data to align their campaign and strategies.


With Customer Support Professional


Interact with the support team. Analyze the user's queries, feedback and emails. It gives great insight on the customer's reaction to your product. You can try to address that in your future releases.

Also you can guide the support team on various workflows and help them to answer some specific queries.

With Product Managers/Owners


Interact with product mangers/owners , understand their vision and product development strategy. Give insights to them about user adoption to a feature and other things so that they can take informed decisions

You can check  forum, social media, blogs and other places where people talk about your product to get various insights. You can also set up a Google alert for your product name to not to miss any information on the web about your site/product.

Again it all boils down to your interest to participate. It is perfectly fine if you are interested in only development and coding which is the core of the business.


Sunday, January 20, 2013

Web Product Development - Start it small, Make it Big

How we approach the product development, plays a crucial role in its adoption and success. I have put some pointers here..




Minimum Viable Product


Find out the minimum viable product and start the product development.

For example, if  you want to develop a site like Yelp, then the minimum viable product would be business listing, search and review. Start detailing it and kick start the development. Other features like profile, fans, friends can be added later. Also while doing your minimum viable product, keep in mind the features that are going to come in future and make it extensible as possible

Visualize the Complete Workflow


Always visualize the complete workflow and how they are going to interact. For instance, if you  are going to design and develop an eCommerce order page, take time to understand the inventory, delivery, and support functionality. Think how all these parts would interact between each other to give a better customer experience.

Consistent across Channels


Make sure your customers get consistent experience when they interact with your application through various channels - Laptop, Tablets, TV, mobile, tablet.etc

Customer Experience is the key


Customer experience is a pretty broader sense right from designing the UI, giving them the support what they needed, understand what they expect seeing your marketing campaign. etc. Foreseeing the customer expectation and fulfilling it is the key.

Iterative Model


Product can be alliteratively developed and improved. 

Some example to understand how to think in an iterative way, 

On what level/depth I need to do this functionality/module now?. Can my design 
accommodate the additional functionality in future?.

What level of technology and time I need to allocate for scalability, security, performance .etc at this point?. Can I continuously improve this in future?.

What is required  level of  product operations and support required immediately? . .etc

Remember - Time is crucial!


Wednesday, September 12, 2012

Win - Win model


Day to day, we encounter many models in technology and business(both digital and physical). Some of them captures our attention because of their uniqueness and novelty. Below models fascinates me, it solves a problem both in producer and consumer side. For now, I just name this as a Win -Win Model.

Recaptcha: Recaptcha creates a model, mutually beneficial for google to translate books, improve their OCR(Optical Character Recognition) and  for site owners it helps to avoid spam and bots. 











For further read - http://www.google.com/recaptcha/learnmore 


Stanford Online AI Class: Another similar model we see from the Stanford Online AI Class. Artificial Intelligence classes are automated. Ranking questions, assigning homework and grading are done via AI systems. For a student it is useful to learn great concepts from the veterans of the field and in-turn they help the AI system to measure its teaching and continuously improve.
(Now, new classes moved to Udacity - http://www.udacity.com/ )













Reference - http://singularityhub.com/2011/08/18/100000-sign-up-for-stanfords-open-class-on-artificial-intelligence-classes-with-1-million-next/


Thursday, August 23, 2012

Startup's are like Movie Making

I believe movie making is like a start-up, building a company from scratch. It goes through all the phases of a startup life-cycle. I have put the similarities here..




Research and story: A start-up is to fulfill a story and  research should be put into it. Visualizing as a story and dig into features  is the best way to approach the product development. In movie making, story is the crucial element and basic research should be done around it for authenticity.


Start Fresh: A start-up is full of energy and fresh mind with no hangover whatsoever. Approach to a movie should be like this even for an experienced film maker

Creativity: Creativity is the core aspect in movie making and you cannot proceed anything further without it.
Being creative is essential quality to run  a start up in implementing new business models, creating a better customer experience, forming a culture inside the company, working on process improvement, product development, customer support

Detailing: Detailing is an essential and handy skill to have and very critical in building a product. In movies, detailing every aspects from characterization, screenplay and choosing best out of it is important.

Observation and Log: To succeed in film making,  you need to observe the outside world and follow the daily affairs. Even you can get new characters, ideas for your movies from people you meet and news you read. When running a company, we need to observe different business models, emerging technologies, practices. Maintaining a log of all the observations is handy

Coordination: In a start-up,  we need to co-ordinate with various resources from marketing, development, finance, legal, admin..etc.. We need to utilize the services of external vendors who are best in it and get the things done. Care should be taken on contracts and negotiations. Its all the orchestration of these things make the product successful. Same applies to movie making.

Copied vs Inspired: There is a thin line between copied and inspired. You can inspire from anything from successful business models to great customer experience. Use of best practices always do goodies for the business. Similarly, in movie making you can inspire from screenplay,camera angles,background , characterization.etc from other movies.

Small Things Matter: Small things matters and  add value to overall objective and goal. For instance, even changing the size, color of an action button in a website or changing the tone of  FAQ section may plays an role in overall conversion. In a movie, even a small eye reaction, a minor object in the background plays a role in catching the attention of audience and makes a scene likeable (knowingly or unknowingly).

On Track: Product should be on track with the vision(Project Requirements). We have to clearly identify what level we need to do a particular feature at that point of time and plan our time, effort and resource accordingly. Finding which is important at that point of time is the crucial aspect in running a company.
A movie should be in line with story and screen play and not to carried away with non important things.

Scope of Improvement: A product can be iteratively improved and even rework can be done. Similarly a scene can be re-shoot latter, patched up and even can be improved during editing. One difference - In-case of a movie, nothing can be done after launch.

On Budget: We may need to do some adjustments here and there to manage within the budget. Similar case applies to a start-up.

Cognitive Psychology: If we know what people perceive,think and react to a scenario, we can try to capitalize through product features and services. Same applies to a movie. We have to think in the audience shoes and predict how would they be reacting to a scene.

On Time: Meticulous planning helps to complete a movie within a schedule and launching at the right time.
A proper product road map and planning helps to complete and launch the product on time.

Scope of Marketing: Finished product can be marketed in all unique and novel ways depending on the context of the product. Same applies to a movie. Apart from posters and ads, I believe lot of potential is there in marketing movies in all  novel ways. For instance,  for a children movie we can uniquely target children of particular age groups with campaigns and competitions. Leveraging social media and engaging the audience is also important.

Launch and Post Launch: Product Launch is  important to create a hype around the product. Same applies to a movie. Press release, music release, still release, trailer release, road shows  plays a crucial role in creating a hype around movie.

Doing in a phased manner with the audience feedback is very important. Doing by this way(phased manner) also helps in building up the necessary hype.After the launch, engaging the audience and make them talk about your product gives tremendous result.

Customer / Audience  - The Ultimate Decider: Finally, the customer/audience decides the success independent of hype and who creates it..