3S for Mobile Success: A Case Study

I’ve been an avid mobile user and have downloaded hundreds of apps. Interestingly, playing with the app has somehow become my hobby. With that, I have managed to learn about the success/failures of the apps(and business) . The biggest thing in the world of apps are important is ‘customer delight and engagement’. The apps are successful have managed to deliver the 3S(simplicity/speed/security) over the period of time and gained huge user base which directly/indirectly has caused great business revenue.

App : HealthTap (Health at you fingertips)

This is a great idea and I believe in the revolutionary idea to not only bring medical /health knowledge but medical support at your fingertips is our future. I ‘m looking forward to use it more and more but unfortunately I find it very disturbing when I cannot get things done and get confused on it’s usage. As a mobile evangelist , I thought of taking a stab at the app and see how it differs from my ideas of mobile experience and enagement which I outlined in my previous blog.

 

healthtap_modified

 

Q1: What is the primary motivation/intent of the consumer to use this app ?

Q2: How many things can a user achieve from the dashboard ?

Q3: Is this UI overloaded with UI controls impacting the look and feel ?

Q4: Is this UI overloaded with the numerous things that user can fork off from here ?

Q5: Is this fast enough for user ?

Q6: Can user achieve same things to multiple ways ?

Q7: Does it follow standard apple guideline about human-interface guidelines?

 

I’m not sure whether I can answer the Q1 fully. As a customer I know what I need but I have no way know what others are looking for. I expect the business team has done customer surveys/usability studies to understand it’s own customer base and made some user segments. Looking at the UI though, it seems, the answer is not so obvious and therefore not a sincere effort is made to reduce the things that a user can do in the dashboard.

Looking at the UI (starting from top and traversing left-to-right), I can do the following

  1. Hide/Show Dashboard
  2. Search questions/doctors
  3. See Notification
  4. See settings
  5. Invite Friends
  6. See/Edit Profiles
  7. See/Initiate activity with doctors/community
  8. Manage(upload) my own medical files
  9. Carousel with content/feed
  10. Numerous buttons to do many of the above and more

– “Invite Friends” opens my list which cannot be selected following iOS standard. A list should allow users to click in any part of item to selected /un-selected . Unfortunately, the app requires users to created only on radio button (around ‘o’) forcing users to deviate from natural behavior.

-“My profile” is only 40% complete but showing that in the dashboard, occupying important space sounds to me very sub-optimal. If you really need me to complete my profile, it’s better you use some different strategy such as interstitial or push/email notification.In the world of mobile, you fight hard for space(small screen but lot of data, fierce competition…) .

– “Activity”  sounds to be a historical data and showing that in dashboard  seems wastage of space as well. I guess, idea is to engage people to do something but there definitely few other avenues to ensure that.

– The multi-colored and iconized buttons below looks like very webby functionality where space is not an issue. Ideally, you want to focus on few things and make sure those primary engagement are happening in regular basis.Be is just reading content and liking them but that would get you an active and engaged customer.

– The carousel seems to be nice and I feel that’s what people are looking for in general. Contextual feed around my location and questions/answers which can help me prevent something which I’m still unaware of.

Following up this app, I thought twice and went back to see why FB/Twitter/WhatsApp are hugely successful. HealthTap definitely can add more value to our lives than just posting few images everyday. But if you look closely, they follow very basic apple guidelines while building their apps and kept things as simple as possible. The standard ‘tab’ based view which allow you choose you top 3 things that you want to offer to customer and then hide everything under ‘more’ tab. These tabs are highly successful and they are not random. These are probably the most interesting things that their business offers to their customers.

 

Finally, that entire app is a hybrid one,mostly dependent on server side html rendering and views are mainly embedded web-view and native app is acting as container for server pages.Unfortunately, this causes huge issue in providing standardized experience comparable to other native apps. As consumer for these devices are more demanding and competition is just not with another app in the same industry but across all industries,raising the bar to match others would be very critical for consumer adoption and engagement.

 

* Disclaimer : This article is written with the intention to bring some understanding on what can go wrong when you are not focused enough on mobile experience. This is nothing to do with the value-prop that business provides as many customers can use their website and get immense benefit from it.

 

 

Leave a comment

Filed under Mobile

3S for Mobile Success

The smart phones have given a new dimension to our world in the last couple of years. It’s mind boggling to see how fast it has been accepted across the globe and the sheer number of phones available today in the market could overwhelm any buyer.

Having a smart phone means the world is at your fingertips wherever you go. So, now-a-days people don’t have to depend on their desktop/laptops to stay connected. An appropriate application from the app store is enough to access ones favorite site.

Currently, iOS and Android are the two major platforms used to build millions of new applications and even upgrade the existing ones. WinMo has a comprehensive distance to cover to catch up with the Big Two.

As the competition is getting stiffer with every passing day, the challenge for any app-developers(engineer/product owners) is to win the customers, which will enable them to stay ahead in the rat race. The existing companies are coming up with new applications and even the new firms are developing smart stuffs to grab consumers’ attention.

So what are the three basic features one needs to follow while developing a new application?

1. Simplicity

The most important thing is to keep things simple yet give the users an amazing experience. But what is simplicity all about…

– What’s the most convenient method to reach that purpose ?

– How many things can a customer do with the app ?

– How much of satisfaction does a customer get when a desired task is accomplished ?

– How responsive is your UI ?

– How contextual your data is (i.e. location based) ?

– How overloaded is the UI ? Less is better.

– How many actions can be done as single hand/finger(mainly thumb) operation?

– Are all actions paired with reverse-actions?

– Is UI intuitive*  (Can an elementary school student browse your app)?

– Are icons used in your app self-describing ? (Intuitiveness improved !)

2. Speed

Speed is actually as important as simplicity. In this fast paced world people are always running short of time. So a simple but slow app will get an immediate thumps down. When it comes to your mobile device the basic mantra is “It should be fast”. Though a lot depends on the network provider the customer is subscribing but still you should be wise enough to come up with some smart decisions and make the latency low at your backend.

Here are few questions one may focus upon.

– Do you need to load all data at once to launch the app (Dashboard) ? Can you do on demand-loading ?

– Can you make pre-emptive call from app to preload the data if the API-call is expensive ?

– Do you know or predict user’s behavior i.e what’s user natural actions in your app ?

– Do you know the primary screen that users spend most of the time ?

– Can you cache data local to device ?

– Can you identify wifi/cellular data network and provide custom experience ?

– Can you use CDN for static contents ?

– Can you have local data-centers for the region where app is running ?

A better design can be achieved once we get answers for the above queries.

The framework of the application is also very important to support such behavior. Applications which are more data-heavy will probably be using an edge-cache from get-go rather than calls to traverse all the way to DB traversing through N-tier architecture and many transformations and network hops.

3. Security

Lastly, it’s the security. In general, most of the customers are not so bothered about this feature except few. But while dealing with customer’s financial and legal data it’s better to be cautious.

The basic questions are

– What kind of data are you dealing with ?

– Are you planning to do any offline storage? If yes, what kind of encryption is needed  ?

– What kind of privacy issue can you get into ?

– What kind of compliance/regulation do you need to follow ?

– How do you protect the API server from DOS/DDOS attacks** ?

– How much of unencrypted information are you exposing in API urls ?

 

In today’s world, where a new app is coming up everyday, it’s a challenge to divert your consumer’s mind towards your creation from the word go. Push notification is one of the ways to grab attention and you can categorically measure the percentage of users trying out the actual app.

This time with my blog I have tried to raise the questions whose answers can lead you to making a mobile application, which will be smart, smooth and swift —Again 3S.

Feel free to share your views and experiences to enhance this blog so that this acts as an apt guidance for app developers.

 

Coming up shortly

* A case-study.

** A follow-up article about mobile backend and how platform can contribute to your success.

 

Why FB Mobile increasingly becoming part and parcel of our lives…

A statement from Mr. Zuck…

Zuck_3S 

An  inspiring talk from Aral Balkan about Experience

Leave a comment

Filed under Mobile

10 Commandments for Software Architects, From Good to Great…

Are you a software architect or do you aspire to be a one? Regardless, you may benefit from some of the findings from my career.As a budding architect you will be familiar with many of them if not all.

When I started my career, as a fresher, I was unable to get hold of any good books or articles written on ‘what’s expected from an architect’. But now, after being in the field for 15 years, I would like to summarize what is an architect’s role and responsibility, from my experience. If you are already employing some or all of my recommended practices, they should resonate with you.

One important fact worth mentioning at the outset is that one cannot simply become an architect upon graduating from college. Rather, one has to practice software engineering first, and after a certain period of time (e.g., 8-10 years), he/she then moves into architecture.

I have no intentions to elaborate any organizational structure surrounding these roles as various companies follow their respective methodologies. As for example, there are firms where no discrimination is made between architects and engineers. They expect their engineers to incorporate architectural needs in software designing from the very beginning.

But on the other hand, there are other companies which work in a different fashion — where roles of engineers and architects are distinct. It’s more like ‘Breadth’ vs ‘Depth’. There architects are more into high-level designing whereas, low-level designs and implementations are handled by the engineers.  It’s due to the nature of large-scale software that organizations deal with. And there are overlaps in roles, so senior engineers and architects work alternately. 

Moreover, there is various classification of architecture such as application/ solution/ system/ enterprise/ integration etc.  These roles are target specific as their names suggest, but the bottom line is , strong, self-driven, smart engineers are expected to fill these roles.

 So, without further ado, let me share some of my discoveries and philosophies related to architectural practice in software development.

1. Build the ‘Reference Architecture’ 

  • This is the first step for an architect. Have a clear idea of what you have to deal with everyday. Building the reference architecture will drive faster communication with the engineering team and management. So if you don’t have one, build it now.

2. Define Vision

  • Identify the important needs for your business to serve your customers.
  • Elaborate what you care most for that particular area of the system/sub-system. Set-up principles and guidelines based on that list.
  • Iterate your vision and principles periodically to ensure you are aligned with business needs as these needs can change drastically with time.
  • You cannot assimilate everything together i.e. (performance, scalability, availability, reliability, extensibility, maintainability, security etc) at the same time. Design for the future but implement for today. Prioritize based on current needs. 

 3. Discover Gaps

  • Knowing ‘what’s not working well with the current system’ is an important first step to healing. It’s the same as  having medical check-up on a regular basis. So it’s important to keep a list of things you aren’t happy about.
  • Knowing ‘what could fail’ based on current trends is a good step toward becoming proactive and      taking necessary actions. It’s analogous to  taking Lipitor if you have high-cholesterol and medical records reflect a constant rise.
  • Failure cannot be avoided. (Murphy’s Law :”Anything that can go wrong will go wrong”). The cost of building a fail-proof system could be very high and on many occasions it can be avoided. Remedy: Devise a quick recovery mechanism (MTTR :MeanTimeToRecovery) to negotiate  such short-comings.

4. Build a Road-map

  • Based on the above information, define a road map and prioritize accordingly to meet immediate needs
  • Build incrementally towards the vision. Neither everything can be built in a day nor will you have the budget to do so. Focus on building small improvements.

5. Be a Product Owner (Evangelist) 

  • Thoughts to actions can only happen when you ‘own’ the road-map and constantly pitch for your improvement ideas.
  • Be prepared for some turn-downs as budgets are always limited.
  • Be prepared to get down to execution as required (see 8).

6. Be prepared to make trade-offs 

  • Trade-offs are part-and-parcel of an architect’s life. We have a business to run. TTM(time-to-market) is critical a lot of time.
  • Choose wisely what you give-up based on the principle/ guidelines that you have defined for yourself. (Step 2)
  • Keep a tab on what you give-up and add to architecture back-log. (Step 3)

7. Influence without Authority

  • This is most difficult part of the architect’s life. So be well aware of rules of the game.
    • This is soft-skill like man-management but  equally difficult
    • It requires time , patience and skill
    • It fails half-of-the-time
  • You need to influence all around (up, down, sideways) and need to do it continuously.
  • It’s always good to supply reference-material/articles/links etc while communicating. It adds value to your recommendation or statements.
  • Build relationships with people you work along. It may be BU-leads/Product-Mangers/Project-Manager/Peer Architects/Engineering-Managers.

8. Learn Continuously

  • Keep an open mind so that you can absorb new ideas or thoughts coming from people around you or outside.
  • Code regularly to keep yourself tuned with modern technology and frameworks.Without direct involvement, it’s almost impossible to gather expertise.
  • Attend conferences/seminars  to enrich yourself and do share your findings.
  • Many of the problems that we face are already solved in industry. So avoid reinventing the wheel (read NIH: No-Invented-Here).
  • Make yourself conversant of the patterns (design/enterprise/distributed-systems etc) to solve your problems effectively.

9. Grow Engineers

  • To get things done right from Day 1, you need competent engineers who believe in your visions. Grow/mentor engineers to achieve your target.
  • Assign responsibility to engineers to make them feel empowered. Guide them when necessary.
  • Present your work/thoughts/learning to broader audience in a group-environment to expand your reach.

10. Time for yourself

  • Figure out a way from manager’s schedule to maker’s schedule. Instead of doing one meeting after another sort out a way to spend time in bigger blocks (say 4 hours) and focus on one problem at a time.
  • Declare a no-meeting day in a week to focus on quality of work in your hand.
  • Time-management is an important skill and requires knowledge and practice. If needed, take a course.
  • Finding a right balance between professional and personal life is important. Key to take better decisions is a stress-free mind.

As an architect, I feel following the above mentioned facts will help one to focus on the right thing and also enable him/her to motivate the team in the right direction. All said and done, there is always scope for improvement. So feel free to share your experiences and chip in with your ideas to help my cause.

1 Comment

Filed under Architecture