Archive

Posts Tagged ‘Flexibility’

Apple should copy from Samsung

October 17, 2014 Leave a comment

Apple’s IBM Moment’

   The Innovation from Samsung that needs to be copied

Apple fans are quiet enthusiastic in their (sometimes blind) following of Apple. In this post I suggest the mantle is passing and Apple has its task cut out.

A historical analogy may be IBM in early days of computing which provided integrated hardware and software at robustness and quality that set the gold standard. You did not get fired for buying IBM. However with time the quality gap narrowed, competitors innovated a lot more and faster and the IBM premium faded….Microsoft was one such with a more open approach. Since many other were enhancing the hardware and the extensible Operating system and software it set a new standard. The Mac continued in the tradition of controlled systems. It took to USB late and Apple has been quiet circumspect in adopting new technologies like NFC preferring to be a laggard.

This has had advantages as too open a system leads to variations and some lack of robustness and varying user experience (the infamous Windows blue screen of death) . This has hurt Android. Google now is trying to reduce the variation (Android One) and Apple is opening up. For the first time iphone and ipad users can select third party keyboards and customize aspects of the UI that were given

Apple now carries the cachet IBM used to carry. Its adoption of oversized phones (phablets) has given legitimacy to that Samsung upstart and NFC may also get a boost with Apple Pay. This is good for customers. Competition is always useful in particular . There are several Android features that Apple has borrowed ( Active Notification, Cloud backup & Sync) and improved ( Siri over OK Google) . However competition does not stay still. OK Google (Google Now) is vastly better then Siri for Asian users. The voice recognition is superb and the action very close to intent. Siri falls flat a lot . It has to discover the rest of the World. Apples future growth depends on that.

I am an investor in Apple and love the fact it commands huge margin and has such growth.(Apple fans please keep buying) .

I wish to encourage Apple to shamelessly copy two features from Samsung Note lineup. I use Note 2 smart phone and Note Tab 10.1 2014 edition and they are way ahead of ipad. And it’s the software and productivity boost that makes it so. .Apple still provides a crisper and smoother experience but these phones are close very close. Difficult to justify Apple premium after you experience the productivity boost. I admit that my usage may not be typical. I am a post PC user. I spend more time with these devices. I want to do more than just consume. I believe this is a large enough segment to matter and will become larger. The phablet emerged to meet needs of users who do much more than just talk and listen to music and share photo so more and more users will want to create. For example I prefer to draw my mind-maps on the tablet

1 Urban

.Mindjet on the touch tablet is far easier and fun compared to desktop.

S pen A digitizer masquerading as stylus

2 FTAnnotated

Annotated page from FT app

The S pen is not a stylus in the way Steve Jobs thought about it. Its actually a digitizer and pretty good. The digitizer is so good Adobe AutoCad360 shines. Photo artists can do very precise work.The Keyboard can support handwriting input in any application. It takes your input and converts to text. However I am not a big fan of that as a bit slow still but improving and will be natural within 2 years.

I have back and forth with web page designers. Incredibly great to take out the S pen and annotate the web page with exactly the changes needed. Very quick and precise. You can mark up anything and this does not depend on support from the third party application. See an annotation of an article from the FT App. ( I trust their lawyers will not come after me for copyright …) .

The native S Note application has slick features . You can sketch diagrams, write mathematical equations and have them converted /cleaned up. Does a very good job.

Math Formulae from handwriting

Math Formulae from handwriting

I have stopped using paper and takes notes of meeting and things I am studying . Papyrus with S note is a full replacement of paper notebook plus you can embed graphics and screen shots as well. As a bonus your notes and notebooks are backed up on the cloud.

Multi Window

Another feature is multi window support . This needs genuine multitasking OS. IoS has a pseudo multi tasking feature and is being reworked. On a desk top I can open a Powerpoint and review it slide by slide adding comments on a email reply window on the side. This is just not possible on a Tablet. However Samsung Note Tab 10.1 supports this and its very productive. A favorite activity I have is collecting interesting usage of connected devices (IoT) and then updating the IoT forum that TiE runs.

Curating Web content

Curating Web content

I have dedicated modes where Evernote and browser open up in side by side mode so I can collect items as I browse and then I can curate and post to the IoT community . Another nifty feature pen window lets you open a application like a calculator in a small window. Can use it to do quick checks.

Checking Maths with a pop up

Checking Maths with a pop up

Copy contact info is a common one for me.

Aside this is the major failure of Windows 8. Trying to impose the modal window of phones on a desktop.

Multi Window is coming to Android  and should make it to iPhone.

A/B Testing at scale

I really appreciate that Samsung has stuck to the Note and iterated with different formats and different features in the software. The S pen applications have benefited from large scale A/B testing across multiple devices and feature set. This again is different from the button down process previously used at Apple . There was little end user input and more “My Way or the Highway” of Steve Jobs…That too is changing .

About time…The cycle of innovation and consumer good is well served …

Categories: Economy, IT Tags: ,

Agility Flexibility For Software Product

October 21, 2013 1 comment

Agility and Flexibility

[ There is an interesting discussion in ProductNation on Customizable Product : An oxymoron which triggered me to write this post]

I find many people use these words interchangeably. However the distinction is important and source of value. Agility can be engineered with proven techniques and best practices. With advancement in software engineering there is convergence on the tools and techniques to achieve agility and it may no longer be a source of differentiation but a necessary feature. Flexibility on the other hand requires deep insight into diverse needs and types of usage and done imaginatively can provide great value to users and be a source of competitive advantage.

                                   

   

   

The online Merriam-Webster     dictionary offers the following definitions:

   Flexible: characterized by a ready capability to adapt  to new, different, or changing requirements.   

Agile: marked by ready ability to move with quick easy  grace.   

 

In Software product context it may be more appropriate to define agility as the ability to change things quickly and Flexibility as the ability to achieve a (higher) goal by different means. So ability to value Inventory by different methods like FIFO or LIFO or Standard cost is flexibility. The ability to change commission rate or sales tax rate quickly (generally by changing a parameter in a table of a file and avoiding need to make code changes) is agility.

There is a range or scale ( 1 ..10)  of agility. Making changes in code esp 3rd generation languages like Java, C# is the baseline. Using a scripting language like Javascript , Python may be less demanding then compiled language but it is still not as agile as most users expect. Most users would rate it simpler to update a parameter in a file or a simple user interface like a Excel type spreadsheet as simpler and faster. Changing logic by using a If-Then type of rule base is in-between. Simpler then coding but more complex then table updates.

You should have picked up some inter-related themes here. Complexity or need for skill in making changes to a scripting or Rule engine . Need for easy to use interface to make the changes. Need for relatively easy and error free method of making changes. If you need to update ten parameters in ten different places or change 17 rules in a  If-Then rule base it may not be as simple and is less agile .

Most modern Software products are fairly agile with scripting, table based parameters and rule driven execution engine. The use of style sheets in generating personalized User interface, specialized components like Workflow or process management engines etc also provide agility.

Flexibility is a different beast. Layered architectures and specialized components for workflow, rule execution and User experience can make it easier to accommodate different ways to do the same things. They make it easier to make the necessary changes but they do not provide flexibility as such. End users do not value the potential flexibility of architecture but the delivered functionality. This is a major problem. Even Analysts from Gartner , Forrester do not have a good way to measure flexibility and use proxy measures like number of installations or types of users ( Life Insurers and Health Insurers or Make to order or Make to Stock business).

Flexibility is derived from matching the application model to the business model and then generalizing the model. I will illustrate with a concrete example. Most business applications have the concept of person acting as a user ( operator) or manager authorizing a transaction. So a clerk may enter a sales refund transaction and a supervisor may need to log in to authorize this refund. The simplest ( and not so flexibly) way to implement this is to define the  user as clerk or supervisor. A more sophisticated model would be to introduce the concept of role. A user may play the role of clerk in a certain transaction and a supervisor in another.  Certain roles can authorize certain types of transactions with certain financial limits. So user BBB can approve sales refund up to 100,000 INR as a supervisor. However BBB as manager of a section can initiate a request for additional budget for his section. In this BBB is acting as a clerk and DDD the General Manager who approves the budget extension request is acting as a supervisor. This model is inherently more flexible. It is also not easy to retrofit this feature by making changes to parameters or If-Then rules. If the Application does not model the concept of Role all the agility in the product is of little use. Greater flexibility can be produced by generalizing the concept of user to software programs. So in certain high volume business a “power user” can run a program which can automatically approve a class of transaction under certain set of control parameters. This “virtual user” is recorded as the approver on the transaction. The application keeps a trail of actual control parameters and power user who ran this “batch”.

Flexibility comes from a good understanding into user’s context and insight into their underlying or strategic intent. Business and users will vary the tactic used to meet their intent based on context. Consider a simplistic example to illustrate. I need to urgently communicate some news to a business partner. I try calling his cell but to no use. I would send a SMS ( India) but if a US contact ( who are not as yet fans of SMS or Text) leave a voice message on his phone or send a email. A Smartphone that allows me to type a message and send as SMS or email is more flexible then one where I have to separately write the email or the SMS.

Frequently Software designers and Architects generalize all types of changes as extensions. They are not interested in understanding intent and context of usage and want a horizontal generic solution to all changes. This leads to overly abstract design with extension mechanisms to change logic, screens and database and reports. In essence to develop a 4th generation programming environment or Rapid Application Development Environment (RAD) . These help by making programming easier and faster but are no substitute for understanding user’s context and designing the application architecture to match and exploit them.

 Users relate to a product which speaks their language and seems to understand them. They also get excited and impressed when they see new ways of doing their business and improving their revenue, reducing cost and improving customer satisfaction. Most managers want to make changes incrementally. So ability to “pilot” changes to a smaller segment of users, customers and products while continuing in traditional way with the larger base is of great value. That is ultimate flexibility.

Flexibility is not a mélange of features haphazardly put together.  I have seen many service companies developing “Flexible Product” by adding every feature they can see in other offerings. Invariably this leads to a mythical creature which does not work. If you put a Formula 1 Race engine in a Range Rover chassis with a Nano steering  and Maruti wheels you have a car which does not drive!! A Formula 1 car is intended for maximum speed and acceleration that is safe while a goods carrying vehicle is intended for maximum load carrying with optimum cost of fuel usage .

Delivering Flexibility requires heavy lifting in developing a good understanding of user’s domain, their intent and context. It adds value by simplifying the feature set and matching users intent and context.. If we can use our imagination and understanding of technology trends and capability to provide more then users have visualized we can lead them to newer ways. Leadership is an important way to differentiate your product. Invest in doing this and reap benefits.