Akhil's Blog Thoughts, Ideas, Essays & Views

Individual Development Plan

This is a post for thinking about individual development plan

Background

Individual development has many facets to it, sometimes we may get right opportunities & environment to grow & learn while many times we have to seek or create those opportunities based on individual aspirations & situations. The aim in the post is to put together a template to help anyone who is starting with outlining a development plan for oneself or someone else, these are just ideas to help think about career in more structured way.

There are many different point of views when it comes to approaching self development, whether it should be goal oriented or journey focused, many times the goals create too much pressure & sets an artificial boundary while journey focus gives relaxed growth & also provides flexibility to explore. But this problem with goals is more due to the way goals are defined, if the goals focuses too much on how instead of what & why. Basically instead of steps to reach the goal, we should be defining it crisply first & then overtime think of ways to achieve it.

One of the important learning has been that everyone has some aspirational & concrete goals, in fact most people don’t spend too much thinking time on aspirations & even when some people have clear aspirations, generally they will not share their aspirations unless there is high trust environment. Just for example if there is an aspiration in person to

Planning in general means that you are putting together some kind of projection in future to guide the journey & bring focus on the goals from time to time, it can be done in either forward looking (more suitable for short term oriented plans) or backward looking (suitable for long term oriented plans). The forward planning is basically building on things incrementally based on current situation & competency while backward planning is basically to backtrack the journey to plan for the end goal which is far enough in future to enable anyone to change the situation & competency as required.

If the forward & backward planning converges, that means the work being done today is aligned with individual’s long term aspirations, which means chances are that individual will get more job satisfaction. But if they are not aligned, there will always be a feeling that working on something else may enable the person to achieve those aspirations.

Generally there are few of the themes where “WHY” a person is doing something is clear, people might have different targets based on personal preferences but theme wise it is similar. First theme is the financial theme - basically everyone wants to ensure stable future for oneself & family, next are the becoming & doing themes which are closely related but can result in very different choices in the career. The last theme is around learning which acts as lever or leverage to enable a person to move from current role or work or domain etc to something which the person aspires to do.

Aspirational Goals - Act as a compass

Aspirational goals are basically larger than life goal which many times will be something abstract or open ended, it doesn’t need to be practical or achievable based on current competence & situation, these are meant for much longer duration & scope of these should reflect that.

Next 10 years

  • Financial Theme - Achieve financial freedom for next 10 years, this is more inline with the FIRE movement, it is an important aspect but generally not sufficient to define the journey individual needs to take.
  • Becoming Theme - To become someone, mostly this translates to taking some role may be as engineering leader, product leader or business leader - for example - Technical Architect, Engineer Manager etc, more can be read on engineering ladders
  • Doing Theme - To do something like build world class product, open source contribution, or to work on new (0-1) product, growth (1-10 or 10 -100) product, mature product (scaled)
  • Learning Theme - To learn some skill - tech (design/architecture), domain, non-tech (product, finance), management (project, people)

Next 5 years

  • Financial Theme - Achieve financial freedom for next 5 years, this is more like stepping stone towards the 10 year goal
  • Becoming Theme - To become someone - Principal Engineer
  • Doing Theme - To do something - Take 1 product to customers - internal or external customer, paying or not paying customer
  • Learning Theme - To learn some skill - tech (distributed systems), design (micro-services), product (success metrics), management (agile methodologies, effective feedback)

Concrete Goals - Act as a roadmap

Concrete goals are basically more detailed & are like a roadmap of what a person aims to do in next 1 year, this again can be growth & learning oriented when looking at longer 1 year timeline while competency & outcome oriented in the shorter 6 month timeline. The goals here should have opportunities mapped to ensure that the plan to achieve those goals is in place, also these need not be abstract or open ended instead should be immediately actionable.

Next 1 year

The next 1 year timeline is focuses on linear & possibly non-linear growth, the linear is incrementally doing better & progress to next role while non-linear is either creating multiplier effect by solving cross cutting concerns (breadh) or solving complex concerns (depth).

  • Non-Linear Growth (large impact taking the person leaps ahead in career) - mostly by addressing some cross cutting concerns which will have multiplier effect in the org or solving complex problem having long term impact
  • Linear Growth (current role to next role) - understanding the role delta in terms on increased expectations, mostly focusing on incrementally taking more responsibilities

Next 6 months

This should be based on expectations for the next role & also previous review, many of these things are in geneeral already in progress.

  • Improving the system design by keeping in mind the bigger picture of the system.
  • Increasing the tech breadth which will enable him to make better tech choices while working on the designs. - I-Shaped learning paradigm (breadth on fundamentals & first principles along with depth on one tech stack / area and finally breadth on many tech stacks/area) - Example - Distributed System Design & Algorithms

General Aspects

There are few important general aspects which are mostly common but should find some place in everyone’s individual development plan.

Time & Energy Management

  • Everyone has limited amount of time & energy, it is important to manage these well to accomplish more, the time management will be very different based on different roles, have been using a generic framework - role responsibilities framework which uses a simple approach of understanding the responsibilities of a role, give some percentage to each responsibility based on importance. Example - For engineer role, the responsibilities (execution, solutioning, operational, mentorship, idp) & a sample time allocation for ideal situation may look like this - execution-35%, solutioning-35%, operational-15%, mentorship-10%, idp-5%. In the equilibrium state, time allocation should be like that which means that the focus is to ensure time management comes back to this equilibrium state every few weeks or months depending on the skewness created due to situational factors.
  • Plan for the week and keep the day open - generally have seen that very granular planning at a day level creates more pressure as either adherence will not happen due to some unplanned activity or unnecessarily mind space will be taken to ensure adherence, it is better to plan for the week, keep track and review things by end of the week.
  • For any kind of deep work, continuity of thought & focus is critical which is basically the maker schedule while when the focus is more on delegation & breadth of knowledge, context switching is required & many times good, this is basically the manager schedule. Good article on this - Maker vs Manager Schedule
  • Energy management is equally important, sometimes only optimising on time will drain the person of energy required to perform and may result in slowness of mind, burnout or even feeling exhausted quickly. The best way to keep up with the energy needed is to take breaks (within day, month, quarter & year), taking enough rest.
  • While the time is more continuous in flow, it automatically brings rhythm & consistency but energy is generally non-continuous with many bursts (up and down) which is where chances of mismanagement is much higher and mostly it’s not even talked about unless someone starts feeling very low.

Learning & Thinking Structure

  • Breadth Vs Depth - There is lot of debate going on with regards to breadth focus vs depth focus. Even the popular saying “Jack of all trades is a master of none” is misrepresented today as an insult to people who are focusing on breadth while ignoring the depth but the original full quote “Jack of all trades is a master of none, but often times better than master of one” was in fact a complement. To avoid this dilemma, its better to use a combination of both breadth & depth in something like I-shaped learning paradigm - in this paradigm the focus is on breadth (for the high level) - depth (in one area) - breadth (for the low level). The
  • Strategy Vs Tactics - This is again highly debated topic and generally strategy is associated with long term deep thinking while tactics are short term shallow responses to situations or problems at hand. The learning needs to be on both levels, as if we can’t solve the problem at hand with variety of tactical responses, chances are the strategy may not even see the light of the day. Learning strategy is required for a lot of areas where thinking over doing is more important like design/architecture
  • Learning Agility - The Learning Agility for the VUCA world - The Organisational X-factor: Learning Agility - Korn Ferry Focus is a good framework to improve the learning agility with following five factors
    • Mental agility — embracing complexity, examining problems in unique ways, making fresh connections, and staying inquisitive.
    • People agility — being open-minded toward others, enjoying interaction with diverse groups, bringing out the best in others.
    • Change agility — willingness to lead transformation efforts, continuously exploring new options.
    • Results agility — delivering results in tough situations, responding to challenge, inspiring others to achieve more than thought possible.
    • Self-awareness — being reflective, understanding strengths and weaknesses, seeking feedback and personal insight.
  • Mental Models - One of the most important learning structure which can help in many situations is to study, form & evolve various mental models which basically enables a person in different kinds of thinking & decision making, many times the data driven approach to decision making is good enough of situations but sometimes data might not be in right form (as data needs to be refined, data -> information -> knowledge -> insights or wisdom), various mental models can help short circuit & make the decision making faster but its important to know when & why that model works to apply it appropriately.
  • Decision Making - One simple framework to improve decision making is to move from How (Implementation) to What (Definition & Scope = OKR) to Why (Reason & Motivation). This movement basically increases higher order thinking & bring lot of flexibility in decision making, basically when focus is on what, the how becomes flexible & similarly when focus is on why, the what becomes flexible. Another important way to improve decision making is by doing incremental decision making using Hypothesis (Non-Deterministic) instead of Deterministic approach. When we use hypothesis, the possibility of being wrong is stated explicitly along with other assumptions while when we do deterministic decision making, being wrong is hidden and there can be lot of implicit assumptions. Hypothesis based approach also enable person to do evolve decision incrementally by qualifying & refining the hypothesis as more & more knowledge is discovered & understanding deepens.

References

Core Accounting

This is a post to get someone started with core accounting concepts.

Introduction

The blog post on core accounting will cover the basics for accounting with different concepts like chart of accounts, double bookkeeping, accounting equations etc. Providing a broader view on the financial, managerial and cost accounting, how these tie together.

It will also cover the money flows between different entities and how it is accounted for using the accounting entity & time period. Different accounting systems of cash & accrual basis, conventions around debit/credit & increase/decrease, account types of nominal & real accounts.

The core accounting concepts of journal, ledger and double bookkeeping, different financial reports, financial decision making, cost analysis & finally return on investment.

Background

Accounting is primarily aimed at better financial health & planning, generally it can be understood as composed of the following activities which can be broadly classified into financial, managerial & cost accounting. The target is to use accounting information to do the budgeting & forecasting & finally do capital allocation based on the return on investment (ROI).

Financial Accounting Only MA Cost Accounting
Only FA Managerial Accounting Only CA
Transaction Bookkeeping Financial Reporting Analysis & Interpretation Decision Making Costing Control & Analysis Costing Bookkeeping
Transactions / Events / Occurrences

Financial Reporting (Equity Changes, Notes To Account)
Financial Statement Analysis
Budgeting


Costing Techniques (marginal, absorption)
Identifying elements of costs
Recording (Journal Entry) Primary Books

Financial Statement (Balance Sheet, P/L, Cashflow)
Financial Ratio Analysis & Interpretation

Capital Allocation
↑↓
ROI (Return On Investment)

Cost Control (Standard Costing & Variance Analysis)
Classifying elements of costs
Classifying (Ledger Entries) Secondary Books

Summarizing (General Ledger, Trial Balance)
Relative & Comparative Analysis (Time & Industry)


Forecasting


Cost Analysis
(CVP & BE)
Cost determination (costing)

Concepts

Various concepts that are important to understand before we get into the core accounting in general & for some of the products.

Accounting Cycle

The accounting cycle is the first important concept to understand which basically represents the scope of accounting in terms of activities bounded by time & entity. The cycle starts with identifying the transactions (during time duration for a set of entities), recording journal entries, classifying into ledger entries, summarizing into general ledger & trial balance, auditing & balancing the accounts, generating the financial statements and closing the books.

Account Types & Golden Rules

To understand the Golden Rules of Accounting we must first understand the types of accounts. The account classification applies to all the types of general ledgers. In other words, every account will fall in one of the broad classifications given below. There are three types of accounts:

  • A Real Account is a general ledger account relating to Assets and Liabilities other than people accounts. These are accounts that don’t close at year-end and are carried forward. An example of a Real Account is a Bank Account.
  • A Personal Account is a General ledger account connected to all persons like individuals, firms and associations. An example of a Personal Account is a Creditor Account.
  • A Nominal Account is a General ledger account pertaining to all income, expenses, losses and gains. An example of a Nominal Account is an Interest Account.

Accounting Rules

Account Type Rule
For Personal Accounts Debit the receiver, credit the giver
For Real Account Debit what comes in, credit what goes out
For Nominal Account Debit all the expenses, credit all the incomes

Chart Of Accounts

Chart of accounts is the general organizing technique used in accounting for structuring the transactions into various heads/buckets/bins which then roll up to general ledger & trial balance.

There are multiple different ways of structuring the chart of accounts and it is a very similar exercise like the data modeling exercise done whenever building any data application. The better schema design done for the database solves a lot of problems later, it is the same logic with a chart of accounts, we can consider this as data modeling for accounting data.

Account Identification

  • Generally speaking each account should be identified by the UUID but this alone is not useful in easily defining the ledger entries (which translates to governor rules & ledger config) without too much redundancy as well, we need another way of identifying accounts based on the identifying dimensions.
  • Account identification using identifying dimensions will require combining the identifying dimensions of the parent & identifying dimensions of the sub account.

Naming & numbering of the accounts

  • Account numbers are like the bin numbers in a warehouse. Five-digit base account numbers work well (four for a very simple setup). Best practice is to use the 10000s for asset accounts, 20000s for liabilities, 29000s for equity, 30000s for sales, 40000s-50000s for direct/indirect costs, 60000-70000s for operating/overhead expenses, and 80000-90000s for non-operations accounts such as interest and taxes.
  • Account naming can also be used to reflect both the hierarchy of accounts & identifying dimensions like [Account Id][Account Category][Account Type][Fund Account Type] - [Sub Account Id] which is basically a combination of parent identifying dimensions + sub account identifying dimensions.
  • Account Naming & Numbering are both for making accounts more readable for users & are not to be used by the system for identification purposes.

Account Hierarchy vs Account Dimensions

  • Hierarchy is in general very strict & restrictive (inheritance is always tightly coupled as it causes tight coupling between parent/child and that is the reason composition is preferred in object oriented data modeling), but it makes sense to use hierarchy when inheriting the parent attributes in the child is required (parent account acting as template for the child accounts)
  • Avoid more than 2 or 3 levels of child accounts. For example, 33000 Sales-Hardware could be further broken out to 33100 Sales-Hardware-Computers and 33200 Sales-Hardware-Printers. Hardware-Printers could be further broken out in 33210 Hardware-Printers-HP and 33220 Hardware-Printers-Canon. At that point, further detail may be more harmful than help and lead to inaccurate accounting.

Double Bookkeeping

Single Bookkeeping Example (Mostly useful for tracking cash in single account)

DateDescriptionTransaction ValueAccount Balance
Income (Credit)Expense (Debit)
01/01/2022Starting Monthly Balance₹100000
02/01/2022Rent₹20000₹80000
03/01/2022Invoice Paid (Excel Tech)₹50000₹130000
04/01/2022Supplies (Furniture)₹15000₹115000
05/01/2022Ending Monthly Balance₹115000

Double Bookkeeping - Same Example

  • Assets, Expense & Dividends (Debit means increase & credit means decrease)
  • Liability, Revenue & Equity (Debit means decrease & credit means increase)
DateDescriptionDouble BookkeepingCash Account Balance
DebitsCredits
01/01/2022Starting Monthly Balance₹100000
02/01/2022Rent[Expense][Rent] = ₹20000[Asset][Cash] = ₹20000₹80000
03/01/2022Invoice Paid (Excel Tech)[Asset][Cash] = ₹50000[Revenue][Product] = ₹50000₹130000
04/01/2022Supplies (Furniture)[Asset][Fixed] = ₹15000[Asset][Cash] = ₹15000₹115000
05/01/2022Ending Monthly Balance₹115000

Double bookkeeping is better for reducing financial errors, managing cash entries correctly (in accrual basis accounting), every transaction needs to have equal debits & credits, this can still result in deficit or surplus on aggregate level (for this the trial balance comes handy).

The debit & credit is the somewhat confusing nomenclature in accounting (due to different behavior for different account types), lot of new accounting standards are already moving to increase/decrease which remains the same for all account types.

Accounting Equation

The accounting equation is a critical concept to understand and use the double bookkeeping, whenever the entries are made on opposite sides of the equation, will be of the same type (credit or debit) while if entries are on the same side of the equation, it will be opposite to each other.

  • Balance Sheet Accounting Equation
    • Assets = Liabilities + Shareholder’s Equity
  • Expanded Accounting Equation
    • Assets = Liabilities + Share Capital + Retained Earnings
  • Fully Expanded Accounting Equation
    • Assets = Liabilities + Contributed Capital + Earlier Retained Earnings + Revenue - Expenses - Dividend
    • Assets + Expenses + Dividend = Liabilities + Contributed Capital + Earlier Retained Earnings + Revenue
DateDescriptionAccounting EquationCash Account Balance
Assets = Liabilities + Revenue -Expenses
01/01/2022Starting Monthly Balance₹100000
02/01/2022Rent[Asset][Cash] = -₹20000 (cr)[Expense][Rent] = +₹20000 (dr)₹80000
03/01/2022Invoice Paid (Excel Tech)[Cash] = +₹50000 (dr)[Product] = +₹50000 (cr)₹130000
04/01/2022Supplies (Furniture)[Fixed] = +₹15000 (dr)
[Cash] = -₹15000 (cr)
₹115000
05/01/2022Ending Monthly Balance₹115000

Accounting System

The accounting system is quite different based on the recognition of revenue & expense as it has implications for a lot of things like balance sheet, income statement & cash-flow statement. The major difference comes with respect to taxes & cash-flow, some more detailing below.

Cash Basis Accounting

In the cash basis accounting system, every transaction is recognised only at the time of cash movement (when money changes hands). Many small businesses opt to use the cash basis of accounting because it is simple to maintain. It’s easy to determine when a transaction has occurred (the money is in the bank or out of the bank) and there is no need to track receivables or payables.

The cash method is also beneficial in terms of tracking how much cash the business actually has at any given time; looking at bank balance gives understanding of the exact resources at disposal.

Accrual Basis Accounting

Accrual basis accounting is a method of accounting where revenues and expenses are recorded when they are earned, regardless of when the money is actually received or paid.

The accrual basis gives a more realistic idea of income and expenses during a period of time, therefore providing a long-term picture of the business that cash accounting can’t provide.

But accrual accounting doesn’t provide any awareness of cash flow; a business can appear to be very profitable while in reality it has empty bank accounts. Accrual basis accounting without careful monitoring of cash flow can have devastating consequences on business operations. Comparison Between Cash & Accrual

  Cash Basis Accounting Accrual Basis Accounting
Revenues Recognizes revenue when cash has been received Recognizes revenue when it’s earned (eg. when the project is complete)
Expenses Recognizes expenses when cash has been spent Recognizes expenses when they’re billed (eg. when you’ve received an invoice)
Taxes Taxes are not paid on money that hasn’t been received yet Taxes paid on money that you’re still owed
Usages Mostly used by small businesses and sole proprietors with no inventory Required for businesses with revenue over $25 million

Examples of Cash & Accrual Basis

Transaction Cash Basis Accounting Accrual Basis Accounting
Revenue From Project Revenue accounted when billed amount for the project comes to the bank account Revenue accounted when invoice for the billed amount is raised
Expenses For Project Expenses accounted when booked amount for project expense deducted from bank Expenses accounted when amount for project expense booked
Tax Implication Tax implication is at the time of revenue collected & expense deducted Tax implication is at the time of invoice raised & expense booked

The accrual basis system is much more relevant today due to the dependency and popularity of the credit over cash. Almost everywhere you see the credit as a product (Debentures, Bonds, Overdraft for businesses while BuyNowPayLater, Credit Card, Credit Line like products for consumers) is becoming more popular than the cash.

There are a lot of other benefits of accrual basis accounting as it is much closer to real life situations where companies give customers credit (postpaid after order is delivered) and pay the vendors (after invoice is raised). The real complication comes with taxes particularly the GST which is based on recognition of revenue & expense (instead of realization).

Accounting Across

Many times accounting for one time period or one entity is not good enough, we need to incrementally do accounting for across time periods & across entities.

Accounting Across Time

Accounting can be done at different intervals of time - Day, Week, Month, Quarter, Year and the reason for doing accounting across time is to enable us to see or monitor financial health at different time granularities.

Accounting Across Entities

Accounting can be done across different entities like departments or business units, rolling up with entities like departments to organization. We can also do scoped accounting for an entity like accounting for another business upto the extent data is available and it makes sense.

With both time & entities, the accounting can be done at a granular level & also roll-up to provide both a granular & wider view of financial health for entities x times dimensions.

Money Movement

Various money movements in general from firm to stockholders, between firm & financial system but before we go into the details of the money movement, it is important to understand the interrelation between various statements.

Relationship Between Financial Statements

How different kinds of statements are linked to each other and how it helps in doing accounting for next week, month or year.

References

Chart of Accounts

Accounting

Double Entry Bookkeeping

Accounting System

Foreign Currency

Accounting Equation

Books

Udemy Courses

Introducing Blog

Beginning

During college days, used to put some ideas on writing and then in my first job at Qwest, maintained a private blog for sometime to log ideas & feelings but never maintained it. This is an attempt to consolidate some of blog posts from past which are scattered at different places, also there are lot of incomplete ones which I am hoping to complete too.

Have been writing bits and pieces mostly on tech & product from the startup days while recently have been able to build some knowledge on finance particularly accounting and sanskrit which will also be interesting topics to write about.

Studying computer science from IIT Guwahati, my journey started with tech, lot of interesting work I remember, then moved to product, advertising & marketing during startups, finally settled in management & leadership which also seems the most challenging with much deeper learning.

Current

The blog is based on the github pages using jekyll theme lanyon, great thing about this stack was that it took just few hours to set it up from buying domain to getting it ready with few posts pulled from past. Using git for blog will mean that the posts can evolve with new knowledge and become like wiki where it will be easy to look at how the thought has evolved over time.

Currently working in one of the best fintech company, learned a lot on tech, finance, product & management. The finance as a subject is something I wanted to get into but reading finance books is generally not very interesting, even when I was doing some investment related study it was always difficult to maintain focus beyond a month, and being in fintech company helps in maintaining that focus.

Want to also put some of the ideas I wish to work on in future to keep building the backlog of interesting problems to solve which can push me into doing the next start-up whenever that happens.

End

It is very tempting to write something before even knowing enough but that generally is the receipe for misinformation. My attempt would be to put things on which I am pretty knowledgable & confident but in case you find any incorrectness in any of the post, please do provide feedback on email, will correct it soon.

If any of the post seems interesting, plesae do contact for further discussion on those or related ideas.

Thanks!

Golang Learning Levels

This is a post for helping developers to go deeper into golang

Background

To build deep expertise on any programming language, one needs to study the language at three levels (increasing in depth) and then only the nuances of the language are understood well to effectively use the language & get good grip on the language.

Coming from Erlang background, it’s very interesting to see some of the features in golang being inspired from Erlang or some evolving towards those in Erlang like

  • Scheduling in golang has moved from cooperative to preemptive scheduling from v1.2
  • Message passing and process distribution - this is still not as flexible as erlang
  • Supervision trees for fault tolerance

During discussions with the team, I thought it would be useful to list down links to learn golang at each level.

Constructs & Language Design

This is the first and basic level where focus is on learning the constructs provided by language starting from syntax to semantics and then looking at the overall language design. Some of the constructs may be for declarative programming (macros, annotations), procedural programming (first order functions, loops, conditions), oop (type, inheritance, polymorphism, generics, reflection), functional programming (closure, higher order functions, pattern matching, list comprehensions), concurrent programming (light weight processes, message passing, process distribution), fault tolerance (supervision, hot reloading). Some useful links to start on Golang constructs & language design learning.

Evolution & Philosophy

Language evolution and philosophy are important to know and understand, this builds the context in which programming language has been developed which then helps to understand in depth the correct way of using language as well as its limitations and strengths. Golang being opensource helps in looking at the evolution of the language & learn from various design decisions taken.

Compiler & VM Internals

The way language and various constructs operates or are implemented in the VM, this gives good view of VM for doing tuning, optimisation and knowing internals like following

  • Go concurrency using goroutines - scheduling, sandboxing, message passing, distribution across nodes, csp (communicating sequential process)
  • Go memory management - garbage collection, stack vs heap memory, manual memory management, immutable vs mutable, shared memory
  • Go io management - various io management features like buffered io, non-blocking io
  • Go grammar and compiler - looking at the grammar (syntax and semantics), compilation and symbolic tree

Few links to start on the golang internals

General

Few links below have very good content across all levels

Product Excellence

This is a post on what it takes to achieve product excellence

Background

Excellence is something which definitely takes a lot of time and effort but it also requires some thought structuring in terms of what things matter towards achieving excellence, why those are important and how to go deeper into those things.

Product & engineering leaders need to drive product excellence and for that there are several things they need to do, following pivots are few of things that can be useful to acheive excellence in a effective way. But depending on the stage of the product and role of the person, different pivots should be given varied importance.

Product Mindset

The product mindset is a very important pivot for achieving product excellence, considering it defines the way a team operates and builds products. Product & engineering leaders definitely need to have a product mindset but should also have a mandate to propagate it within their teams. Few aspects of the product mindset to look are

Product vs Project

Product thinking is very different from project thinking as the focus areas are very different like described below. Product & engineering leaders many times get pushed into project execution due to delivery pressure and it is critical to remain focused on product development by evolving the product using a roadmap towards vision rather than delivering projects.

  • Product development is an ongoing exercise driven by feedback loop from users (some will be customers) while project execution is time bound exercise driven by stakeholders
  • Product is generally driven by vision and roadmap which are loosely scoped while project is driven by charter and plan which are strictly scoped
  • Product focuses more objectives and key results measured through metrics while project focuses more on the delivery (within stipulated time and budget)

Product vs Solution

Product mindset is very different from solution mindset, solution gives the economy of scope by being closer to solving the specific customer’s problem but product gives economy of scale by solving a common problem faced by many customers.

  • Solutions can be built on top of products while products can also be extracted from custom solutions over time.
  • Solutions tends to be specific to few customers and is mostly build for enterprise customers where customisation is required and has more value too
  • Solution approach is not scalable as it takes time to build custom solution for every customer and that is why it’s important to tilt towards product mindset

Product vs Tech

Product solves a problem or provides experience while technology (in most cases) enables development of many products. Products can utilise existing technologies or build new technologies as needed and generally technologies evolve with products built on them.

  • Product mindset means considering technology as a tool to build the product and not the reverse, engineering leaders can give undue emphasis to tech and lose product focus
  • Product needs (which are themselves customer driven) should drive the tech choices to avoid being blindsided with biases towards specific technologies
  • Product can be built with several alternative technologies and choosing right tech is dependent on the combination of functional & non-functional needs of the product

Productizing Process

Productizing process describes every step in the product’s lifecycle from conceptualisation to planning to development to marketing to sales and back. Understanding the productizing process will help in making right product and tech decisions based on the phase of the product lifecycle and also contributing throughout the process.

  • Productizing process includes activities starting from market analysis, product strategy & planning to gtm & sales enablement and this provides a good framework to build product in an iterative way
  • Productizing process also enables product team to better adapt to market conditions & feedback which is very important in fast changing world
  • Productizing process is useful to ensure that we are thinking about all steps in product lifecycle and not just limited to certain areas

Customer Focus

Customer focus is a very critical pivot for leaders to be successful in achieving product excellence, particularly engineering leaders considering they can lose customer focus due to lack of frequent customer interactions. Following are the aspects which are important for this pivot.

Customer Context

Context in which any customer interactions happens is key throughout the customer lifecycle starting from the product discovery to the successful product adoption or churn. This understanding helps in contextual positioning of products which eases product discovery as well helps in better adoption and engagement.

Customer Empathy

Customer empathy maps describe what a customer goes through as he/she is trying to complete a task, in a product or brand agnostic way. In other words, customer empathy maps allow you to take a step back from your product and paint a picture of a typical customer’s experience - their needs, expectations, goal, hurdles and behavior as they do their task.

Customer Value

The value customers get from using products or services can be calculated using the customer value proposition canvas which maps customer value creation in the form of gains achieved and pains relieved when getting jobs done.

Customer Experience

The customer experience is the perception of the customer formed based on emotion, ease, and effectiveness, when using the product.

Product Strategy

Product strategy defines what the product aims to achieve and how that supports the organisation, and it also brings product vision & roadmap to life through OKRs and metrics.

Market & Competition

Market definition and market analysis (trends, sentiments) along with the competitive landscape are the inputs for the product strategy and without understanding these it will be difficult to comprehend the product strategy.

Positioning & Differentiation

Product positioning and differentiation are the starting point of product strategy which will drive the adoption of the product in the market.

Vision & Roadmap

Product vision sets the long term goal while roadmap defines the way towards achieving that goal, both are critical components for successful product development.

OKR & Metrics

Defining OKRs and metrics for the product is very important for the product development and the tracking of the success of outcomes/results.

  • Defining annual and quarterly OKRs drives alignment towards objectives while also help in prioritization at both the team (pod, BU) and org level
  • Defining metrics for the product enables the definition of key results (in terms of metrics) for the objectives, and this makes the whole product development more data driven

Domain Knowledge

Domain knowledge is an important pivot for driving product excellence from experience, all the four components of domain knowledge together help in building deep as well as wider expertise on system, product & business. Broader functional knowledge across org also helps to identify cross team functional issues.

Business Domain

Knowledge, understanding & expertise of different business aspects & relevant metrics

  • Learning & understanding of different business domain concepts and business impact of specific functional systems, demonstrating good judgement while making tech trade-offs for complex systems.
  • Good understanding of business constructs and metrics around that, have knowledge about how a product fits into the business lifecycle. Knowledge of competitive landscape, industry trends and business/revenue models.

Product Domain

Knowledge, understanding & expertise of different product functionality & relevant metrics

  • Good grip on existing & upcoming product functionality & is “go to” person within the team on the domain & related concepts.
  • Good understanding of the functional domain (ex: payments, settlement, refund, banking, lending, data platforms) including the product features, metrics and use cases.

System Domain

Knowledge, understanding & expertise of system, can be either breadth or depth focused

  • Understand the different terminologies, roles of own and dependent systems as well.
  • Expertise on existing systems including design/architecture, the execution & data flows, integration with other systems, various dependencies, trade offs, current gaps & tech debts.

Technical Domain

Knowledge, understanding & expertise of technologies, should be both breadth and depth focused

  • Understand why things are done the way they are, different technical terminologies, upcoming technological advancements.
  • Mapping product requirements to the right tech stack considering both functional and non functional aspects. (Eg. Tradeoffs in distributed systems such as consistency/availability and at-least once/at most once semantics and how it impacts the system).
  • Responsible for all aspects of scale and availability and cognizant of recoverability.

References