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.


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!