Sunday, October 27, 2013

In Defence of the Developers

I have seen myself and other Developers I have worked with miss on obvious silly things - may be an obvious typo - or a mis programmed checkbox etc. Really obviously silly things which will make me kick myself  ( or my pair ).


Well here is psychology to the rescue.

Invisible Gorilla

A study was commissioned by a psychologist long back.

He played a video of  a basketball game between a team wearing white shirts and team wearing black shirts. The participants where asked to count the number of passes made by the white team.

Most of the participants got the total number of passes correct.

Here is the twist. In the middle of the game, a girl dressed in a gorilla suite, walks across the floor. And most of the participants who were busy counting the passes - totally missed it. When the video was played back to them they were shocked at how they could have missed the gorilla.

The logic behind is that our brain operates in 2 modes - the Analytic mode and the Intuitive mode. When the Analytic mode has been turned on and is in full swing ( counting the number of passes ), the Intuitive mode switches off or is suppressed ( which watches out for such oddities as a gorilla enter a basketball game ).

The Gorilla Bugs 

When we developers work on a feature - the analytical brain is fully fuelled and does not stop till the feature is complete. We have to watch for syntax, potential bugs, unit tests, failing tests, code beauty, backward & forward compatibility - apart from developing the functionality.

The obvious things ( in the eyes of the world ) get ignored when we are immersed in dishing out the functionality.

This is my defence - to the questions - "Did you not see it", "How can you miss it" - for most of the simple cosmetic things - that we developers miss out at times.

Now to myself, and you my brothers ( and sister ) developers

After we finish our coding session - we have to switch off our analytic brain and switch on our intuition.

Shut down the editor window, fire up the app, think you are a user - and see it through their eyes. I bet we can find a few Gorillas chilling out while we were writing code.

That is how we grow from being a Code Monkey to a Zen Master Coder.







Sunday, June 9, 2013

MBP is now on SSD

Once gizmos run out of warranty I get excited. Time to try out a few things it was not originally designed for ( definition of hacking )

My Early 2011, Mac Book Pro (MBP) 13" is soon turning 2 years.  And it was getting slow. Painfully slow. [ Tried Taming Lion but was not enough ]

Meanwhile I was slowly burning in envy ( envy is good. jealousy is bad :) ) - looking at @sanban's  Mac Book Air (MBA) - which was so light and ran amazingly fast. All thanks to the SSD - Solid State Drive in it vs the HDD - Hard Disk Drive on my MBP.

Twitterverse advised me to upgrade to SSD. Spoke to @b_hari who advised me - its a no brainer.  And you won't regret it - the difference is humungous.

I did a search on the local flipkart and ebay.in but could not find any SSDs.  This was some 6 months back I guess.

A few days back I was planning to do a re-install - things had gone painfully slow. This time I went to ebay.in and searched for SSDs and got a few hits.

There were lot of options and I zeroed in on Samsung 840 SSD ( 250GB ). There was a Pro but more expensive. I snagged the non-Pro 840 SSD at Rs.11,500. Took 4 days to reach - felt like I was back in US ordering stuff from newegg!

Here are the steps. Took 4 hours end to end - to get the same setup back on SSD.

1. Moved music and other unnecessary files to the external Hard Disk - have to now fit things from a 3BHK into a 2BHK.

2. Took a time machine backup to an external hard disk. What a time saver this time machine backup was.

3. Burnt the Mountain Lion Installation file to a 8GB USB Stick.

4. Bought a 31 in 1 Screw kit, Chinese made from a fancy store for Rs.110. The DiY blogs,youtube videos specify some Philips Screw Driver, Torc screw driver etc - good luck finding those in India. This Chinese one had it all.



5. All set. Popped open the bottom lid. Tried removing the battery connector ( some of the youtube videos advised doing this ) - but the connector was not coming out - decided not to do something stupid by damaging the connector. So let it stay there.

The Hard disk drive came out easily. The SATA connector also did not give any problems.




6. I spent some time admiring at a cool piece of technology in the MBP - which is now getting obsolete. The HDD rests on a sensor - and when the laptop is moved fast or is dropped - it detects the fall and stops the HDD's needle from touching the spindle - this prevents any bad sectors / physical damages to the hard disk. You would hear a small cracking noise whenever the motion detection happened. But with SSD there are no movable parts and this piece of hardware is not needed anymore.



7. Then fitted the SSD, bolted it nicely. Put the lid back ( didnt screw it ) and powered the laptop. Heard the Apple chime and the screen just froze white for an eternity. I had a mild panick attack - but then a folder with a question mark showed up. Phoo - thats good. The SSD is windows formatted so it was not detected.

8. Now I put the screws back - thanked the Chinese Screw driver. Plugged in the 8GB USB stick.

9. Powered it on, choose Disk Utility and formatted the SSD - into 3 partitions - Jobs, Gates and Linus.

Screenshot taken after the installation was complete. 


10. Continued with the installation ( remember to make a username which is different from the one you used to have. Time machine when it tries to restore it will ask for a different username if its already taken ). I made this mistake ( not a big deal though )

11. Once installation was over,  connected my external Hard drive, chose Migration Assistant and restored from the Time Machine backup. Forums recommend Carbon Copy Cloner - not needed if you have a Time machine backup.

12. A few things I had to do from what I gathered from the forums.

a. Installed TrimEnabler - this will optimize the writes and will not spoil the SSD ( ahemm. I never really understood the whole file storage and sector concept)

b. Turned off the Hard drive motion sensor - can be disabled from command line.

c. Turned off Last Access time for file - seems the OS will thrash the SSD a lot. Again a command line setting.

You can google for these. Simple ones.

13.  Finally it was done. All the Mail was restored, all applications ( except Microsoft Office which had to be activated once again ), settings, wallpaper - just like before. And it is blazing fast. If you are drooling at the new Retina MBPs or planning to get an MBA - try out the SSD route - for lot less you can breathe another couple of years into your favorite MBP.

I dont see any difference in weight. Its still heavy. I didnt see any significant change in Battery life.

Next : Have to install Windows 7 and Ubuntu. The rEFIt bootloader I had put is still intact ( actually I was worried if I would run into problems because of this - searched in forums if anyone having rEFIt had done SSD swap - could not find any - but thankfully it all went smooth ).

After a couple of months - will either put one more SSD inplace of the DVD Drive ( another piece of technology fast becoming obsolete ) - or remove the DVD Drive itself to reduce the weight a bit.

And friends - if anyone needs any help on how to swap an SSD sitting in India with all parts procured locally - now you know who to talk to!



Friday, February 8, 2013

Case for an Indian SaaS App Store

 
In 2008 when we started ApartmentADDA we were faced with a myriad of questions / objections.

You have all the data with you. What if you close down.
I can build my own.
I want to buy your software and put it on my computer. 
Why can't I pay onetime and use it lifelong?
I want a backup of all my data, emailed to me every day.

The questions haven't stopped, and new ones keep getting added.

I look around and see so many Indian SaaS Startups fighting similar battles. Educating the populace on SaaS and its benefits.

We also market our product through SEO, Videos, Posters and a few lucky days when media bothers to write about these interesting SaaS products.

Imagine. If there was a single site which does all the marketing and brings people to its site. It educates the visitors on the advantages of SaaS, lists all the SaaS apps that are available and also lists prices and user reviews. How cool will that be?

Advantages of a SaaS App Store

1. Startups like mine and others need not repeat the same argument over and over to educate customers.

2. Customers will not feel that they are dealing with only one "unique" idea - but lot others are there and will give them confidence - This is where the world is going.

3. Increases Discoverability - I come here looking for a Personal Finance Solution and I stumble upon this interesting Apartment Management Portal or a Telephony App or a Site that helps you find a good guitarist.

4. Customer Reviews. Before I purchase a mobile app ( including the free ones ) I always read the reviews. These reviews have become an important decision point. This will also help in deciding between similar offerings.

5. Single point of invoicing and billing - each portal now has to run its own billing invoicing workflow. I will happily pay to get listed on this site - as this opens a new Sales Channel and I can direct my customers to this site to complete the purchase.

6. The Site also sends reminders for renewals and can also earn when a customer renews.

7. We can focus on building a kickass SaaS product and delight customers - while the Sales, Marketing, Billing, Invoicing, Renewal tracking are all taken care of - even if not 100%, a percentage of it will take away some load off us.


That's it - go ahead and create this nice SaaS Portal for SaaS products to get listed. I will be your customer - will get listed and also shop for other SaaS products.

Thursday, January 3, 2013

TiE Summit @ Mumbai

Sharing a few thoughts / observations on the TiE Summit held on Dec 20,21 at Goregoan, Mumbai.

Also these are not exactly their words - I am looking at my notes and I only have a few phrases. This is a venkatised version of it - essence is the same.

Kunal Shah of Freecharge : We are all engineers. We are good at solving problems. But where we suck at is defining the problem. Brilliant!

Kunal/Vijayanand of Proto and another Gentleman - didnt note his name : They discussed on traction and finally someone gave a nice sound byte : Traction is when you get customers without spending. That was a superb definition!

Ronnie Screwala, Founder UTV Group : First step to start something is big. But don't sit there basking on it. So many first steps have to be still taken  - getting funded, forming a bigger team.. it never ends. [ Perhaps thats why we call them as a Startup!  ]

He gave more tips

  • Invest in Teams
  • Get a good vision / mission - this gives clarity more than anything else.
  • Timing is important at every step - including Exits
  •  Scale > Control 
  •  1 good trait of an entrepreneur - he is a good listener
  •  Attract good talent - spend time on hiring the right team - even if it takes 6 months and multiple coffee shop visits. [ So true - keep reading about this courting process in Silicon valley ]

Ajay Piramal - has a pharmaceutical company and others - and is one of the top 50 Richest people in India [ http://en.wikipedia.org/wiki/Ajay_Piramal ]

  •  Stressed on the importance of Values. He gave a great definition of Integrity - Integrity is the alignment of thought, speech and action. [ Simple and straight. ]
  •  1 good trait of an entrepreneur - courage to take a decision. 
  •   Convert challenges to opportunities
  •   Be passionate but also be dispassionate from results. Focus on action and leave results out. He gave a supporting story on how they dealt with their acquisition.
  •  Associate with people of high value
  • Avoid "slippery slope" - I will do a bit of this small short cut or concession - and this will begin small but will become big in the end.
Ganesh Natarajan, CEO Zansar technologies

  • Innovation is destroying paradigms
  • Dont assume that you have a great solution for today. It will change and your solution will become invalid ( explained how Aptech was no longer relevant when colleges started having IT in their curriculum )
  • Scale quickly - that is what entrepreneurship is all about [ huh.. hate that word scale ]

Alque Padamsee [http://en.wikipedia.org/wiki/Alyque_Padamsee ]

He gave the best talk of the entire event.

Leadership through Innovation
  • Innovate
  • Enthuse not enforce
  • Vision Statement

There were 2 more sessions I attended.

One was Mahesh Murthy, Poonam Pandey and Ramesh Srivats - all Twitter superstars.

They brought Poonam Pandey just for the crowd? Boo - the time could have been well spent with another twitter celebrity.
  • Poonam Pandey earns 80,000 per sponsored tweet. She does one such tweet per day - and a 17 member team manages her account - so what did the bunch of hard working entrepreneurs learn from it?
  • All 3 have everything to gain from their twitter presence - so if the other two tried to make you believe that twitter is a good addiction etc.. - don't listen to them.
 There was one more session where Alok Kejriwal, Vishal Gondal, PK Gulati and an IAN member came on stage. It was good - nice sound bytes but I got distracted in an email/sms chat with a customer.


Overall the event was good. Met lot of unsung entrepreneurs - fighting their own battles. I am sure 10 years from now most of these unsung heroes will be on stage - inspiring the next batch of entrepreneurs. 

Tuesday, July 31, 2012

Do It Yourself!


CRM

3 years back, we had a decision to be made in the team. Should we use a CRM software like Salesforce, HighRise or get an open source one like Sugar CRM, or build one in-house.

For a Bootstrapped startup "money" is this big fat guy sitting across the table, without a care,  smoking cigar and blowing rings in the air - while we fight it out. He finally clears his throat and says - to hell with your arguments this is what you should do - and he leaves the room.

It was decided for us - and we decided to build a simple CRM in-house. The interface is not fancy, no configuration  was necessary - because this is a square peg fitting exactly into a square hole and had no unnecessary reports, and no data upload was needed.

We started with simple categories - Boo, Cold, Warm, Hot, Super Hot, Win.

It did not make sense - so we changed them to Boo, Uncategorized, Nurture, Qualified, Demo, Propose, Negotiate, Negotiate Critical,Collect Cheque and Win.

Whenever the team says - man this sucks or can we have this - it got built. Now we have a stable CRM with even more cool features which a third party can never give - like activating Trial for a customer or giving a demo link just with a click.

And how much did this cost in real money? Almost nothing but did take away precious Developer Hours which could have been spent on the actual product. The pay-off happens in the long term.

Helpdesk

Couple of months back we looked at another pain point the team was facing - Support. We have a good volume of Support queries coming now - and is usually spread across phone calls, emails to various members - and we hired a few more folks and the chaos just kept multiplying.

Again we started looking around and there were lot of good options - *desks - on a monthly billing basis. And this time we locked the money man out of the meeting - as he wins all arguments hands down - while we brainstormed what was the best way.

Finally we decided to build it in-house again - and the reason that won the argument was automation. Our users can email us or raise Support Tickets online, reply to them by email - and it all gets into this Support system - the usual Support Ticketing workflow. All tickets can be monitored centrally now - and if someone in the team is off or is stuck with work - one of us can step in and take it over.

The best part is - we can now build lot of automations - we can easily copy the moderator of that user's ADDA, we can trigger a password right from the Support ticket itself etc..  and many more automations that can be built by observing the nature of the tickets over a period of time.

Again - does not cost us in real money - but in precious Developer hours. And btw - we can have unlimited users, unlimited tickets.


Why you should Outsource?

This is not our "core". There are companies who are doing this for a living and they have figured out what is best. We might be "wasting" precious developer hours and analysis re-inventing the wheel. We might be "missing" out on the industry "best practices".

All valid arguments.

Actually we have Outsourced many flows which are not our core - perhaps will write about them in another post.

Do it yourself or Outsource?

Here is some criteria to use :

a. How much money is in your kitty?

b. What is the long term strategy - 1 year, 5 years, 10 years or more?

c. How "core" is this for your startup?

d. Can your development team "sustain" if you do it in-house?

e. Are your processes established or are you iterating? 

What has been your experience - Do it Yourself or Outsource it?

Wednesday, June 27, 2012

Taming Lion

(image credit : http://especiallyemilyd.blogspot.in/2010/10/lion-and-tigers-and-tamers-oh-my.html )

Last weekend I went to a mall and was playing with an iMac - what a beauty it is. Apps were loading with one click and they looked beautiful on a gorgeous display. 

I got home and checked my 13" Mac book pro which is nearing its complimentary 1 year warranty  ( debating whether to bite the expensive Apple Care or going Commando ). It was slow. Really slow. I longed for the spiffy machine I once used to have.

This put me on a hunt and meanwhile set up development environment in Windows and worked on it for a day to see how things are.

Here is the bitter truth - Apple Fans - OS X Lion sucks at Memory Management. The net is ablaze with cribs and complaints on how poorly Lion manages memory - inspite of Macs being blessed with super powerful processors and enormous amount of RAM.

Still I would vote OS X Lion to be the best in class for Productivity and by the amount of things one can get done all under one roof.

I could not work in Windows - even though it was blazingly fast and responsive - could not get used to the shortcut keys ( in spite of swapping the Control and Windows key ), kept rotating the monitor on some combinations, no quick look, Alt-tabbing was painful, no full screen... and most of all - there is no CLI. ( No - cygwin is not a CLI )

I got back to Lion and tamed it ( or rather Lion tamed me ). 

Here is a list of things I did to get back in shape - use it at your own peril.

1. Run as many apps as possible in 32 bit mode.

Do a Get Info ( Command-I ) on the program in Applications and choose 32 bit mode. Its a shame isn't it - but it reduces memory footprint
Safari
PhpStorm
Sparrow
Chrome
Firefox

iChat didnt launch in 32 bit mode. I switched to Sparrow - so not sure of the benefits / effects of Mail.

2. Remove all fancy icons from the menubar.

Here is a screenshot of my menubar - only Spotlight icon is there - couldn't remove it.


No Volume control, no Network Icon, no date and time ( useless since calendar never opens anyway ), no blue tooth icon, no display icon ( why did I ever have it there? )

The reason is to tame a process called SystemUIServer. This grows and grows and hogs almost a Gig of RAM. Now you can always kill it and recover some memory - but removing all the icons from menubar keeps this one at bay.

There are other benefits -  it is like being in a Zen like state - no distractions and if I want to know the time I do a date command on terminal.. feel like a true geek.

3.  Inactive Memory

This keeps creeping up and suddenly it would have taken more than a Gig - and what does it do - Heaven Knows ( Steve you there? ). Anyway there is a nice command "purge" - run it - system freezes for a moment and then you get back some free RAM.

Here is the before and after of running Purge - ( like those Gym Ads). Btw - this is the Activity Monitor icon tracking the Memory usage - what a nice idea Sirjee to use icons as indicators.



Did you see the Green ( Free Memory ) just eat into the Blue ( Inactive useless Memory ) - almost 600MB got recovered.

Now I work with activity monitor pie chart always on. When the green disappears I either run Purge or close down some unused Applications.


4. Close down everything

From the beginning of time - OS X does not quit when you close an application - it only closes the window. And these processes sit quietly eating 100+ MBs.. and these add up. Now I am retraining myself to do more of Command Q instead of Command W.

5. Turn off unwanted features - everywhere

The bloatware called iTunes has a social networking module, a sharing module, a DJ module, a Genius Module.... and so many which I never use - turned off all of them. Also shutdown dashboard, spotlight ( I am used to spotlight so not sure how i will fare ). Also turned off fancy animations etc. - even though we have been brainwashed into believing that GPU is the one that does all the GUI work - I refuse to believe this BS anymore - Lion is seriously broken.

There are 2 processes which will start hogging memory like crazy - LoginWindow and UserEventAgent and you will need to keep an eye on these 2 culprits and closing unwanted applications and turning off unwanted modules is the key I guess.


6. The Strange story of coreaudiod

Go ahead take a look at the CPU usage of coreaudiod - it will be singing why this Kolaveri D right now. It was using some crazy number like 50% and at times shot up to 120% ( I dont understand % more than 100 ).

Restarting it will jump right back to the crazy processor usage numbers. Folks at Apple Support forums advised to plug a headphone into the socket, some said remove Ambient noise reduction. I stopped the notifications sound also. Still no luck.

Then I started iTunes and the process dropped! Weird ! Now iTunes was consuming some crazy RAM - so I shut down and coreaudiod made a brief appearance and went away to its nice 0.0% usage.


7. Some good habits

I will be shutting down the laptop every night before going to sleep.
I will run the nice jobs Onyx has.
Will also not run anymore fancy apps ( Better touch tool you are an exception ).
I would also burn the installer to a DVD - i do not have the bandwidth to download 4GB - so I am unable to do a fresh clean install.

So thats it - looking forward to Mountain Lion and hopefully someone in Apple Team is working his Apple off in fixing the Memory issues.

And as we were speaking - my free memory has dropped to just 13 MB ( almost 4GB is being eaten up ). iTunes is now fighting for the crown.. ugh.Time to kill this sucker and run purge... all for the love of OS X.. sigh.






Wednesday, May 16, 2012

Games Businesses play on Facebook and Twitter

I am not going into SEO and other games. This is about the new-age social media games companies are playing now.


Facebook Games

I used to drop my jaw in awe when I see some businesses having thousands of "likes". I still remember the early days when there was a bet in our team when ApartmentADDA will reach 50 likes. We are yet to reach the 1000 like mark. We let it grow organically and don't game on the likes.

However recently one of our "neighbours" in this domain, "just" jumped from 900 or so likes to - hold your breath - 9000+ likes overnight. I could not believe my eyes when I saw it.  They must have  bought these likes from some company which sells "likes" -  these are the 'work from home and earn money' shops.  If you look at Timeline then you will find where this abnormal jump happened - in May alone there were 5k likes - and may is not over yet. They had a similar jump in April. This is for a fan page which had tanked at 900 for almost a year.


Why will they do such a thing? What do they gain by doing it? Beats me.

The real "likes" on the other hand talk to you, answer your polls, get upset with you, pat you on the back - Facebook is a great platform to interact with your customers and also put a face to their names.


Twitter Games

Recently I went to change my residential address in ICICI Bank. The clerk/asst manager whoever introduced me to a lady sitting in a cabin - must be the branch manager. She pulls out a paper and details on a new investment plan called GSIP. After 20 minutes of explaining how it works she summarizes 5 benefits and the last one being oh - you also get insurance for this. It did not register in me that time but I got back and did a google search on GSIP.

First hit - it says Prudential Life Insurance. Damn - she was all along selling a life insurance product morphed as an investment plan. We had decided to keep insurance and investment separate - that way you get maximum returns on both. This was not my idea - it was Sangeeta's philosophy and a good one.

I tweet my frustration and @ICICIBank Cares picks it up. Asks me what your issue is and send me your contact information. I instead explain why I am not amused at the "mismarketing" of a product. I did not provide my contact details. Thought will do so after I see a sensible reply tweet and also wanted to know I am interacting with a bot or not. They go quiet and after a couple of days I see this tweet.

@venkat2 We have noted your contact details, we'll assist you soon.


If you go and looks at the ‏ @ICICIBank_Care tweets they seem to be interacting with their customers and solving their issues. Someone reading this would have thought - good they took care of @venkat2's issues.

Actually they have pulled a fast one on me - twice. First the manager who sold me an Insurance Product as an Investment Product and now this handle - probably run by a "social media expert".

Probably the customer support handle exists because in the new age you are supposed to have this one too - along with the traditional call support lines.

I hope these support handles are used effectively as this is a great way to cause customer delight.