Category Archives: Internet

No longer on Quora

A while back, Quora flagged my account as using a pseudonym and not a real name. Apart from flagging it, they suspended my account.

The process to get it reactivated seemed cumbersome, unnecessary and intrusive. I use this moniker in various other places which have not had a problem with it so far. And while social media is useful, the privacy issues have not been satisfactorily addressed so far(in my opinion).

Net result, I decided to delete my Quora account.

At some point, the processes and rules to manage a cloud service must co-exist with the rights of individual users. To flag a long term user as a violator of “Terms of Service” could be interpreted in various ways.

I still get email traffic from the blog asking for my opinion on various topics, and I plan to continue responding to these emails.

Marissa Mayer should read this blog

[All respect to Ms. Mayer, she’s accomplished a lot in the technology industry]

I have blogged earlier about how a PM must tackle challenges to his authority from a strong engineering team. Well, if you read this article from the Business Insider called “The Truth About Marissa Mayer: An Unauthorized Biography” you would realize that these inter-personal conflicts occur in almost every firm, right from a 5 person startup to the largest internet giant.

[ The Business Insider article is also a must-read for the details it offers around the activities of a web PM in a senior role]

The article also mentions how her run-ins with engineering led to her ultimately being sidelined into a different role at Google. In fact, as many can attest, this is a common theme in technology product management. If you come up against a powerful engineering lead, then the person most likely to move out is the one who does not write the code, even if she is closer to the customer.

A couple of references from my blog here. Here’s the first post where I described how engineering and product management can have creative conflicts.

Here’s another post where I specifically mention why obsession is important for a product manager. As per the unofficial biography, in Marissa’s case, her obsession with details caused resentment in engineers and other stakeholders who did not agree with her vision. Another issue was that her obsession was primarily about data analysis and the value of that analysis, without understanding the impact of her decisions on others. And that was a key factor in her getting sidelined. The article also mentions how this obsession had also alienated a lot of people at Yahoo!

Without getting into the merits of this debate, I leave it to you to draw your own conclusions.

By the by, I have posted earlier on why analytics is important for a PM today, but that is not specifically about the UI analytics, as was discussed in the Business Insider article.

Fashionable Feature Sets

In technology product management, it is easy to get tempted by the fashionable trends of the season. Today it is features related to “Big Data“, earlier it was “Web 2.0 Features or SLATES” and the latest trend is to add mobility features and access to your offering.

When such buzzwords become commonplace, the products promoted using this terminology during sales pitches or marketing events also gain credibility in the eyes of the layman. However, the product manager should not be swayed by these fashionable feature sets. It is always the buying customer and his product reviews that are the key to gaining marketshare and increasing revenue.

Fundamentally, nothing has really changed. As a product manager, your vision and roadmap will contain features that are useful to woo customers to try, buy and keep using your products. And these features are either going to give you a competitive edge, retain existing customers, or attract users who are not yet using the products.

If these reasons attracted you to these fashionable features(and of course, the side benefits of tempting developers to build them out and of influencing senior management on thought leadership), then consider this blog post, that talks about the diffusion of innovation, and product adoption. I will leave you to understand the implications, but the key takeaways from this include:

a) Adoption rates of most consumer technologies in this century follow a similar curve

b) There is a real adoption chasm that exists in most product categories, beware that your product does not fall in that chasm

b) Innovative features take time to identify, design and develop

FashionSo how can you cater to the fashion sense of the day, and still follow the established strategic principles? That requires building consensus, and having a market research driven approach to identifying the best features for the various consumer or user segments.

In fact, gaining consensus on the product roadmap is a vital activity, and it takes a lot of time. I will address this in a future post.

A Program Manager Can Be More Powerful Than A Product Manager

The title of this post may seem illogical to some. After all, the Product Manager (PM) is the one that leads product releases and is often responsible for product P&L (profit and loss). And a program manager (pm) simply tracks activities in MS Project. So how can a pm be more important than a PM?

I first heard this from a Director of Engineering at Microsoft, Seattle. He explained that in consumer products, it is very important to get the pulse of the market, and hence everyone listens when the PM talks about features, use cases, revenues, competitors etc. Whereas in enterprise products, there is often a vast pool of resources to manage that work to deliver a single product release on time and within budget. Hence the teams of pm become very important to the product line. And since they have fewer releases per year of enterprise products, the program manager has a more significant role to play there. Of course, the pm in Microsoft has a different role than a traditional industry pm. [ A description of MSFT program manager’s role in India is given here.]

In offshore roles in India, the prominence of the role of a pm and a PM depends on their level of independent responsibility. If either the pm or the PM’s reporting hierarchy is to the product line management (typically in the US) instead of India operations teams, then they have a strong and important role. Otherwise, given the typical scenario where you have offshore engineering centers, a pm coordinating engineering projects is sometimes more powerful than a product manager. In fact, having both product and program managers report to an Engineering Director is also not uncommon. This can occur in both consumer and enterprise software firms, and in both cases the pm can have a more prominent role than a PM.

So, if you’re researching on alternates to an operational product management role in India, a pm’s role is worth a closer look.

Web Product Management and JavaScript

If you ask any product manager at a web firm if he does coding, he will respond with a firm “NO”. Then ask him what his work consists of, and he will explain about  use cases, features, experiments and other common responsibilities. At this point, you should ask him if he knows JavaScript and/or HTML and CSS. 90% of web product managers, whether in local market roles or offshore roles, will respond with a “YES”.

Today, it is almost mandatory for web product managers to have knowledge of web software development. And this knowledge is necessary not for software development, but for meaningful conversations about architecture, design and deliverables with the software team. [It helps a lot if you can speak their language!] One of the key components of this lingo is JavaScript, which is surprisingly easy to learn and fairly difficult to master.

In my opinion, JavaScript and Java and 2 programming paradigms similar to RISC and CISC microprocessor architectures. In earlier times, CISC dominated and it required a strong mastery over the instruction set, to construct good quality programs. Later, RISC (and parallel processing in multi-core microprocessors) made life easier for not-so-skilled programmers to churn out software. However, to build really good programs for RISC chips, you still need to learn a lot of “other” constructs apart from the chip’s instruction set. These other constructs are similar to the vast amount of libraries for JavaScript, which make life easier for a master programmer, but difficult for a product manager, if he wants to master coding. Even then, this is far simpler than the hundreds of patterns, libraries and classes that you will need to work on for many years to become a master at Java programming.

More formally, JavaScript is a client-side scripting language, which can be learnt quickly, and will definitely set you apart from the “non-techie” product managers. There are several tutorials that explain the syntax (Hello World!, decisions, loops etc) of JavaScript, and after that, it is just a matter of practising these learnings. Of course, you must have a basic knowledge of software development to fully “speak Javascript”.

So how does this help you as a product manager? As I mentioned before, it is useful in 3 scenarios:

1) Prototyping

No matter which prototyping tool you learn to use, a mockup will rarely be interactive unless you add JavaScript. HTML forms, pages and dialogs will become more clear than basic wireframes when you present the concept to the engineering team. This may even allow them to improve on your efforts during development.

2) Discussions

When your engineering team starts explaining  the benefits of designing “multi-threaded JavaScript objects” running parallelly versus a simple object pool, you should be very sceptical. And knowing JavaScript basics will allow you to research on the net why this could be a bad idea from a time, complexity and engineering resource point of view.

3) Career Development

While a JavaScript certification may never be a career changer, having JavaScript in your skill set, even with an MBA, will set you apart from the other product managers. It’s easy to learn, you can practice it on any laptop and use it practically when needed.

Apart from JavaScript, it is useful to learn HTML and CSS. And recently, there has been a lot of talk about “Big Data” technologies such as Hadoop, Hive, PIG etc. More on that in a later post.

“I Went For An MBA Because I Hate Coding”

binary-codeAsk any software engineer turned MBA student why he is in business school in India, and you will probably hear about his dislike of software development in his earlier role. This is especially true when the student is in his 20’s and studying in a 2-year, full-time MBA program. He has seen what the IT services industry has to offer, and is looking for something more.

So here’s a surprise for all young MBAs out there looking for jobs in the tech. industry. The best paying jobs, which occasionally include product management roles, require a significant amount of technical knowledge and close interaction with software developers. And this includes knowledge of software development, domain knowledge and familiarity with software engineering processes and technologies.

This knowledge is not important for doing code reviews or software QA, but for truly understanding the efforts required to build a product feature. It is also useful in rapid prototyping of features, building or validating UX designs, reviewing system architecture and so on. If a top-notch software engineer is rated a 9 or 10 in his knowledge of Java and SQL, you should reach at least a 5 (on a scale of 1 to 10) in those technologies. Otherwise you risk being shut out of design discussions and your UX and design contributions may be ignored.

You can become a product manager in India without software development expertise, only if you have significant post-MBA experience and strong domain knowledge. Otherwise, treat your programming books with respect and they will help you earn the programmer’s respect.

True Stories: When Engineering Dominates Product Design

Sometime back, Slideshare decided to move from Flash to HTML5. As a PM, I would definitely support this decision if the cost-benefit analysis proved it (and Slideshare agreed with this), and this extended my product’s life-cycle. If this necessitates re-work, then that is the cost of product improvement, and must be accepted. However, if such a decision is taken because HTML5 is “cool” and Adobe Flash is “not cool”, then no self-respecting product manager should support it.

Here are 2 true stories (somewhat modified to hide identities), that illustrate incorrect design decisions.

I – The Perfect Design

A friendly neighborhood product manager narrated this to me a while back (If you’re in Bangalore, there are product managers in every neighborhood). He had joined a crack engineering team working on web technologies. Their mandate was to develop a high-performance, ad-publishing service for e-commerce websites. While he analyzed competing solutions and worked on a detailed PRD, the engineering team decided not to wait, and started building out a complex, computer science Artificial Intelligence (AI) model in a solution.

Six months later, the software was ready and the team started releasing it for various websites. Unfortunately, severe bugs kept cropping up in deployment, over different product components, which meant that a major re-design was probably necessary. After a lot of back and forth, where the PM was overruled, the team decided to keep their AI model, and started developing AI model version 2. After another three months, that too turned out to be too complex for high-traffic websites. In a bizarre twist, the team decided that the PM was not “technical enough”, and they wanted to promote someone from the engineering team as the PM.

Once the new PM came into the picture, he opened the PRD written by the former PM. The team abandoned the AI model version 2 and rebuilt the product based on competitors’ designs deployed on real websites.

Epilogue: The product was released a full year late, and has few real world deployments. While it has a smaller feature set than its competitors, it’s still shown as the “crowning achievement” of the engineering team in India. The former PM now works for an e-commerce site in the US.

II – The Immature Team Leader

In large Offshore Development Centres (OSDC) several engineering projects are incubated under the “20% Time” theory, popularized by Google engineering teams. These projects can often yield useful results, but many are not worth commercializing, especially if you are in the enterprise software business which is aligned towards solutions now.

Out of one such project, a team leader created a “secure web communication service”. He was feted for this effort, promoted and moved into product management. After he left, the team tried to advance the product into a usable form. They found that it:

  • supported only 6-10% of targeted throughput
  • did not support any browser except Firefox 3,4 and IE 7
  • had massive memory leaks, was crash-prone and hard to debug
  • used up enormous CPU time on the client side

Apparently, all this was suspected when the team leader was developing the product/service. However, as he was a “rising star” and favored by an engineering VP, everyone looked the other way and QA signed off quietly.

A year later, the product was discarded and replaced by a 3rd party product, purchased under a commercial re-use agreement, negotiated by the same PM’s manager!

Conclusion

There are countless opportunities for bright engineers in India to build products. However, the “code” is just a small part of the product, and if you have a bad design or software architecture, no amount of coding will make the product perform as expected. In India, the “development process” is often prioritized over rational decision making, which makes it impossible for the product manager to do his job (make a product succeed in the market over its life-cycle).