Is it time to start looking out for a new job?

Career Decision - Next ExitI recently happened to read this post from the Spend Matters blog. Blog Post talks about three questions one should ask themselves regularly to decide whether it is time to look for a new job.

1. Do you feel you are personally learning and developing in your current role? Are you gaining new skills, developing your capability, becoming more expert – with the caveat that it really helps if these are in some sense transferable skills and knowledge.

2. Are you progressing in your career, moving forward from a seniority and / or financial point of view, with a trajectory that is heading in the right direction? (This assumes you have some ambition – not everyone does have, I realize).

3. Do you enjoy what you are doing – is it a good place to work, with decent “hygiene factors” and a bit more – which might be anything from pleasant colleagues and working environment, a commute that is manageable, technology that works, social events …

Excellent set of questions. You can find the original post here. 

This one is my favorite on this topic. Probably tied to all the 3 questions above.

To be happy and be fulfilled at work, people want to feel they are advancing, getting things done, and making an impact. But it’s not enough to simply to receive a pat on the back and a word of encouragement. Rather, we respond much more positively to feedback from the work itself. When we have achieved a goal like closing a sale, writing code that passes the test harness and is pushed to production, releasing a new feature that a million users touch every day, our happiness at work blooms.

Source: Managing for Progress

An Excellent book on this topic : The Progress Principle

Teresa Amabile’s talk at Google

In the end… it is not about the nice office buildings, additional perks etc. It is about the job itself. It is about the people you interact with on a daily basis and deal with.

The Successful demos at the end of every 2 weeks, Production Releases, a good solution to a complex problem, providing a solution using a new technology stack, number of first calls to potential prospects, a good sales pitch to a new prospect, a new customer win on a regular basis, hiring a good candidate, coming up with a new product offering… (A few items from my list). All of these contribute to the small wins part. If you dont have them as part of your day to day job or you dont see the number of small wins…. may be it is time!

Happy Learning!

Software Architecture, Customer Success

Happened to Watch couple of good videos last week on Software Architecture, Design and Customer Success.

How the World Wide Web just happened – Tim Berners-Lee
https://www.youtube.com/watch?v=yF5-6AcohQw
Great Session. Talks about the importance of being in the right place and the right time.

Mary Poppendieck (Poppendieck.LLC) – The New New Software Development Game: Containers, Micro Services
http://m.ustream.tv/recorded/61477219?rmalang=de_DE
Complexity grows non-linearly with Software size. Software size continues to grow so software complexity will continue to grow even faster. She explains what can we do about the complexity?

A summary of this talk is available here
http://highscalability.com/blog/2015/4/27/how-can-we-build-better-complex-systems-containers-microserv.html

Zen and the art of Customer Relationships
https://www.youtube.com/watch?v=G_2UP4-J7Vc
I loved the Zen and the Art of Customer Relationships presentation from Zen Desk. Awesome Presentation!
Pointers for building long lasting relationships

  1. Don’t overestimate your importance in your customers life
  2. Consider the entire customer experience
  3. Recognize the right relationships and adapt
  4. Be something actual humans can relate to
  5. Be Transparent
  6. Empower your best people to do what’s best
  7. Put a face to your customers

Framework to Build a Killer Customer Success Scorecard
https://www.youtube.com/watch?v=lhx06h8RZ3Q
Another Fantastic presentation from the trenches. A good overview around how to define Customer Success and what are the metrics to monitor (Customer, Financial, Practice and Inter-team)

Building the Customer Success Management Team
https://www.youtube.com/watch?v=XIx5HhfG56w
Happy Learning!

“Data is long-term, Applications are temporary.”

Think data first. Data is long-term, applications are temporary. I recently happened to read this in one of the blog post. I couldn’t agree more. Data remains one of the most strategic projects for most of the companies.

Every fifth person you talk to, every other start up you come across and job postings has something or other to mention about data, analytics etc. But, when I speak to the guys whoever I come across in my ecosystem, lot of guys think it is only doing cool stuff in R.

Big data is like teenage sex: everyone talks about it, nobody really knows how to do it, everyone thinks everyone else is doing it, so everyone claims they are doing it.

If someone is an application developer for the last 10 years, can he/she suddenly become an expert in statistics and become an expert in Algorithms? Suddenly you start calling yourself a Data Scientist? May be… Nothing is impossible. But if that’s what is your passion you wouldn’t be an application developer for the last 10 years. Right?

Is there anything else one can learn and contribute in the data world? Thought of sharing couple of valuable links which can give you a very good idea on the various aspects and where one can fit in.

#1 Will Balkanization of Data Science led to one Empire or many Republics? Via http://www.kdnuggets.com/2015/11/balkanization-data-science.html
#2 Becoming a Data Scientist via http://nirvacana.com/thoughts/becoming-a-data-scientist/
#3 Difference between Data Engineering and Data Science via http://www.galvanize.com/blog/difference-between-data-engineering-and-data-science/
#4 The world of data science: Who does what in the data world? Via http://cloudtweaks.com/2015/11/booming-world-data-science/matrix-1013612_640

Data is one of the hottest stack right now and it is growing at a crazy speed. It would be extremely difficult for any single individual to cope up with this change unless one’s basics are right.

Once you have the basics right, it is about Meta learning and evolving from there.

Working with various large scale data related projects for the last 15 months, following is my high level list of items one need to know to have a reasonable understanding of data (Big/Small). This list is no specific order. 😦

General A Basic overview of what is Descriptive, Diagnostic, Prescriptive, Predictive and Cognitive Analytics? Understanding of the concepts and difference
Data Warehouses
  • OLAP VS OLTP
  • Dimensional Modelling (Star Schemas, Snowflake Schemas)
  • Difference between Multi-Dimensional, Relational, Hybrid
  • In-Memory OLAP
No SQL Databases
  • CAP Theorem
  • If you are from application development, this is where the most important change would be. So far, you would have dealt primarily with Key-Value stores and Document Stores. For Analytics purpose (Write Efficient), it is important to start understanding column databases (E.g.: Cassandra) and Graph (E.g.:Neo4J). This is again a big shift from what you would have done as an application developer. Spend some time on it.
  • In-Memory databases in general.
  • Apart from Cassandra and Neo4J, get an understanding of what MemSQL offers. Yes, it is MemSQL and not MySQL J seems very impressive.
Outside EDWs
  • MPPs/PDWs – Difference between traditional EDWs and MPPs?
  • DWH on cloud AWS Redshift, Azure SQL Data Warehouse
Data Mining
  • What does it mean?
  • Data Mining Algorithms
Hadoop
  • Hadoop and Various Hadoop Components
  • When to use Hadoop?
  • Parallelization and Map Reduce Fundamentals
Outside Hadoop
  • Difference between Hadoop, Spark and Storm (I personally prefer SPARK. RDDs give me the same comfort what I had with ADO.NET)
  • When to use Hadoop/Spark/Storm over MPP?
ETL
  • Data Munging/Wrangling
  • Scrubbing
  • Transforming
  • Reading and Loading Data
  • Exception Handling
  • Jobs/Tasks
Real time Analytics Working with Stream: Real time Analytics is something everyone talks about. But without understanding what it means by Stream processing you will never be able to figure out this.
From an application background

  • Reactive Architecture (Responsive, Resilient, Elastic and Message driven)
  • Understand the difference between an Event and a Transaction.
  • Event Processing(CQRS, Actor Model[Akka], Complex Event Processing)

If you don’t understand the above, then it would be difficult to move forward. Spend time on these before moving forward to other items
Messaging/Data bus

  • Kafka

Processing Streams

  • Spark/Storm

Lambda Architecture

Machine Learning Machine Learning

  • Difference between Data Mining and Machine Learning
  • ML Algorithms

Couple of very good posts to read in this
Machine Learning for Programmers: Leap from developer to machine learning practitioner via http://machinelearningmastery.com/machine-learning-for-programmers/
What Every Manager Should Know About Machine Learning via https://hbr.org/2015/07/what-every-manager-should-know-about-machine-learning
Most of what we are doing can be achieved at some level using Excel Analytics Data Pack. In fact, I would say Excel is the most powerful tool out there.

Recommendation Engines
  • Collaborative Filtering
  • Content-based Filtering
  • Hybrid

Once you are clear with the concepts start implementing using Apache Mahout

Communication Protocols
  • JSON, AVRO, Protocol Buffer, and Thrift: If you are from application development – you would have used JSON extensively. It is time to understand the other ones as well. I keep arguing this with my friend Sendhil (IMO, AVRO seems to be the way to go – where things are evolving and need for self-documentation – Cowboys Friendly).
Time Series
  • Modelling
  • Databases (OpenTSDB)
  • Forecasting
  • Trend Analysis
Modern day HOLAP Engines
  • Apache Kylin (My favourite at this point)
Data Visualization Self-Service is the Mantra here. Read this article: Data Scientists Should be Good Storytellers

Most of the people in an organization cannot understand the outcome of analytics, however they do need the proof of analysis and data. Data storytellers incorporate data and analytics in a compelling way as their stories involve real people and organizations” via https://dzone.com/articles/data-scientists-should-be-good-storytellers

  • How to represent data (Graphs/Charts)?
  • Excel Power Pivot/ Power BI (Polybase)
  • Lumira
  • D3.js
Deep Learning Though it may or may not be important at this point, try to understand what is deep learning. Read this : Deep Learning in a Nutshell: Core Concepts via http://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/
Data Lake One of my favorite topic and something I learnt after burning my hands is with data lake

  • Understand what Data Lakes mean? Why do you need one? How to build a data lake on your own?
  • Extract Load and Transform (ELT)
  • ELT vs ETL

Read this: https://azure.microsoft.com/en-in/solutions/data-lake/

Language Though there is a bunch of things to do with Python, R, Java etc. My choice is Scala (I love the way the language allows you to express. Wish someone can afford me as a developer again J)

If you have a good grasp on above, then it is time for you to figure our when to use what (Creating Solutions).

 “If all you have is a hammer, everything looks like a nail”

Read this:  The Ethics of Wielding an Analytical Hammer via http://sloanreview.mit.edu/article/the-ethics-of-wielding-an-analytical-hammer/

Data is having an impact on business models and profitability. It’s hard to find a non-trivial application that doesn’t use data in a significant manner ~ Ben Lorica, O’Reilly Media

Ok, this looks like a large list. Where do I start?

  1. Focus on the basics. Get a good overview of the ecosystem
  2. Decide your area of specialization.
  3. Focus on your specialization and build skills.
  4. Iterate and change course as required.
  • If you are more than 10 years of experience, understand the business situation and figure out when to use what. May be pick 1 or 2 items and start implementing in your environment.
  • If you are less than 10 years of experience, pick up a scenario and try to implement this and see if it makes any business sense.

What I have not covered in the list? I haven’t gone into the details of

  1. Hadoop Ecosystem and components (Pig/Hive etc.)
  2. Algorithms
    1. Nearest Neighbour
    2. K-Means Clustering
    3. Linear Regression
    4. Decision Trees etc.
  3. R in detail
  4. Infrastructure
    1. Env Setup
    2. Zookeeper, Yarn, Mesos
    3. Replication
  5. Vertical Industry Solutions
  6. Operational Systems (like Splunk)
  7. Data Governance

I keep hearing/seeing people who have never seen more than 1 GB of data saying that they do Big Data Analytics. Don’t learn or do something for the sake of doing it.

There is no short cut to a place worth going.

My favorite books on this topic.

If you want to know more about what I am learning, you can follow me in Twitter

Happy Learning!

Management 101 : Bad job with a Good Boss is better than a Good Job with a Bad Boss!

fPuLkQNXRUKI6HQ2cMPf_IMG_4761

People management is probably the most difficult job in my opinion.  What I meant is for someone who is passionate about people management. What happens to someone who are not passionate about people management and when they are asked to suddenly manage a set of people who are experienced (May be 10+, 15+ years) and /or are a bunch of Alpha’s?

If you are tasked to manage a bunch of senior folks for the first time, following are a set of people management 101 that you could help you establish yourself.

  • Start with Communicating your Vision for the newly formed team/or the team you have taken over.
  • Meet with them on a regular basis and explain what are the steps the team would take to reach your vision.
  • Explain your team members why they are important to you.
  • Explain the team that how what they are doing is helping them, you, business unit and the company.
  • Setup a weekly cadence and repeat. People have short term memory. Bring them together (face to face) on a regular basis.
  • Have regular 1:1s and talk to them on a regular basis. Set Expectations, give feedback and take feedback. If you don’t know how to set expectations, then make it explicit. If you BS that they are senior members and they will self-manage and they don’t need direction etc.…

“Many people are unmotivated, not because they have a great reason to be, but rather because they have not been given a great reason to be motivated & engaged”Delegation

  • Be Honest and ask your team for advice/suggestions. When you get suggestions/advice, stop your normal BS and listen. You are asking for advice/suggestion, either because it’s not your specialization or may be the other person is better than you.

“People are either motivated or they are not. Unless you give motivated people something to believe in, something bigger than their job to work toward, they will motivate themselves to find a new job and you’ll be stuck with whoever’s left” ~ Simon Sinek

  • If you don’t know how their career will shape up, ask them on what they want to achieve, take help from other folks in the company who can help in defining their career roadmap. This is a very important step as most of the 15+ years guys would have hit the glass-ceiling at this point. Helping them with defining the career roadmap, you will earn their trust and respect .

“The problem when someone feels burned out, bored, unchallenged, or stifled by their work is not the job itself but rather the environment and playground rules given to them to do the job at hand” ~ Tony Hsieh

  • When you want someone to work on something, don’t just forward emails with FYI. Call your team members and give them the context. Explain them why you are expecting them to work on it. Emails may not communicate everything. At the end you don’t want your team members to call you as “Post Master“.
  • Show your confidence. When you see email exchanges, don’t keep silence. There are times where you need be assertive, authoritative etc. You might think you are helping your team by being silent, wherein they might think differently.
  • Lead from the front. If only your team members are expected to work and if you work only on managing your manger’s perception, I don’t think you will be successful.
  • Show that you really care. If you say to your team members that they are really very important, then they should also feel it that way. Stop providing only Lip service.

I am sure if you show people that you really care , people will listen and work for you.

At an Organization Level
Whenever there is a change at the leadership level, please handhold your leaders/managers. There are certain cultural aspects and reasons why certain things happen in a certain way. Understand how the new person is managing their team members. Some people are very good in managing perception. You don’t want your team to vanish in a flash.

Software development is based on People and if your best guys don’t perform, there is something more than what you see. Maybe, it is time for the senior guys to speak to your best people and understand. Ultimately, if people don’t perform, company will not be performing either.

Happy Learning!

Image Credit
Harvey Enrile | Unsplash.com
Ambro | FreeDigitalPhotos.net

Digital Businesses and APIs

I first heard the term API during 1996-97, when I was programming in VB (Win32 APIs). Hence this is not a new term for sure. But you can hear this term quite frequently these days. What is happening? What has changed? Let us take couple of traditional businesses and see how they have operated.

Before 1990 During 1990-2010 Now
A bank used to transact only between certain business hours till some time back. Internet Banking Came into Picture. One needed a Desktop to operate. Center and Web as Channels. Internet and Mobile Banking All one need is some form of mobile device to operate. Operations are 24/7 and the channels are multiple.
The business model for an University to run courses on-premise between certain business hours. Universities started providing online courses. Online, Offline Courses available. Courses are provided via Web , Mobile and Tablet channels Newer models like MooC coming into picture
A Book store selling books in their stores/chain of stores between certain business hours Internet Shopping via Browsers Store still exist. Most of the shopping happens via Tablets, Mobile and Web. Price Comparison Sites/Applications. Sell via Blogs and other websites (Widgets). Retargeting

What is the underlying trend? Internet Explosion and growth of Smart Phones/Devices has forced companies to rethink the way they have done business. The disruption has made companies to rethink their business models. Newer Digital Business Models are evolving which is enabling companies to reach to newer markets, global customers and gain competitive advantage. Few examples You can pay utility bills via the popular chat application you are using http://www.innovativechina.com/2013/07/china-merchants-bank-launches-its-own-wechat-bank/ http://www.opptrends.com/2014/04/after-alibaba-tencent-now-baidu-inc-bidu-comes-with-mobile-wallet/ Internet companies are providing interest for your deposits. http://qz.com/160589/alibaba-yu-e-bao-money-market-account-serious-threat-to-chinese-banks/ It’s a great thing for a consumer and definitely a great opportunity for companies. To address this increasing number of channels and look at newer business opportunities and models, companies needed a way to expose and consume data. APIs have become the common way to expose, consume and communicate to the various channels and fuel innovation.

An API — Application Programming Interface — at its most basic level, allows your product or service to talk to other products or services. Via What is an API?

To see an API in action, check this https://developer.pearson.com/apis/topten-travel-guides/#!/travel/listCategories_get_0Portal shows all the APIs that are available. Good one. This is one of my favorite example. Is this happening in just one industry? No, the changes are across the industries (Banking, Retail, Healthcare, Energy, Transportation, Automotive) to name a few. Check this link to see the fastest growing API Categories http://www.slideshare.net/programmableweb/fastest-growing-web-api-categories-last-6-months/ Different types of APIs

  1. Open APIs (Public, Web APIs – Open to All)
  2. Partner APIs  (Protected, Open to Select Few)
  3. Enterprise APIs (Private, Your traditional SOA Based mostly, Open to Employees only)

In a nutshell, APIs are a must-have in any technology strategy today. APIs power the Digital Business and acts as the Glue in SMAC stack. References: http://apievangelist.com/index.html http://www.cutter.com/content-and-analysis/resource-centers/agile-project-management/sample-our-research/apmu1306.html Happy Learning!!!

Technology Ecosystem for the Modern Day Business Application Developer

Technology is changing at a rapid pace. Everyday you see something new to be learnt, which did not exist few months back. If you are like me, who has come from an application development background, what does this change means to you?

For sure, this is not for gyan. Tried depicting this in a form, which i could use as a reference.  I purposefully, hace not included Desktop applications in this. If you are working in some of them, you may have include it for yourself. Obviously, this may change when we revisit this in couple of months.

Similarly, things like Programming Languages (Java, C#, Ruby), OOPS Concepts, TDD, SOLID Principles are foundations.

Technology Ecosystem

Is this Perfect? Not Necessarily. This is my version and you may have a different way of visualizing this. If you create one, please do share it with me 🙂

Did I cover all aspects? Not really. Take Analytics as an example. If you take Descriptive Analytics, you start looking at traditional Business Intelligence, Data Warehousing, Data Visualization etc. Each one is a separate block diagram on its own. Hence, i have stopped it at a very high level for this.

Can i be a master of all this? May not be possible. But if we have to call ourselves as techies, then we at least need to know what these are, where we can use them and may be pick and choose couple of items that could be of our interest and master it.

Happy Learning!!!

Business Model Canvas

The first time, i came to know about Business Model Canvas was couple of years ago. I always thought i understood the fundas. But recently tried this and realized it was not the case.

I was recently working on creating a strategy map and landed in this excellent post by Steve Blank “The Future of Corporate Innovation and Entrepreneurship“.  This post is a must read, if you want to understand why we are doing this.

While org charts provided the “who” of a business, companies were missing a way to visualize the “how” of a business. Strategy Maps are one of the ways companies visualized the “How” of a business. Strategy Maps are a tool to translate the strategy into specific actions and objectives to measure the progress of how the strategy gets implemented.

By the 21st century, organizations still lacked a tool to create and formulate new strategies. Enter the Business Model Canvas. The canvas describes the rationale of how an organization creates, delivers, and captures value (economic, social, or other forms of value). The canvas ties together the “who and how” and provides the “why”. External to the canvas are the environmental influences (industry forces, market forces, key trends and macro-economic forces.) With the business model canvas in hand, we can now approach rethinking corporate innovation strategy and structure.

Existing companies and their operating divisions implement known business models. Using the business model canvas, they can draw how their organization is creating, delivering, and capturing value. A business model for an existing company or division is not filled with hypotheses, it is filled with a series of facts. Operating divisions execute the known business model. Plans and processes are in place, and rules, job specifications, revenue, profit and margin goals have been set. Forecasts can be based on a series of known conditions.

Inside existing companies and divisions, the business model canvas is used as a tool to implement and continuously improve existing business models incrementally. This might include new products, markets or acquisitions.

Couple of good references to understand this in detail
Understanding Business model fundamentals
Business Model Canvas 101
Understanding Facebook Business Model
Understanding Google Business Model

Happy Learning!!!