Egoless product building

This post was originally published in Augment


It takes enormous effort to build a product. When I say product, it is not only the software.

It goes through long process of ideating, researching, customer development, proof of concept(MDP), validating, structuring (MVP), cleanup, and then you get the product.

People spend months, sometimes years doing research, on what to build, how to build, who will use it, and much more. For the most part of the product building process, very few people ( 2 – 3 people in most cases ) put their thoughts into the idea, that will go into the DNA of the product. When there are fewer minds, the views are highly biased towards ones’ own prospective.

From your mentors to investors, friends to neighbours, basically everyone you talk to will have suggestions, ideas, and opinions. It varies from UX to features, market to hiring, PR to pricing.

The 2-3 people, are risking their valuable time in building the product and turning their idea to reality. But more often than not, people will have strong biases and opinions. That is why the people who are part of this process are often opinionated. Otherwise idea will change with every suggestion, and the product will never see the light.

What happens when there are 2 opinions for one particular thing? Which one to consider? Who will decide which one is better? without realising it, debates will tun into a chaos. Questioning every detail, every move, directions and what not! No one wants to spoil the product, it is just that each individual is seeking a different direction for the product.

You are probably aware of the term Egoless Programming in computer programming, in which personal factors are minimized, so that quality may be improved.
This ‘Egoless philosophy’ is something that can be extended in product building also.

Tips for egoless product building

1. Listen and Learn to see other perspectives:

Listen what others are saying, and then try to see what is the reason behind it. Let them complete their point, do not cut them off in the middle.

Remember the point is not to defeat them, it is to understand them.

2. Do not answer in questions:

That moment when we start the answer by re-framing his/her own question to fit to his prospective.

Classic example,

Q: “Why do you think user will like 3 column layout? better than 2 column?”

A: “Why do you think 2 column is better?”

Rhetorical questions are better left outside the conversation.

3. Do not think on the fly:

Organize your thoughts, before jumping to beat them in their argument. It is absolutely fine to say, “Hmm, I have not thought it through! let me get back to you on that point.”  Later go back to them and try to answer that genuinely.

This will drive home the positive gesture of yours, that you are trying to validate the best solution for that problem, rather than just trying to prove them wrong.

4. Things go wrong, say “I screwed up”:

Most of the times when our view hits a roadblock we panic and struggle to come up with a reason why it failed, who failed it etc… It is better to say “Look, I was wrong!”. Things will fail and people who work together will find a better solution. So be honest in admitting it.

5. Things go wrong, say “its OK”:

The above logic will also apply when others fail. Do not blame people that they failed in something.

Instead of saying “See, I told you so” get back to the white board and think how to fix it. That will give them the opportunity to think harder next time, without feeling guilty.

6. Fight for your view, but don’t be an ass:

In debates people get convinced, it is ok to change your views. Accept the fact, It is not really a defeat. Remember you have learned something new.

7. Come prepared with data:

Data speaks for itself. If you think the direction of thinking is wrong then give examples, back it up with data. Make them believe you but do not throw random numbers.

Random numbers pisses people off!

“I know like 20 apps which do exactly the same thing!”

“There are apps like X, Y and Z that I know of, which do similar stuff”.

See the difference?!

8. Give preference to others in case of deadlock:

In case of deadlock, where nobody is able to convince others. Give preference to others and try their idea. “Ok, that may not work, but lets do a small experiment and see where it goes.”


These tips have helped us define and engineer Augment. I hope these help you and your team in building a world class product. Let us know in the comments what has helped you in defining your product.

Think like product


While you think of a product / idea , it is usual to think like people who will be using it. But not to me, I do not think like customer, not like developer, not like investors or market.

“Think like Product”


How can you think like a product?

Imagination… think about how you will be interacting your users for the first time.

It is like you ( product/ idea ) are going on a `date` with your `user` ( henceforth `her`, sorry girls), now ask yourself questions like…


`Am I ready` to go with her ?

You will never be 100% ready for a date, but  you need to be ready just enough to ask her for another date. First date should give her some hope to take one more chance. The trick here is not the first date, it is actually the second date, where she will be far more serious than the first date, hence she would listen more carefully and seriously.

What is that she is looking for?

Well this is a tricky question isn’t it, whole world is looking for this answer. But for now its obvious that she is looking for someone she can trust, can share with and to be comfortable with. You need to tell her about your positive things, strengths ( don’t worry she will figure out the weaknesses, but that is when she feel proud of her insights),  It is important to let her figure out the negative things. Do not highlight them, but at the same time do not lie, something you can’t do. Remember she is looking for someone she can trust.


Is she undergoing  `data overflow`?

Talking about yourself is fine, but it is important to understand  what she wants to know about you at this stage.  Probably it will not be a good idea to talk about your friends and your daily routine ( competition ). Not telling anything about you also will keep her in confused state, which is incorrect. So cut it short, tell it in one sentence, say 10 important things that happened in your life. or your passion, what you want to do, what makes you happy. Remember to let her talk first, when conversation starts then you should follow these one by one.


Is she into me?

This is where lot of people misjudge.  Just because she is smiling doesn’t mean that she is liking you. She might think of you as a funny person ( unless thats what you want ).  Key thing here is that there should be an emotional bond where there is a little bit of tolerance over not-so-perfect-person. When she realize you are what you are, not-so-perfect-person, then automatically she would give more time to you. Do not rush.


Should I ask her number?

Ah, this is where classic dilemma comes in. Before asking this you must know that the total experience of this date so far is good. Don’t ask the number until you think that she would not mind sharing her information.  Asking number if she is pissed of at somebody (more likely you!) is probably not a good idea. If something went wrong, then apologise. In between conversation telling her `where to find you` would be better, rather than asking  her number. Remember, keep your card ready, if she is impressed with you she might ask your number as well.

If everything goes well, you will be ready for the next big date :-)


What difference will it make?

The point here is, if you start asking yourself questions regarding how to do things, naturally you will come up with better use cases. Put yourself in the use case rather than your software / idea. There is no better system than you.


Life in a stream

Over the past few years we have seen lot of hardwares and softwares sharing their data through APIs for whatever reasons. At present by using the data from all of our application it is possible to create a `Stream` of updates / life events in one place.

Think about this, few years from now, there will be enough Hardware and Softwares monitoring us Live and those data can be stored  in one place using APIs. The technology to understand human behaviors will also evolve (such as Natural Language Processing, Machine Learning).

The data collected from all of these `Sources` will then pass through a tunnel of RULEs which creates personalised text and post it to your stream.

User can create rules that will analyze the text to be posted and dynamically create list of people who can see these updates. Rules are executed based on a Machine learning algorithm, I call it `Layer`. After every pass it calculates the probable list of `Receivers` with the Algorithmically composed text `Message`. The set of `Receivers` in each layer may get different Messages.  The magic of this Stream will be, that it is not open system. Only people who are in particular layer  can see the selected updates. and the feeling of the text will differ based on who is viewing.

A simple diagram below shows how the layers work.



As the arrows shows the messages are generated based on the data passed to the previous layer. The final output, if at all its there, will be public. Using the previous output is considering the actual Human Social circles how people usually share things.

These layers can be transformed into different types such as  Zones , Lists (or any other type of segregations ). Based on the type of layers the algorithm changes, and there could be a Hybrid  algorithm as well for all the few cases. In between layers also it should be possible to create sub layers and execute the algorithm.

This kind of an application can be used in thousand ways including Medical , Educational domains and for personal growth predictions, recommendations and different pattern can be determined.

But there is a risk of privacy and security which has to be addressed.


Writing Briefly – 30 tips ( in Kannada )

Original Article –

ಉತ್ತಮ ಲೇಖನಕ್ಕೆ 30 ಸಲಹೆಗಳು

ಉತ್ತಮ ಬರವಣಿಗೆಯ ಮಹತ್ವ ನಾವು ತಿಳಿದುಕೊಂಡಿರುವುದಕ್ಕಿಂತ ಹೆಚ್ಚಿನದ್ದು. ಬರವಣಿಗೆ ಕೇವಲ ವಿಚಾರ ಸಂವಹನಕ್ಕೆ ಸೀಮಿತವಾಗದೇ; ಹೊಸ ವಿಚಾರಧಾರೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ನೀವು ಉತ್ತಮ ಬರಹಗಾರರಲ್ಲ ಹಾಗೂ ಅದನ್ನು ಇಷ್ಟಪಡುವುದಿಲ್ಲ ಎಂದರೆ, ಬರವಣಿಗೆಯಿಂದ ಜನಿಸುವ ಹಲವು ವಿಚಾರಧಾರೆಗಳಿಂದ ವಂಚಿತರಾಗಿದ್ದೀರಿ ಎಂದರ್ಥ.

ಉತ್ತಮವಾಗಿ ಬರೆಯುವುದು ಹೇಗೆ ಎನ್ನುವುದಕ್ಕೆ ಒಂದು ಚಿಕ್ಕ ನಿರೂಪಣೆ ಇಲ್ಲಿದೆ.

1. ಬರವಣಿಗೆಯ ಮೊದಲ ಆವೃತ್ತಿಯನ್ನು, ಅದು ಚೆನ್ನಾಗಿಲ್ಲದಿದ್ದರೂ ಸಾದ್ಯವಾದಷ್ಟು ಬೇಗ ಬರೆಯಿರಿ.

2. ಅದನ್ನು ಪುನಃ ಪುನಃ ತಿದ್ದಿ; ಅಗತ್ಯವಿಲ್ಲದ ಅಂಶಗಳನ್ನು ತೆಗೆದುಹಾಕಿ.

3. ನಿಮ್ಮ ಮೊದಲ ಆವೃತ್ತಿ ಸಂಭಾಷಣೆಯಂತಿರಲಿ.

4. ಕೆಟ್ಟ ಬರವಣಿಗೆಯ ಬಗ್ಗೆ ತೀಕ್ಷ್ಣ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಬೆಳೆಸಿಕೊಳ್ಳಿ; ನಿಮ್ಮ ಬರವಣಿಗೆಯಲ್ಲಿ ಅದನ್ನು ಗುರುತಿಸಿ.

5. ನಿಮ್ಮ ಮೆಚ್ಚಿನ ಬರಹಗಾರರನ್ನು ಅನುಕರಿಸಿ.

6. ಲೇಖನವನ್ನು ಆರಂಭಿಸುವುದು ಕಷ್ಟವಾದರೆ, ನಿಮ್ಮ ಸ್ನೇಹಿತರಲ್ಲಿ ಲೇಖನದ ಸಾರಾಂಶವನ್ನು ಹೇಳಿಕೊಳ್ಳಿ; ನೀವು ಹೇಳಿದ್ದನ್ನು ಯಥಾವತ್ ಬರೆದುಕೊಳ್ಳಿ.

7. ನಿಮ್ಮ ವಿಚಾರದ 80% ನೀವು ಬರೆಯಲು ಪ್ರಾರಂಭಿಸಿದ ನಂತರ ಜೀವತಳೆಯುತ್ತವೆ; ಹಾಗೂ 50% ಭಾಗವು ತಪ್ಪಾಗಿರುತ್ತವೆ ಎಂದೇ ಭಾವಿಸಿ.

8. ನಿಮ್ಮ ಬರವಣಿಗೆಯನ್ನು ವಿಶ್ವಾಸದಿಂದ ತಿದ್ದಿಕೊಳ್ಳಿ.

9. ನಿಮ್ಮ ಆಪ್ತ ಸ್ನೇಹಿತರಿಗೆ ಓದಲು ಕೊಡಿ, ಲೇಖನದಲ್ಲಿ ಯಾವ ಭಾಗವು ಗೊಂದಲಮಯವಾಗಿದೆ ಅಥವಾ ಅತಿಯಾಗಿ ವಿವರಿಸಿದ್ದೀರ ಎಂದು ತಿಳಿಯಿರಿ.

10. ಎಲ್ಲಾ ವಿಚಾರಗಳನ್ನು ಅತಿಯಾಗಿ ವಿವರಿಸಲು ಹೋಗದಿರಿ.

11. ಬರೆಯುವ ಮೊದಲು ಕೆಲವು ದಿನ ಈ ವಿಚಾರದ ಬಗ್ಗೆ ಚಿಂತಿಸಿ.

12. ನಿಮ್ಮ ಜೊತೆ ಒಂದು ಸಣ್ಣ ಕಾಗದ ಹಾಗೂ ಲೇಖನಿಯನ್ನು ಯಾವಾಗಲೂ ಇಟ್ಟುಕೊಂಡಿರಿ; ನೀವು ಏನನ್ನೇ ಯೋಚಿಸಿದರೂ ಬರೆದುಕೊಳ್ಳಿ.

13. ನಿಮ್ಮ ಬರವಣಿಗೆ ಅವಧಿಗೆ ಬದ್ದವಾಗಿದ್ದರೆ, ಮುಖ್ಯವಾದ ವಿಚಾರವನ್ನು ಮೊದಲು ಬರೆಯಿರಿ.

14. ನಿಮಗಿಷ್ಟವಾದ ವಿಷಯಗಳ ಬಗ್ಗೆ ಬರೆಯಿರಿ.

15. ಪ್ರಭಾವಶಾಲಿಯಾಗಿ ನಿಮ್ಮನ್ನು ಪ್ರತಿಬಿಂಬಿಸಲು ಪ್ರಯತ್ನಿಸದಿರಿ.

16. ಲೇಖನದ ಶೀರ್ಷಿಕೆ ಬದಲಿಸಲು ಹಿಂಜರಿಯಬೇಡಿ.

17. ಅಗತ್ಯವಿದ್ದಲ್ಲಿ ಅಡಿಟಿಪ್ಪಣಿ ನೀಡಿ.

18. ಪುನರುಕ್ತಿಗಳನ್ನು ಉಪಯೋಗಿಸಿ ವಾಕ್ಯವನ್ನು ಜೋಡಿಸಿ.

19. ಜೋರಾಗಿ ನಿಮ್ಮ ಲೇಖನವನ್ನು ಓದಿ ಇದರಿಂದ

  •  ಯಾವ ಭಾಗದಲ್ಲಿ ಕ್ಲಿಷ್ಟ  ಶಬ್ದ ಪ್ರಯೋಗವಿದೆ
  •  ಯಾವ  ಭಾಗದಲ್ಲಿ ನೀರಸವಾಗುತ್ತದೆ ( ಓದಲು ಇಷ್ಟಪಡದ ಭಾಗಗಳು ) ಎಂಬುದನ್ನು ಗುರಿತಿಸಿ.

20. ನಿಮ್ಮ ಲೇಖನದಿಂದ  ಓದುಗರಿಗೆ ಹೊಸ ಹಾಗೂ ಉಪಯುಕ್ತ ಮಾಹಿತಿ ಸಿಗುವಂತಿರಲಿ.

21. ಬರೆಯಲು ನಿಗದಿತ ಸಮಯ ಕೊಡಿ; ಪುನಃ ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ಒಮ್ಮೆ ಓದಿ;  ನಿಗದಿತ ಸಮಯಕ್ಕೆ ಮುಗಿಸುವ ಮುನ್ನ ಪುನಃ ಪ್ರಾರಂಭಿಸಲು ಅನುಕೂಲವಾಗುವಂತೆ ನಿಲ್ಲಿಸಿ.

22. ಅಗತ್ಯವಿದ್ದಲ್ಲಿ ಕೊನೆಯಲ್ಲಿ ಭವಿಷ್ಯದ ಪ್ರಬಂಧಗಳ ವಿಷಯಗಳ ಬಗ್ಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸಂಗ್ರಹಿಸಿ.

23. ಪಾಪ್ ಸಂಗೀತವು ವಾಹನದ ರೇಡಿಯೋದಲ್ಲಿ ಕೇಳಲು ಸಮಂಜಸವಾದಂತೆ, ನಿಮ್ಮ ಲೇಖನವು ನಿಮ್ಮಸ್ಟು  ಆಳವಾಗಿ  ಓದಲಾಗದ ಓದುಗರಿಗಾಗಿ ಎಂದು ತಿಳಿಯಿರಿ.

24. ತಪ್ಪು ಹೇಳಿದ್ದೀರ ಎಂದೆನಿಸಿದರೆ ತತ್-ಕ್ಷಣ ಅದನ್ನು ತಿದ್ದಿಕೊಳ್ಳಿ.

25. ಯಾವ ವಾಕ್ಯ ಅಸಮಂಜಸವಾಗಿದೆ ಎಂದು ನಿಮ್ಮ ಸ್ನೇಹಿತರಲ್ಲಿ ಕೇಳಿ; ಕಠಿಣ ಪದಗಳನ್ನು ಉಪಯೋಗಿಸಿದ್ದರೆ, ಅದನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಮೃದುವಾದ ಮಾತಿನಲ್ಲಿ ಹೇಳಲು ಯತ್ನಿಸಿ.

26. ಲೇಖನವನ್ನು ಅಂತರ್ಜಾಲದಲ್ಲಿ ಪ್ರಕಟಿಸಿ, ಏಕೆಂದರೆ ಅದು ಹೆಚ್ಚಿನ ಓದುಗರಿಗೆ ದೊರಕುತ್ತದೆ,   ನಿಮ್ಮ ಓದುಗರಿಂದ  ನೀವು ಹೆಚ್ಚು ವಿಚಾರಗಳನ್ನು ಕಲಿಯುತ್ತೀರಿ.

27. ಲೇಖನದ ಒಂದು ಮುದ್ರಿತ ಪ್ರತಿಯನ್ನು ತೆಗೆದು ಓದಿ.

28. ಸರಳವಾದ ಪದಗಳನ್ನು ಉಪಯೋಗಿಸಿ.

29. ಅಪ್ರಸ್ತುತ ಮತ್ತು ಆಶ್ಚರ್ಯದ ನಡುವೆ ಬಹಳ ಅ೦ತರವಿದೆ ಮರೆಯಬೇಡಿ!

30. ಲೇಖನದ ಅಂತ್ಯವನ್ನು ಗುರುತಿಸಿ;  ಸಂಪೂರ್ಣಗೊಳಿಸಿ.


ಇದು ನನ್ನ ಮೊದಲ ಕನ್ನಡ ತರ್ಜಿಮೆ, ತಪ್ಪಿದ್ದಲ್ಲಿ ಸೂಚಿಸಿ;


ಅಡಿಟಿಪ್ಪಣಿ : footnote
ಪುನರುಕ್ತಿ : anaphora

New year wishes 2014

Did you know that year is hidden inside new year wishes ?

Happy new year to you!


lets figure out

        $i = false;        
        foreach(str_split('Happy new year to you!') as $c) { 
        echo $i ."\n";     

Send me the output of this :-)


Some people are asking Logic behind this, here it is.

Short version

The sum of ASCII values of the string

Happy new year to you!

Long version

1. Take a string

Happy new year to you!

2. For each character of the string(including 3 space and one `!` ), calculate the ASCII value (which is a number)

3. Add the ASCII values

4. The sum happens to be `2014`


Hapy Coding.. :-)

Do things in your own way

You can’t please everybody.

Its OK to do things in your own way.

  • If something goes wrong, you will figure out.

  • If you fail doing it, you will learn.

  • If you break it, you will fix it.

  • If it is stupid, let it be stupid.

  • If it is small, It will grow.

No matter how small it is “Do things in your own way”

For those who are enjoying ONLY weekends.


Enjoy every moment!