Pages

Showing posts with label Thoughts. Show all posts
Showing posts with label Thoughts. Show all posts

Monday, May 23, 2011

Design Sense : Making Sense of Error Messages

No matter, how well we design our Software Systems, exceptions are bound to happen. Some times, due to our internal faults arising from bad or incomplete design like not handling errors or certain uncommon conditions. And some times, due to events that are totally out of our control. What makes our application exceptional is how we handle those exceptions and keep the conversations going. 

Here is an example of an Error Message on Microsoft Xbox that needs serious re-work from Microsoft.  If you are wondering it must be a mistake as it doesn’t even look like an error message allow me to explain.

netflixphoto

Customers need XBOX Live Gold level subscription to access Netflix.  I did have a Gold Subscription and I have been happily watching movies streamed from Netflix for a long time. Now and then, XBOX stops the movie and comes to this particular screen after a couple of beeps asking me to “Upgrade to Gold or Sign in”  doesn’t make any sense at all.

After a couple of instances, I figured out that this screen pops up when connection to the internet is lost or down. I confirmed it by shutting down my wireless router a couple of times.

Error messages, particularly those that are displayed to end customers, must be sensible, contextual and make sense. If possible, prompt users to take alternate actions that may provide a temporary work around.  In this particular case, if internet connection is lost, it should just say that it can’t connect to internet rather than I don’t have the right subscription.  Can also make suggestions to end users on how they can make sure access to Internet is working properly.  If internet connectivity is just fine but Netflix servers are down (like it happened last month), it can nicely share the same that it can not contact Netflix servers, but connectivity is just fine. 

Take a look at how you are handling exceptions like this and review whether those error messages are making sense, keeping your customers informed and most importantly keep the conversations going

Monday, October 11, 2010

The Oath of Non-Allegiance

I promise not to exclude from consideration any idea based on its source, but to consider ideas across schools and heritages in order to find the ones that best suit the current situation.”

-- The Oath of Non-Allegiance, Alistair Cockburn

Sold. And Signed.

Sunday, October 10, 2010

Microsoft Office Advertisement in 1990

Wow, its almost 20 years, since the first MS Office suite was released back in 1990 with three applications. Office 2010 is absolutely lot more visually pleasing and equally lot more productive now.  Found this Advertisement that ran in Info World in the 19th November (1990) edition while reading on Wikipedia.

image

Source: Page 50, Info World, 19th November 1990 via Google Books

Of all software applications I worked on, MS Excel is still the application I love the most for its power, functionality and brutal simplicity.  Outlook is still the most used application and its new feature Social connectors looks awesome.

Saturday, October 2, 2010

Are you having fun @ work ?

Most of us are great at what we do in our jobs, either working for some firm or working on our own ventures. But, big question is do we all enjoy what we do and have fun doing it.

One of the criticisms we hear quite often is about the lack of freedom to be creative at enterprises. Its not at all unusual for someone working in an enterprise to say this (we often hear it), but it appears this happens in even smaller businesses too.   37signals seems to be no exception.

It’s interesting to think about how when a project is a hobby, it frees our mind up somehow to show more personality—to be more playful. Then when it’s time for “professional” work everything gets buttoned up and grayed out.

- “Personality vs Professionalism”, Ryan, 37signals

As the organization grows bigger, it appears that it implicitly imposes certain boundaries on free and personal expression towards more ‘professional’ or formal expression, which could  be totally boring at some point.

On a related note, talking about having fun at what we do or enjoy doing it, like my father says, most of the criticism about corporate/work life by entrepreneurs and independent consultants have something to do with ownership. Because ownership changes the whole perspective of looking at things. 

Thursday, September 23, 2010

Its not about Technology. Its about Elegant Solutions.

“Mention innovation, and people immediately think, technology. The truth is that business innovation is about value, not gadgetry. But the pace of technological progress sweeps us off our feet and we get all caught up in the gizmo, losing sight of the why behind the what. People don’t want products and services. They want solutions to problems. That’s value. And when it come to solutions, simple is better. Elegant is better still.

Great innovation requires understanding and appreciating the concept of elegance as it relates to solving important problems. Oliver Wendell Holmes once said: I would not give a fig for the simplicity this side of complexity, but I would give my life for the  simplicity on the other side of complexity.

Elegance is the simplicity found on the far side of complexity. An elegant solution is one in which the optimal outcome is achieved with the minimal expenditure of effort and expense.

Elegant solutions embrace an overarching philosophy of doing far more with much less, a notion that has become synonymous with Toyota and is present to this day in all of their operations, from design and engineering to manufacturing and distribution to sales and marketing.

An elegant solution is recognized by its juxtaposition of simplicity and power. The most challenging games have the fewest rules, as do the most dynamic organizations. The most memorable films have a simple message with complex meaning, touching a universal chord while allowing multiple interpretations.

An elegant solution is quite often a single tiny aha! idea that changes everything.  Finally, elegant solutions aren’t obvious, except, of course, in retrospect.”

Excerpt from Elegant Solutions: Breakthrough Thinking the Toyota Way

Monday, August 23, 2010

TEDTalks : The game layer on top of the world

Just watched Seth Priebatsch: The game layer on top of the world - Seth Priebatsch (2010) on Active Player.

By now, we're used to letting Facebook and Twitter capture our social lives on the web -- building a "social layer" on top of the real world. At TEDxBoston, Seth Priebatsch looks at the next layer in progress: the "game layer," a pervasive net of behavior-steering game dynamics that will reshape education and commerce.

Source : Seth Priebatsch: The game layer on top of the world - Seth Priebatsch (2010) from TEDTalks ( Feed ) via Active Player

TEDTalks: The beauty of data visualization

Just watched David McCandless: The beauty of data visualization - David McCandless (2010) on Active Player.

David McCandless turns complex data sets (like worldwide military spending, media buzz, Facebook status updates) into beautiful, simple diagrams that tease out unseen patterns and connections. Good design, he suggests, is the best way to navigate information glut -- and it may just change the way we see the world.

Source : David McCandless: The beauty of data visualization - David McCandless (2010) from TEDTalks ( Feed ) via Active Player

Friday, July 23, 2010

Cowboys To Craftsmen with ASP.NET MVC ??

Quite an interesting way to put the Journey of ASP.NET (developers) from ASP.NET Page based design to MVC based applications. Hope I am not taking it out of context. Its not explicit, but it is written all over the wall. Nevertheless, towers of abstraction and magic by Visual Studio often make developers ignore the inner workings of the framework. Its not a surprise to find an ASP.NET developer that hardly knows anything about HTML beyond the acronym and yet can still develop great ASP.NET pages that really work.

Undoubtedly ASP.NET MVC is better than ASP.NET Web forms, particularly in terms of testability and separation of concerns. But I do not think the model (be it MVC or Web forms) itself could create a better developer somehow.

There are two ways to be a developer. You can be a cowboy or you can be a craftsman. A cowboy jumps right in and starts coding. A cowboy can build a software application quickly. The problem with being a cowboy is that software must be maintained over time.

A craftsman is patient. A craftsman builds software carefully by hand. A craftsman is careful to build unit tests that cover all the code in an application. It takes longer for a craftsman to create an application. However, after the application is created, it is easier to fix bugs in the application and add new features to the application.

Most software developers start their programming careers as cowboys. At some point, however, you must hang up your saddle and start building software that will stand the test of time.

Source : Stephen Walther on ASP.NET MVC

You can see the focus and so much stress on ‘hand crafting’.  I guess even ASP.NET is going through a journey of its own. by moving away from it’s Page based model and embracing MVC that the rest of the world has been using for years.

Friday, July 16, 2010

ASP.NET Vs Ruby On Rails (RoR) : Now You Know ASP.NET MVC

Listen to this wonderful conversation between Scott Hanselman, Martin Fowler and David Heinemeier Hansson happened back in 2007 before we ever heard of ASP.NET MVC. Transcript here.

Scott sits down with Martin Fowler of Thoughtworks and David Heinemeier Hansson of 37 signals and talks about beauty, making developers happen, the death (or life) of HTML, the future of Microsoft, and asks if we should care about Rich Internet Applications. DHH is the creator of the Ruby on Rails framework, and Martin Fowler is the Chief Scientist at ThoughtWorks, well-known systems architect and Extreme Programming expert.

--- Hansel Minutes 

So delighted to see such a bold and open discussion between passionate developers with completely different backgrounds and ideas.

Some how, this podcast explains a lots of things that were introduced in ASP.NET after 2007. Not suggesting that this has anything to do with that, but probably things must have been already moving in that direction, part of that led to an open discussion like this.

It is totally surprising to see no comments on this podcast. But this is one of the best of conversations out there.

Thursday, July 15, 2010

Trends : .NET 1.1, .NET 2.0, .NET 3.5 and .NET 4.0 Side by Side

Wondering which .NET version is the most popular version? Which .NET version got the most traction in the industry? Which version is the most discussed in the developer circles?

Well, I am not sure if we have any public data that could answer any of those questions, particularly the commercial adoption part. But I looked at trends of search engine traffic and I found that these trends tell a story that is quite consistent with general perception.

Look at the graph below illustrating the search trends of various .NET versions, captured from Google Trends. The story I believe is quite familiar to most .NET developers.

image

I am not at all surprised to see .NET 1.1 still alive even in our searches, many companies are still running on .NET 1.1 and I guess haven’t found a compelling reason (that totally justify their investments) to upgrade.

You can also see from the snapshot below, Visual studio editions follow the suit more or less closely along with respective .NET versions.

image

These graphs may not tell the whole story, but on their own they are quite revealing.

On a related note, you may be interested in some thoughts I captured about yet another .NET version in a post a while back:   How Excited Are Businesses About Yet Another Version Of A .NET Framework ? .

I will leave it up to you to read those graphs and interpret based on how much you know about the whole .NET eco system. Let me know if you are surprised in any way.

Wednesday, July 14, 2010

Basics of Marketing A Startup : Mahesh Murthy @ Proto.in

One of the most intriguing presentations I have ever watched on how to market a startup.

Key take-a-ways (in my own words):

  • Don’t even bother, if you don’t have an insanely great product.
  • Trend means end. Never follow the trend, but try to create your own trend.
  • Charge early. Charge a lot. Your price could be your best marketing strategy.
  • Spend as little money on advertising. Instead spend on developing an insanely great product. The product will speak for itself and your customers will advertise for you. You can never have enough budget to promote a crappy product.
  • If you ever have to give out your product free, build a beautiful and amazing UI to give a much better experience to customer.

I must admit and warn you, if you ever watch this video or read about the presentation either on this blog or elsewhere, take the advice with a pinch of salt. While appear sound (and anecdotal and may have worked for him and his team), the advice is quite narrow and may not work for you.

For instance about advertisements. In his own words, if you are advertising means you have a crappy product. He presented Google and Yahoo on one side with great products and no advertisements while Coke and Pepsi on the other hand that spend a lot on advertisements to promote crappy beverages.  This is a twisted comparison to start with as you can clearly see he is comparing apples and oranges.

The Apple Test

Let us put Apple to test on this theory. Apple is known as one of the most innovative companies with truly insanely great products even before the pervasive iPod and iPhone. And Apple’s ads for iPod, iPhone and Macs are some of the best and most elegant advertisements I have ever seen. And fact of the matter is Apple advertises quite significantly about its products. Does this mean Apple has crappy products? No way!

Your money spent on marketing is as important as building a great product. In many cases, marketing is lot more important than the product itself. In simple words, Marketing takes you to the customer. If your product is better than a competitive product known to that customer, this is very important, known to that customer, you win the customer. Or you loose. So, first step to get to a customer is much more important than proving to the customer that your product is the best product. What is the point of proving you have the best product, if nobody know about product.

And its quite unrealistic to rely on your existing customers to virally spread the greatness of your product. It takes lot of time and if your product is particularly a niche product, time is quite an essence. So you must reach to as many customers as possible in the shortest amount of time through advertisements. And leverage all social media to facilitate spreading the message.

I agree with another key message, charge early and charge a lot. Based on my little experience and learning, I would also add, charge as often as possible.

There are lots of sound bytes in his presentation that may help some  startups to tone their messages. But most important lesson to take away from this presentation is to break free from trends. Even if that trend is his own anecdotal experience about advertising.

Don’t forget to watch it. A strong opinion is always a lot better, as it would consolidate your own understanding of the topic. And this presentation has lots of them. One of the finest.

(Originally posted on 23rd April, 2009)

Tuesday, July 6, 2010

Why We Love Apple Even More Now

How many times in your whole life have you ever seen individuals or organizations admit their mistakes point blank without giving a spin or excuse?

Upon investigation, we were stunned to find that the formula we use to calculate how many bars of signal strength to display is totally wrong. Our formula, in many instances, mistakenly displays 2 more bars than it should for a given signal strength.

-- Letter from Apple regarding iPhone 4

And the letter confirms that gripping iPhone 4 in a specific way could hurt its reception and thought its a design issue of iPhone. But I didn’t know that its the same way for any other mobile phone.

Friday, June 11, 2010

Apple Safari Reader Makes It Easy To Read Content on Web

Apple Safari version 5 makes it easy on your eyes to read content on websites. It smartly figures out what is real content and just shows up that. And you can easily resize content and even print the content. Printing a webpage just with content, makes it my best feature of all. Its sure the best way to read content on the web.

The best way to read on the web.
Safari Reader instantly banishes those blinking and flashing ads that distract you from your online articles. Say you’re browsing your favorite news site. Safari can tell if you’re on a web page with an article. Simply click the Reader icon in the Smart Address Field, and the article — every page of it — instantly appears in a continuous, clutter-free view. Email, print, or zoom with a click using convenient onscreen controls. And if you change the size of the text, Safari remembers it the next time you view an article in Safari Reader. - Apple

image

image

Friday, May 7, 2010

What is the Biggest Challenge For Programmers?

This video was recorded about 6 years back in 2004 on MSDN Channel 9, where Eric Gunnerson was talking about challenges for Programmers then, around 2004. One of the biggest challenge used to be about keeping up with the pace of technology around you. Not surprisingly, we feel, nothing has changed since then. It is still one of the biggest challenges programmer face.

Ask any .NET developer what do they think about .NET 4.0 and a whole range of other new stuff released this year alone, you can feel the overwhelming anxiety. They are more confused and we should say more scared at the pace of .NET platform evolution, than before. Not surprising at all.

Link to the Video here. Don’t forget read comments on that page.

There are a couple of important aspects  in those comments. Here are some excerpts from the comments:

  • It is a good philosophical observation about the way people work when they're abstracted away from semantics, and I think we're seeing now what was originally intended; save your time to worry about the bigger issues.
  • The rate of change is indeed a problem. And it is constantly accelerating.

  • Will development become something you get into after getting your college degree and after 10 years you will have to "retire" to another profession? Or maybe the cost and effort of acquiring the necessary skills will be so high in comparison to the time you have to leverage it, that it won't even be economical - and it will all be outsourced?

Tuesday, May 4, 2010

Teaching Online : What We Have Learnt So Far

“Unleash Your Career”, was our first ever program on Supercool School, and officially our first ‘exclusively online’ program. We did stream some of our sessions live on the internet, but those sessions were held in a class room environment with some students attending those sessions in person. This was our first fully ONLINE session. We were both excited and anxious on how it would go. But it went quite well. We have also received great feedback about the session.

But, who could judge the quality of your performance better than yourself. So, once the session was over we sat for a review. We watched the whole recording ourselves. We immediately noticed it wasn’t up to our own expectations. We watched it twice just to make sure.  It was in fact quite terrible by our own standards. We made a note of few things that we could immediately improve while some needs a bit more practice and getting used to.

Since then, we have been working on our shortcomings and getting better day by day with each session. Though we believe, there is not much you can learn by just reading this (but a whole lot just by actually doing it), we would like to share a few challenges or hurdles in teaching online, that we noticed.

  • No visual cues from participants, left us guessing about how well audience were receiving the presentation.
  • Power point presentations proved to be quite rigid. It was quite difficult to let ideas flow and in more than one way forced us to kiss good bye to improvisation.
  • It was a whole lot difficult to draw something on digital white board than we ever thought, an absolute thought breaker.
  • The only way you can project your passion or enthusiasm in teaching is by projecting all that in your voice. Not an easy task, leave alone effectiveness.
  • You can’t move freely. for that matter, if you don’t have a wireless microphone, you are literally stuck to your chair. You may loose body language, most importantly your gestures that convey so much meaning in a class room environment.

In later posts, we will share how a few changes we made in the setup have been helping us to do it much better than our first session and getting much better session by session.

Saturday, April 10, 2010

How Excited Are Businesses About Yet Another Version Of A .NET Framework ?

Just in a couple of days (on 12th, April 2010 precisely) Visual Studio 2010 will be released along with .NET 4.0.  While most of the .NET developers are excited to see an improved version of .NET framework and itching to try the latest and greatest of all, it is totally a different ball game for businesses, for they prefer  and wish a stable framework that doesn’t change, well, forever. As every new version comes with a new set of challenges and often hit bottom lines pretty hard.

A new version is always quite an expensive proposition

Its not at all a surprising fact that even today most businesses are running their business applications on .NET 1.1 or even some still run on classic ASP. Because, more often than not, upgrading to a new version proves to be quite expensive and doesn’t offer enough benefits or improvements that justify the cost of upgrade.

  • A new version comes about once in a year. If not a new version altogether, a new SP that fixes a whole bunch of bugs and security issues. The frequency of these updates alone is a big issue to manage.
  • Though new versions are often faster than earlier versions, you may have to upgrade your hardware resources to really squeeze enough juice out of those new versions to make sense.
  • Even with the possibility of running multiple versions side-by-side, upgrading to a new version is never easy for businesses, as often new versions are not completely backward compatible.
  • If there are 3rd party libraries are used in those applications, businesses may have to upgrade those 3rd party libraries as well. New versions, often bundled with a laundry list of new features (mostly not useful at all) comes with a price as well.
  • Though, .NET framework itself supports side-by-side execution, more often that not, running different versions of tools is a nightmare. Since not every application can be migrated at once, most enterprises must support co-existence of multiple versions of these tool sets for a long time, living through one night mare by another.
  • If Businesses do not upgrade, then there is an issue of support. For instance, Microsoft and 3rd Party vendors may cede support to older versions and force to upgrade. And, it may not be easy and good on account books to find developers who can support older versions.

On the other side of the coin

Its true that a new version is may be a better one than the earlier. Some times a faster, more secure and significantly improved. Some times, a new version even enable new business models, opportunities and much better ways to solve business problems. The truth of the matter is though, most businesses have already developed systems with existing toolset itself to leverage new market opportunities.

And its not just an issue with Microsoft, .NET Framework or Visual Studio. Upgrading any software is an issue and hit bottom lines for most businesses.  Its even the same story in the consumer space. For instance, iPhone OS 4.0 will not be supported on the first generation 2G iPhone, forcing to upgrade to a newer version. Everybody is well aware of the story of Windows Vista.

It will be a tough decision for stake holders to make a call to upgrade. But as we all know, it must be done at some point. I wish, we will have a stable release, for at least 3-4 years. No SPs, No new versions of frameworks, tools or any other component.

But we all know quite well, how it works.

Thursday, April 8, 2010

Design Sense : Avoiding Unintended Expectations In Writing

Our recent experiences with Supercool School have reminded us some of the key aspects of web application design, that we normally take for granted otherwise. For instance, clarity of copy writing on our web applications. Are our messages clear and conveying what we really intend to? Are our messages clearly translating our vision and ideas? Are our messages guiding the user to interact with the application naturally?

Some times, if we fail to think through the mental model of real users, it may result in unintended expectations on our applications. For example, when a new user try to signup for an account at  Supercool School, this particular screen is displayed where the user is offered a choice of signing up for a Professional Account or start a Free school. Look at the screen and try to figure out how many users a Free school can have?

image_thumb[2]

Based on the text, there is only ONE limit on free school : you can host only 15 classes in a given month, compared to unlimited classes in the Professional account. Omitting number of users for a free school, led us to think  there is no limit on users in free School version.

What do you think? 

We came to know later that it allows only a maximum of 15 members in a free school. They might have mentioned some where, but we didn’t notice until we hear complaints from users that they couldn’t signup.

Go back and have a look at your web site or application. Make sure, those messages really translate what you intended. Try to think like a user. Or even better conduct a few usability tests with real users. See, if they can use the application just the way you want them to use. Then try tweaking your flow, messages and everything on your site until a new user can navigate your application and get things done as they are supposed to be.

Design Sense : How to Keep Conversations Going, In The Face Of Exceptions

No matter, how well we design our Software Systems, exceptions are bound to happen. Some times, due to our internal faults arising from bad or incomplete design like not handling errors or certain uncommon conditions. And some times, due to events that are totally out of our control. What makes our application exceptional is how we handle those exceptions and keep the conversations going.

Instead of just babbling theoretical aspects of what makes design sense, we would like to share examples from a real experience at Supercool School and clarify what should have been done to handle an exception.

We signed up for Supercool School last week and created a new class to offer our most popular “Unleash Your Career” event. We added the site url in all our communication and marketing material and started promoting the session. A couple of days later, on 6th of April, we received an email from a user that he couldn’t signup. We visited the site and tried to signup. This is how the error message was displayed on the screen.

image

Now that may look perfectly reasonable error message for many. But think what will happen next. It will cut short the conversation with user. User may not take the extra pain to complain or communicate with you and just leave the site. The user may never visit the site again. And most likely the user will discourage other people visiting the site. Does keyword ‘viral’ or social ring a sound? All the effort put so far to get the user to visit site, persuade the user to see value and signup for the account, all goes in vain.

The solution, is simple. Keep conversation going. Just do not give up so easily. Think about, automatically retrying on behalf of the user. Think about alternatives that could be offered to keep the user proceeding further. If no alternatives are available, Think about collecting some information from the user so that you can reach them back later. Do something, whatever possible, so that you don’t loose that user.

Thinking about this specific issue, Supercool School should have done some thing like these:

  • Offer the user to contact the School owner by providing a link right in the error message.
  • Even better, explain to the user about the problem, but also take the registration as usual and put the user account in a ‘pending state’. This way, School owner do not loose the user and User experience is not suddenly broken.
  • Inform the school owner about the exception and offer the owner to upgrade to next plan immediately.
  • Even better, allow registrations for a day or two, giving some time for the Site owner to make arrangements to upgrade to the next plan.

It is really worth giving a serious thought to how you are currently handling errors/exceptions in your system. And how you can keep those conversations going. Remember, don’t give up so easily.

Monday, April 5, 2010

How does your site look on iPad?

Wondering how your site looks like in an iPad, try at iPadPeek.com for a glimpse. Click on top border to toggle to landscape/portrait mode. Here is how the ‘Unleash Your Career’ page looks in an iPad.

image

A snapshot that shows the onscreen keyboard on iPad as well. Quite slick though.

image

Nothing special, as this is the same Safari browser.  The difference will be in how we interact with a site on iPad. For that, we just need to buy an iPad to try it out. Hmm!!!