Sunday, January 27, 2013

Awesome Things

The last few months has been a learning experience. During which I've come across several awesome things. And would love to share them with you. The beauty is that each of them explain themselves. And don't need more than a line to explain what they do. Maybe that's what makes them awesome.


1. Squarespace
Everything you need to create an exceptional website


2. Swype
Type Fast, Swype Faster


3. Flashcards+
The world's most popular and best app for learning and studying new information. Gain access to tens of millions of pre-made Flashcard sets all for free.


4. Square
Start accepting credit cards today


 5. Surface
Is it a tablet. Or a laptop. Or both ?


 
6. Credit Karma
Free Credit Scores


7. Mobile Check Deposits
App. Snap. Deposit.


8. TV on your Mobile Device
Simply download the free Optimum App and watch live TV anywhere in your home on any device - laptop, iPad, iPhone & iPod touch, Kindle Fire and select Android smartphones.


9.Instagram
It’s a fast, beautiful and fun way to share your photos with friends and family.


10. Romney Tax Plan by Barack Obama
Try and get the details. Obama didn't get it. And neither will you.

Sunday, January 20, 2013

KISS – Keep It Simple Software

A few days ago at a client meeting in New York, we were discussing software design and lots of complex ideas, theories and interactions were being thrown around. That's when I disagreed with the group and said, "Software needs to be simple". And remembered that I had written something on the subject a long time ago. I dug it up and found that more than 5 years later nothing had changed. I still believed and had found even more relevant what I had said in that article. And so I'm reproducing it.


Quote"
Most of us feel like total idiots when we use standard software. Using high end software makes us feel like morons. Until we get used to it. Feeling like morons, that is. But, just a minute. If I can’t use a television or the fridge, the designer is the idiot. If I can’t use software, I’m the idiot. And this is true whether the software is in the mobile, or the PC or the VCR. The truth is, the idiot is the software designer. People like me, and for that I apologize. We have gotten used to people accepting what they get and hence have not been pushed enough to design better software.

There are 2 principal problems with computers and software. The first is our understanding and the second our expectations. Think about this. In schools computer class implies teaching usage of the computer. If I suggested, 2 years of Geography should revolve around reading the map, you’d laugh. But we have no problem with our kids spending 2 years learning to use the computer. The same kids who teach us how to use our mobile and other futuristic gadgets. This leads all of us to start believing in the superiority of the PC, and treat it with almost God like reverence.


The second is our expectations. Our expectations from the software are very little. We expect a huge learning curve. And that’s exactly what we get. Creation of software is considered to be principally a development activity, a science. However, it is art and should be treated as such.

The user should be able to call the shots. The telecom industry has a great model. When we pick the phone, there’s a dial tone, we dial the required number, it rings, the called party answers and we speak. So simple that even 3 year old kids can use it. Software can and should be designed like that.

 One of the reasons for the current complexity of software is the initial interaction between the developer and the final user. The user draws out his expectations and then is bombarded with a host of questions from the developer. What platform, what database, how many concurrent users, how many levels of security, and so on. The user with some help from his team tries and answers these questions, and this is the beginning of the end. After that the techies take over. And in an attempt to deliver a system that is really good, add as many features as they can. Whether it’s needed or not is besides the point.

The company that has mastered this art is Apple. Just when you think they have outdone themselves, they go do it all over again. The iPod with its phenomenal sales is but 1 example of their creative genius.

Another company that has converted designing simple software to an art is 37 signals. They have made it a virtue, marketed it intelligently and are a huge success.

The individual who has impressed us a lot and is the inspiration behind this article is Prof. Kirti Trivedi. Prof. Trivedi is a Professor of Design at the Industrial Design Centre at India’s prestigious IIT, Mumbai. His approach is very simple. A layperson, and he uses himself as an example (although we disagree), should be able to intuitively use the product with little or preferably no training. He has designed some highly innovative products, including the patented K-Yan. You can see some of his work at Trevue and at Trennova.

Nick Bradbury, the creator of HomeSite, TopStyle and FeedDemon has a blog series called “Simplicity Ain’t So Simple”, where he covered tips for simple software feature design. His 6 rules were simple and said it all.

- Decide What to Hide
- Stop Showing Off
- Don’t Add Features You Can’t Support
- The Blessed Curse of Power Users
- Combine Features
- Simple = Secure

And let’s not forget Joel Spolsky and his famous article “Simplicity”. Where he makes an interesting point about the 80:20 rule. “A lot of software developers are seduced by the old ‘80/20’ rule. It seems to make a lot of sense: 80% of the people use 20% of the features. So you convince yourself that you only need to implement 20% of the features, and you can still sell 80% as many copies. Unfortunately, it’s never the same 20%. Everybody uses a different set of features.”

Designing complex software is difficult. Designing simple software is even more difficult. And to make this difficult task a little less difficult, here are my 10 commandments.

 
10 commandments to designing Simple Software
  1. Identify the purpose. Find a simple solution. Simple for the user. Not you.
  2. Identify and design for the minimum input required from the user. And ensure common inputs are required just once.
  3. Identify and design for all the different outputs required from the system. Allow the user to customize and save. And then available at 1 click.
  4. Design a prototype with the user interface. And get the user to check and test it. Observe the use. And listen carefully to what he says. And also to what he doesn’t.
  5. Ensure that no matter what the user does, he can’t mess up. The system protects her and her data. Also allow rollbacks.
  6. Create a visually pleasing and appealing interface. Sexy models aren’t the only pretty things people love to see.
  7. Use everyday analogies in the design. If you want to indicate a book, show a book spine. Better still, iconize it.
  8. Make the interaction intuitive. To the user. Not you. Check this extensively by observing first tome time users. And listen to their questions carefully.
  9. Have different interaction methodologies for first time users and power users. The power user controls can be hidden. But make sure they’re there.
  10. Listen to user feedback. Interpret their responses. And implement whenever possible.
"Unquote
The original article published on September 14, 2007 can be found on the Nasscom Emerge Blog.
http://emerge.nasscom.in/2007/09/kiss-keep-it-simple-software/

Sunday, January 13, 2013

American Ethics & Professionalism

We always hear about the level of professionalism in the US. And how the rest of the world should learn about work ethics from the greatest country in the world.


In the few months that I've been here, I've been terribly disappointed. And that's an understatement. Let me give 3 specific examples.


Lying Landlord
We rented an office in Connecticut. Initially we signed a month by month lease which was convenient to us and the landlord. After a couple of months, once we knew that the place worked for us, we went to the landlord and asked if we could be there for a year. We were reassured that we could be there as long as we wanted. We trusted the landlord and did not insist on a written commitment. 2 weeks later we were served a 1 months notice. The landlord was well within his legal rights since our written agreement was month by month. Morally and ethically, he was a lying, opportunistic fraud.


Greedy Estate Agent
I was looking for a home and you have to engage a real estate agent to be able to view any potential place you want to evaluate. Using a friends recommendation I got in touch with someone who further recommended someone else. My real estate agent seemed nice enough and we saw a couple of places. Until I got a call early one morning to go see an amazing place. She talked her way and wanted me to make an offer since it was a great deal and there were 4 other offers. Not surprisingly she wanted me to make an offer that was at the lsit price, even though the market average for closed deals was 95% of list price. Luckily we didn't like it and declined. 6 months later that great deal is still on the market. I found a place I liked. Once again I was given to understand that there were 2 other offers and we should go in at list price. I decided to go in at 95%. The next day I get it and also realized that the other offers were a figment of the real estate agents imagination to pressurize me to make the deal and ensure her commission.


Capricious Seller
The offer was accepted and the various activities that happen before the closing began. I had a signed agreement with the seller. And every 2 days the sellers agent would come up with one of the clauses they wanted changed. We would refuse. One week later they would accept the original, till a few days later a brand new clause would be unacceptable. And once again we would not agree. This went on for more than a month and an investment of a few thousand dollars, till we just tired of the games and walked away.

It seems like the quality of people, professional or otherwise is globally similar. There are a bunch of crooks and a bunch of nice people. What differentiates the unprofessional and unethical persons in countries like the US is the law, or more accurately the fear of the law. The law can be effective and this reduces how crooked crooks can be. They walk the line but are mostly fearful of crossing it.


So I guess, bottom line is that we in India need to stop worrying about the moral fiber or genetic makeup we have and figure out ways in which we can make the law effective.

Sunday, January 6, 2013

10 predictions for 2013

We normally end the year summarizing what happened. So I thought it would be interesting to make some predictions at the beginning of the year.


1. US Financial Markets will go up and down but will end the year near flat - +/- < 5%. China markets flat. Japan markets flat. Indian markets up 10%.


2. US job markets will improve significantly. 6.5 - 7 % by end of year.


3. US housing markets will improve. Up by 4 - 6 %


4. Interest rates will firm up.


5. European financial crisis will deepen. EU and Euro will be increasingly questioned.


6. Middle East nations turmoil will cascade to cover at least 5 more nations.


7. Apple will not launch Apple TV. The device that is rumored to replace the traditional TV.


8. Indian IT outsourcing will come under pressure. May rise in actual numbers but will reduce as a % of global outsourcing.


9. Apple, Google, Facebook and Amazon will continue to dominate global markets. All will grow numerically but will lose market share.


10. Global weather impacts will have 3 major incidents, each of which will have 3 digit casualties.

and finally the only prediction I really wish I'm right about.


"Each of you will have a fabulous 2013."