Six things to learn from the iTunes Story

I just read the iTunes chapter of Steve Job’s bio last weekend and it just completely full of business lessons. Here are some I observed:

Background: Consumers wanted to download songs into their computer, into their iPods, and there was no easy way. Buying CDs offline and then ripping them into the computer was a bit too inconvenient. So consumers used to download using file sharing networks. Piracy. Apple solved this grave problem for the music industry, by creating a way for people to download songs legally from their computer and pay for them.  iTunes store was the solution.

 

Lessons

  1. Apple solved this problem in a way that kept the consumer in mind. Consumers could buy individual tracks from the album (and were not forced to buy the whole album). Completely untraditional.
  2. Sony was in a much better position to do exactly what Apple did, probably better. But organizational mis-alignment was a huge handicap for them. (Music and tech departments could not work together to come up with something that worked for both). Organizational mis-alignment can make you lose on huge opportunities.
  3. The pitch that Steve made when revealing the product was 1) High quality music  2) A way to try songs before you buy 3) Good karma (no stealing). Steve talked about ‘Karma’.  A sales pitch that directly hits the soul. Wow !
  4. The end-to-end integration between iTunes, iMac and iTunes was completely seamless from day 1. That says something. When you launch a product, make a compelling story.  Think through the experience.
  5. A Million songs sold in 6 days. Obviously huge success, but it also tells that Apple’s infrastructure could scale to support that kind of traction in the first week itself.  When going live and trying to make it big, keep high standards for your platform infrastructure.
  6. Microsoft and Sony tried replicating the same model with their devices, clouds, but Apple kept launching newer  & better versions of the iPod.  It was very hard for the competitors to grab a significant market share. Lesson: For product companies – the speed of innovation and delivery is the ultimate competitive advantage.

Would like to hear your thoughts on these / any other observations you made on iTunes.

Advertisements

A Practical Approach to prevent sprints from becoming mini-waterfalls

Let me admit. Preventing sprints from becoming mini-waterfalls is hard.nature-waterfall

There are interesting articles out there (here & here) which explain how agile sprints are different from waterfalls.

The thing is to break big requirements into small byte sized user stories and deliver a few stories in every sprint. But the essential 4 step sequence does not change –1)  Requirement Analysis -> 2) Design -> 3)Code -> 4) Test

Teams start doing these 4 steps for each story within a sprint.

Update: This is fine as long as you don’t have any new type of requirements, for which the steps 1 & 2 are significantly time taking. Or the estimates are going to be hugely different based on the design. Meaning situations where lets say a new architectural block needs to be brought it, or a major arch/ design change needs to happen.

If you do have to bring in a major change in steps 1 and 2, then there are 2 problems here:

  1. Since the requirement has not been analyzed very well and the technical design is not done yet,  the estimates for these stories are going to be highly in-accurate.
  2. Second problem is that you would want to do related stories together with the intention of solving one ( or maybe two)  user problems in a given sprint.  If these stories are related then step1 and step2 cant really be parallelized for these related stories.

As a result the team would be doing step1 and 2 for the related stories in the initial phase of the sprint. Then the team would get to coding and then testing.  Producing almost waterfall ? Also, there is going to be very little certainty on the estimates & high chances of missing the sprint goals.

The Approach to mitigate the above problems:  Do the requirement analysis and the high level design before your main sprint starts. Meaning, take up these steps as a part of the previous sprint plan.

Here is how it looks:

 

Sprinting nicely

The orange boxes are the key.

Some part of the analysis( in the orange boxes) can happen as a part of the sprint pre-planning exercise and some can happen as dedicated stories for the team to work on.

Obviously, this wouldn’t be possible for when you have completely new stories coming in the next sprint which were not planned in advance but try to avoid that situation from a Product Planning/Scheduling standpoint. Also, stick to 2 or 3 weekly sprints.  The above approach would be very hard to do in-case 4 weekly or longer sprints.

This is what worked for me, would love to hear your thoughts and experiences in the comments section below.

The only way to make 2 week Sprints Effective

(Context: I am talking about software development teams, who ship using agile methods)

There is only one way: Automation. Automate everything – tests, build, deployment, monitoring, failure notifications. Every kind of test.

I have been in various teams / products where we tried doing this and failed. But lately also part of team where we had accomplished this to a great extent.
Here are the usual symptoms of teams NOT able to accomplish this:
  1. There is a ‘code freeze’ and then there is a dedicated time span – about a week for the QA folks to test the coded new functionality. That means only one week’s worth of code is going to get shipped. Isnt that too little.
  2. Another one is that several bugs get introduced in during these rushed releases.
  3. The QA team is under immense pressure to ship within the given timeline.
  4. The initial part of the sprint is where QAs have lots of free bandwidth.
For a heavenly sprint Automate the builds / deploys and automate tests at various levels.
 
Unit tests, functionality / UATs test automation, automate code coverage measurement, automate look and feel testing, automate security and performance testing and setup rules that if any of these produce major failures – then fail the build and send a notification to the developers / whole team.
 
Comprehensive Automation keeps the quality bar really high. At the same time, the developers & testers have to be on their toes to be able to produce such a level Automation.
 
When this happens here is how a typical sprints looks like:
  1. Dev and QA are involved early on during the design / requirement understanding stage.
  2. The sprint deliverables are broken into small byte sized tasks. Most of which can be coded in less than a day / 2 days.
  3. As and when these tasks are coded, QA starts testing them ( including automating their tests).
  4. Towards the end of the sprint only a few ( say 2 ) tasks are still being coded which typically finish on the second last day.
  5. And there is this last day for testing to finish off stuff and devs to fix any bugs.
  6. Last day EOD – release !
So practically the ‘code freeze’ duration is just one day (or less). Heaven, isnt it  ?

Automation is an engineering team’s brahma-astra to achieve God speed.

May automation be with you ( may God be with you 🙂 ) !

Want to be exceptionally successful ? Combine best practices with an open mind

Experiment
Lots of great leaders / academicians / researchers have written texts, helped define standards, practices, concepts that others can re-use and benefit. 

We also call them best practices. Do you think we should always follow them (by the book) ?
I would say ‘mostly’. That ‘mostly’ is for me to keep an open mind and creating space for some experimentation.
Experiment
Lets take a few examples where not following the erstwhile known best practice or the ‘standard’ was key.

#Think about the advent of Low cost airlines. Not serving free food.
#Think about huge transition happening right now in customer service from traditional call centres to twitter / Facebook.
#Think about the transition from classic waterfall software development model to agile and other new models.

Best practices / industry standards change. Are you with me ?

Practices followed by individuals / teams / companies that take leaps of success or become exceptionally successful are later followed by others.
This is what people start calling best practices and then they later evolve into a ‘standard’.
Think about the classic ‘Product Development Model’ of running a startup to the new ‘Customer development / Lean’ way.
The formula of successful folks, becomes the mantra for others. Did I make my point ?  Read that line again. ( What I meant is that these successful people had to invent their own little formula)
So here is my theory  – “If you want to be exceptionally successful, have the courage to experiment. Be open to trying new ways of doing things”

BUT there is a pre-requisite – for you to not adopt best practices, you must know what exactly you are letting go. That implies you must understand why a particular practice is called ‘best’ – why is that so good. What are those benefits of that practice and in what situation that you are willing to let them go. Obviously, you ll have to know why you are willing to let them go. Have a deep understanding before you play your bets. (Otherwise you would be depending on  your luck too much)
Go experiment wherever you want to ! ( And may be you ll get exceptional results 🙂  )

Dont just solve, solve beautifully !

I have been thinking about it for quite sometime, but this tea-cup in the Indigo flight made me write it. Behold –

20140217-010310.jpg

I told the air hostess to give me a very hot cup of tea.She confidently asked me to touch the pot. I did and gave my approval 🙂 The pot was pretty damn hot.
When she handed over the cup to me, I was shocked. The cup was just comfortably warm. There was a grooved cardboard wrapped around the paper cup.
And it was beautiful. I felt like taking it home to show it to my wife( she is very passionate about art and craft, let me tell you).

Created a wow (although momentary) feeling.

It had the indigo logo on it and a message on the bottom. The design of the cup pulled my attention from a business book i was reading( and I was totally immersed in the book) to this message ” the hottest drink on the coolest airline”.

Brand reinforcement.

I think I ve said enough.
Bottom line – When you solve for a problem( that may be just providing a comfortable cup to hold a hot drink), don’t just solve it, solve it beautifully. Create a wow feeling, make an impression ! Its your baby, Leave your signature on it :).

What say?

How to do a Perfect Sprint Demo

I am talking about Product based companies developing software using scrum methodology. And I am talking about the ‘demo’ and not the sprint review.  The sprint review typically happens at the end of sprint with Product Manager(s) & Designer(s), who review the output of the sprint about what was committed & what got delivered. 

Demo

The Sprint demo is about showcasing your work to a wider audience, senior stakeholders, your consumers, operations, marketing, sales people etc.  I have done dozens of these & experimented with some formats.Here is what worked the best for me:

Format 

  • Total Meeting time: 30 mins
  • Walk through a summary Deck: 5-7 mins
  • Show the demo: 5-8 mins (max 10 mins)
  • Q n A: 15 mins.

Preparation

  • Prepare a 3 slider deck.First slide – a summary of all functional stories delivered in the last sprint, second slide  – non functional, 3rd slide – defects & sprint metrics
  • Prepare a video of the demo. If you want to show a web app for example, show what you want to show on the browser and record it in a video. You can use snagit or quick time for recording a screen cast.
  • Now this video is the most important and trickiest bit.   For this you need to first write a small demo script – which would explain what would happen on the screen and what is the presenter supposed to speak at that time. Meaning what are the audience going to “See” and “hear” in the demo. ( its almost like writing screen play of a movie 😉 )
  • Write the screen play :
    • You need to weave all the stories delivered in the last sprint in an easy to follow video movie.
    • Make sure you give enough pause at each step where you can talk about what the audience are going to see next.
    • So things like clicking on a link, expanding a particular section, scrolling down a page – need an explanation as to why you are going to do that and what should the audience expect to see. So keep that in your screen play.
    • Repeating a point sometimes does not hurt.
    • Write a flowy script & tell a story about what real user problems are being solved.
  • Rehearse the script by following the steps on your software. When you feel ready, record the demo video.
  • Ideally you should record your voice along with the video too. ( this would be useful when you share your video with folks offline)
    • While recording your voice – use an excited & happy tone.
    • Give pauses at the transitions, tell them what they are going to see, after they have seen it, repeat what they saw.
    • Go in a flow, but at the same time, be a bit slow so that audience get time to soak it all in.
  • When the video is done, rehearse a bit again – be ready to give your confident voice during the actual demo.

At the Demo 

  • You are at stage.  Be confident. Welcome people with a smile 🙂
  • Set an expectation that questions ideally should be raised at the end.
  • Start with the deck and then quickly get to the video. ( you need to finish both in 15 mins)
  • Ideally, having the deck open in a small window on the side while the video is running helps.The audience can always see on the side to know what all is being covered in the video. ( or you can weave the deck into the video itself  – for a making it even better  )
  • Play the video and give your voice during the demo. ( Although the voice is preRecorded too, but keep that on mute, live sound energy is way better for a live audience 🙂 )
  • Make sure you sound energized and excited !
  • During the QnA round – if there is time left, feel free to call out individual attendees for their questions, comments, cover folks on the phone line too.  ( the names you noted initially would now help).

The above worked wonders for me, what about you ? Please do share your experiences below.

I love the reliance contracted iPhone 5S/5C scheme

The biggest reason is that it makes the amazing peice of technology & design, one of the best smartphones in the market available to a LOT MORE people than would have been possible otherwise.Check this out.

Impact to the Indian Consumer:

  1. They have access to one of the best smartphones and a million apps in the App Store. Thats a lot of power in the hands of people of our country, enabling them for their businesses and a productive life.
  2. They would be able to get a taste of what it means to use a high end piece of technology. This would inspire them, motivate them, it would make them think & do wonderful things in India. Things like square (https://squareup.com/) were viable in the US because of a strong penetration of smart phones. ( and I am talking about high end, reliable smart phones which could be used to take payments)

Impact to Apple:

  1. Lot more sales in India.
  2. Lot more people using  / starting to use the Apple eco-system.  They would know what it feels like using Apple would probably make them  buy more Apple devices in future.

Impact to the Indian Developer / Tech Community:

  1. More people using iOS means a bigger market base for Apps focussed on the Indian Market.

Impact to Reliance

  1. More contracted users. Fixed income for 2 years 🙂

Although, there are some downsides like a consumer getting locked with reliance for 2 yrs, like iPhone not anymore being the costliest, hardest to afford phone in the market and thus reducing the ‘show off’ factor associated with it, to me it still seems like an overall win for everyone involved 🙂

Thank you Apple, Reliance!

Paytm – you are awesome !

Dear Paytm,
I have been using your service for a year now I think (and have roughly made 50 odd recharges through your site / app).
Not just that, I think I have recommended your services to many many of my friends. The best thing I like about you is that it takes about 20 seconds for me to do a recharge. THAT was great !

BUT then sometime back you had some outages (you were probably doing some back-end upgrades) and I had some trouble recharging.
But I wasn’t worried ( everybody goes through a rough phase I thought)  and  kept coming back & kept trying to recharge. I was somehow sure that my money was safe with you.

AND THEN, I saw the “We r sorry” email you sent me (at the bottom). I just loved it. I loved your care, professionalism and humility ! 
I forwarded this mail to a few  friends of mine (they liked it too. I showed it to a colleague of mine & told him the outage story.  He too was impressed.

I had not written a  post in a while but you forced me to 🙂  You WOWed me & taught me a lesson on treating your customers well!

Thank you !
The email I got from you:

Hi there,

We introduced a change on our website last week (Refresh) and that didn’t go as smoothly as we had planned.

For the first three days, about half of our visitors had difficulty in recharging and about 5% of you experienced Cash refund related problems. Our software upgrade caused a large amount of unanticipated problems despite all of our planning.

Those problems are behind us now and throughout the past week our Care team has reached out to those of you who were affected and addressed your issues. We have solved these software issues and have been seamlessly handling all requests.

Throughout this glitch we have guaranteed that your money has remained safe – your trust in us is the most important thing to us. This was our primary goal.

If you are still facing any issues, do write in to care@paytm.com with the subject line“Fast track”

On behalf of our entire team, I again extend a heartfelt sorry for the trouble we’ve caused you and invite you to give us a chance again. I am amazed to see how many of you love to use Fast Forward so in case you haven’t used it yet, please give it a try.

At your service,
Harinder
On behalf of Team Paytm

Put things down on paper !

As a Product Manager, there have been a few instances when I missed out putting things down on paper.

And later regretted that!  I don’t want the same to happen to you.

Few instances where I screwed up: 1) Publishing the notes / minutes of a meeting where a wireframe was discussed and approved by the consumers. 2) Discussed a small requirement with the engg team but did not put that into the  PRD. 3) Discussed, a success / release criteria but did not put that in the plan.

Mom

When you put things down on paper / email –

  1. The communication/ message gets a date to it.
  2. The written message becomes an evidence of a communication that happened.

This :

  1. Drives clarity and forces people to come onto the same page if they are not w.r.t a decision / process.
  2. Clearly calls out the people responsible  for any action items and the expected timelines. (at least a good note does that)
  3. Also, clearly admits any open items.

This is a BIG DEAL  for organizations / people who deal with a lot of people./ or with people who tend to forget things.

Moving from Engineering to Product Management: Challenges, Changes and a few tips.

Role Change
Role Change
(thanks to http://www.pictures13.com for the pic)
Challenges 
  1. Your “things to do” list would be overflowing ALL the time. Even if you take no more things to do and just work on the current task list, it may take you a month to just wrap up those. This would lead to a constant prioritization loop. You would always be prioritizing on whats important for you to do right now, today and this week.
  2. No “Right” / “Correct” way of doing things.  You will need to figure out what works in your role, your product and your organization with your customers, your engineering team etc. This is very different from Engineering where you need to usually solve a mathematical looking problem and come up with the best suitable solution. Incase of Engineering generally the influencing factors (for your choice of solution) would be well understood so you can make a “well-informed” judgements.  This is very hard in a Product Mgmt role, the ‘influencing factors’ in your decision-making would be generally fuzzy. Many pieces of information would not be available.  Many data points would be un-verified. Many data points can be made available, but it would take a huge effort to gather those, and you would not have all the time for that  investment.
  3. Poor understanding  / standardization of the  role. Different organizations, different teams have very different understanding of what the Product Manager should do.  This leads to a lot of confusion, mis-understanding and the going gets tough. For example, I have seen orgs where PM defines what problems we need to solve, the use cases, business scenarios, HTML mocks ( if they are relevant), then leaves it to the engg team to build a system which can accomplish those goals.  I have also seen teams, where the Product Manager provides a requirements document which already defines an engineering approach for the problems to be solved and the engineering team is responsible for building that engineering approach( and does not care about the business use cases, scenarios). 2 extremes. Be careful about this clarity before you sign up as a Product Manager for a particular org (be it an org within the same company or a different company).
  4. Limited learning re-sourcesThere are a LOT of senior engineers to learn from. The knowledge and the wisdom has been gathering in this area for a long time and thus getting induced into this role and growing in terms of learing and executing best practices is rather easier because of the abundance of patterns. Product Management being a new role, has limited resources to learn from.
Changes: 
  1. You own the engineering re-sources now. You are the major influence on what engineering team should focus on. So be very careful in keeping your “hidden geek / developer” instincts under control. Hint: Don’t keep re-writing / cleaning up your software 😉 .
  2. Your tasks may run into several weeks / months (not days / hours) . Learn to live with that, don’t set or commit to aggressive timelines.
  3. There is no real boss now (like there was in the engineering days). You are the CEO of your product and your engineering team. Which translates to the need of a lot of self-motivation, self-confidence and drive. There may be times when you need a bit of appreciation for what you did or how you accomplished a task, but there would be no one appreciating you or watching you so closely (as would be the case in the engineering role).
Tips: 
  1. Learn to live with un-finished tasks.
  2. Learn to live with ambiguity, un-certainty.
  3. Develop a strong decision-making framework – work hard on your guiding principles and clarity on your long-term vision. Write your decision-making framework down – get guidance from your senior peers / bosses and make it concrete.
  4. Develop a habit to retrospect often, gather learnings and document them , share them. Add these to your decision-making framework as notes  / some other form. So that you don’t ever make those mistakes again.
Just my initial set of thoughts on this transition, would love to hear your comments. Please share your thoughts in the comments section.