| Login
 Blog    
Notes from Software World

By ashvil on 8/28/2006 3:23 PM

 

IM.NET was designed and written by me to familiarize myself with C# and .NET framework in early 2003. I was familiar with the Jabber/XMPP protocol at that time and was looking to take C# and .NET for a test drive.

Now with Linq/XLinq integration in C# 3.0 due next year, it looks like the best time to take it out of the closet and take the new technologies for a test drive and find out if the hype behind functional programming is really justified. This time I have also decided to open source the application under the Mozilla/LGPL license and host it at Codeplex.

I am currently cleaning up some of the old code and plan on adding some technical documentation and hope to release the source by mid-September.

 
By ashvil on Monday, August 14, 2006 5:43 PM

 

This is a snapshot of how i3Connect's Vista's Unified View would look like.

I designed this picture in 1998 or 99 and it shows integration between calendar, task, contacts, notes, IM, email, news and other enterprise data types integration

My Context presentation has more information on the vision behind i3Connect.

 
By ashvil on Tuesday, August 08, 2006 6:58 AM

 

The above title seems to make no sense at all. How it possible for an UX (User Experience) to be invisible and yet evoke a powerful emotional connection.

Quick Question – What is the best User Experience for setting the clock on your VCR or DVD player or any device in general?

Most device manufacturers have tried to solve this the wrong way by creating an UI (User Interface) that allows the user to use the remote control or a set of buttons to set the time. That’s why most of the devices either blink 12:00 or have been set by the service technician. BTW, this is a great interview question.

The correct answer to this question is – Does the customer care to set the time? Setting the right time is a requirement for the device not for the customer. The customer is not planning to use the device as a clock, so there is no reason for them to set the time in the first place.

If the customer does not care, the right answer is - the experience should be invisible.

In fact most clocks do this right. They use a radio signal to sync up the time.

But this (setting the clock) is a one time operation only and it takes only a couple of minutes.

The above statement is wrong is so many ways …

1.      This leads you down a slippery slope of making the customer do things to use your product that they don’t care about, degrading the UX as you go along.

2.      It takes only couple of minutes for customers willing to learn and do it.

3.      It is a one time operation till a power failure or a power cord is unplugged, since most devices consume power in standby mode (Maybe an EPA standby power rating would help, but let’s not digress)

Now that you are free of creating UX for things that customers don’t care about you can focus on items that customer really care about to create an emotional connection with them.

Apple is one of the few companies in the world that get this and that’s why the market share for the iPod keeps growing every year.

The iPod uses a combination of a great device, software and service to create an experience that is focused on creating an emotional connection based on what the customer wants to do.

The first step is to understand what the customer wants to do. No kidding, but this is really difficult for most companies to do. In the iPod case, it is listening to customized music on the go.

The elegance of the device, simplicity of wheel interface, shuffle mode, iTunes, music store, etc. are all features and not the end game. Most PRDs (Product Requirement Documents) start and end with feature checklists and are very helpful to create a me too product. That’s why all the iPod wannabes have failed. Copying features without understanding the customer’s goals is a great example of Cargo Cult Engineering.

Choosing the genre of music on the go, to match your mood is a good example on how the wheel on the iPod and tiny screen collaborate to let you quickly select it.

So if the customer cares, the right answer should be – the experience should generate an emotional connection.

If you look at successful products you will see this pattern of Invisible and Emotional connection in their UX. Understanding how customer intend to use your product will help you choose the right UX items to make invisible and right ones to generate an emotional connection.

BTW, this is why the iPod does not ship with an AC charger. After all why add another block in your life that you don’t care about when the iPod can charge itself via the USB connection when it is downloading the music.

 
By ashvil on Monday, August 07, 2006 11:31 AM

 

i3Connect Vista was the consumer version of Communication client of the start-up (i3Connect, Inc.) I co-founded in 2000. Some features included …

  • Vista 1.4 - an unified messaging client that supports cross-conferencing chat across AOL, ICQ, MSN, Yahoo, IRC, and Jabber messaging services.
  • Vista also supports Digital IDs with Message Encryption and File Transfer over Jabber.
  • Get latest news from many news sources like NY Times, BBC, Wired etc via RSS Channels.
  • Check for new mails.
  • No Spyware and is Ad-Free.
  • Post to Blogs
  • Send SMS messages.
    • Vista died with i3Connect in 2003 and my goal is to create a new version to implement the original vision using .NET 3.0.

      Since Microsoft took over the Vista name for the new OS, the first thing on my task list is to find a new name, which is probably the most difficult task on the list. Will keep this blog updated with progress reports about the project.

       
      By ashvil on 8/3/2006 4:12 PM

       

      If you are looking to convince your Boss to let you play with WPF, then these three videos will come in handy.

      1.       Healthcare demo

      This App is a great demo on a real and practical use of Avalon and covers most of it’s features. It expands the definition of User Experience for Line of Business applications.

      2.       The Northface Demo

      This video pushes the limits of Avalon to explore new UI concepts with 3D and media.

      3.       Evolution of Avalon

      For folks who are discovering  AJAX and sing wonders of it, this video delivers a good reality check. I like this video especially since I experienced the wonders and pains of DHTML in two major applications in the late 1990s and early 2000.

      One of my feedbacks to Microsoft was that they should have shipped a stripped down version of Avalon in 2003 on Windows XP and it’s was nice to see Michael agreeing.

      If your Boss is still not convinced and does not have a good reason, then maybe it’s time to look around ;-)

       
      By ashvil on 8/3/2006 6:42 AM

       

      I have a lot of respect for Miguel and his work with Mono but statements like “Avalon is the J2EE of GUI Apps” is just nonsense.

      Having worked for the last one year to architect and build an Avalon (WPF) application, I can say that the Avalon team has made most of the right choices to build a system that you pay for what you need only. It follows the goal - Keep simple things simple and complex things require more work.  

      On the other hand J2EE goal was that all things (simple or complex) should require the same amount of work and should be wrapped up in object oriented goodness. That’s why writing a simple J2EE app that dumps information into a web page is so difficult compared to Rails.

      But what about the big Avalon learning curve?

      It depends on what you are trying to do … If you are planning to drag and drop controls and use them like black box controls  (just like Windows Forms or old Visual Basic) then the curve does not exist. Using Sparkle and Visual Studio Orcas, you can happily create great UIs just like the old days by buying custom controls that are fancier than Windows Form controls.

      If you are planning to skin the controls (Avalon’s template and styling), then you need to understand core concepts and tools like Sparkle help.  

      If you want to do some fancy 3D, then you need to understand 3D Geometry and tools like Zam 3D help.

      I could go on and on, but the point here is that Avalon has all this power but you don’t pay for it unless you want to use it (unlike J2EE).

       
      By ashvil on Tuesday, August 01, 2006 4:05 PM

       

      Larry and Rob blog postings about the Vista Speech Recognition bug is a great indicator on how far Microsoft has come from the ‘’Borg’’ days.

      As a partner dealing with Microsoft, it gives me a lot of confidence when I know technical story straight from the developers (without the marketing crap). It makes the decision to invest in Microsoft technologies a whole lot easier, when you have the inside story.

      Transparent is the cornerstone for relationships and if more companies would get this, then the software world would be an easier place to do business in.

       
      By ashvil on Monday, July 31, 2006 4:11 PM

       

      I am looking for a Senior Program Management or Engineering Management position in a Software or Solution Services company.

      If any of my blog readers know of open positions that would suit me or have any tips, please email me (Ashvil@Ashvil.net)

      These are the following must have criteria for any opportunity for me …

      • Opportunity has to be challenging
      • Should be based in the South Bay Area (Silicon Valley)
      • Smart and Fun people to work with

      Thanks for your help.

       
      By ashvil on 6/20/2006 8:35 AM

       

      One of the hard lessons of my startup experience was that ideas are worth very little, It’s how you implement the idea that matters. Execution.

      When I see founders hide what they are doing, I smile and think – Been there, done that.

      But if the idea is not important, what’s are these folks trying to hide. If the founders are smart enough, they would be talking to everyone about their idea but talking to only a select few on how they are going to implement their idea. How you uniquely execute on the idea is what you need to protect and patent if possible. This is your secret sauce and will be what investors will pay for.

      Take Jack for instance - Jack decides to go after Steve Jobs and his iPod and create the ultimate portable Media player. He silently assumes that his mini laser projection display for his Next Gen Media Player will knock the socks of the iPod. After all who would not want to see videos on a bigger screen. He and his founder buddies decide to keep the fact that they are building a Next Gen Media player a big secret. All they tell others is - we are hot startup doing something secret.  

      It would be better for Jack to tell others that they are building the Next Gen Portable Media Player. Others can validate their idea and give them a reality check. Jack and his buddies are now operating on their invalidated idea that adding a mini laser projection is all that is required to build the next portable media player.

      If they actually would tell folks (or even ask folks what they are looking for) in a Next Gen Portable Media player they would get the following comments …

      • Bigger screen for videos
      • More choice for videos and music
      • WiFi
      • Subscription service
      • Improved battery life
      • Cell phone integration
      • Faster sync for videos and music
      • ITunes service
      • Photo slideshow
      • Games
      • etc., etc,

      By keeping the idea secret, they have eliminated all the useful reality checks that they would have had and instead set themselves up for a reality shock later.

      The right thing for Jack to do would have been to patent the method of Adding a mini-laser projection system as a Display for Portable Media Players and then they would not have to play these secret games.

      So next time someone tells you that they are working on a hot startup but cannot reveal any details – wish them best of luck and slowly back away ... :-)

       
      By ashvil on 6/4/2006 5:49 AM

       

      Sometimes the best way to convince someone that their way will not work is letting them fail early without any major impacts.

      In my first job in the early 90s, Microsoft shipped a version control called Delta with MSDN. It was not really good and did not have any Developer tool integration but it supported basic version control features like Check In and Check Out and it was free with MSDN, so I did not have to go through an approval process to get it.

      Delta provided some basic features and I and my team was happy using it compared to the previous option of using nothing.

      One of the developers in my team was very unhappy that he had to ‘Check Out’ a file before using it – This meant that he had to switch to Delta from his C++ editor and check out and come back again. So he decided to just change the read only attributes of the file and continue working. He explained to me that since he was the only person who owned that file, it would not matter.

      This was an accident waiting to happen. Even if you are the only developer, you will want to pull up an older version to compare the changes to figure out why - what you did today broke something else.

      Sure enough a week later, he came to me one evening and told me that he messed up and wanted to go back to an earlier revision of the file but since he was not using Delta, he ended up wasting the entire day trying to backtrack his changes. Sheepishly, he admitted that he had learnt his lesson the hard way and would always use a version control system.

      [If there is any one from the Microsoft Delta team reading this, then it is nice to know that however feature challenged Delta was, it convinced few folks that versioning was important] 

      I suppose I could have taken a heavy handed approach and told him that the policy was to use version control or else but that would not solve anything. I still do this and it confuses the folks sometimes but it works.

      Letting people fail in a controlled environment is the best way to learn – if they are not willing to listen. After all that’s how most folks learnt to ride a bike.

       
         
       Print   
       Blog_List    
         
       Print   
       Blog_Archive    
         
       Print   
       Search_Blog    
         
       Print   
      Inspired by Nina