Archive for the Biz Blogs Category

The new documentation

December 10th, 2012 | Biz Blogs | Comments Off

Software development process is fast catching up with agile, but old minds with their set perceptions are still sitting on top of organizations and they hate change. For them software development is still waterfall. They still try to fit in old apparatus in the new lab – doing agile the waterfall way. Result – multiple hybrid agile models all across the software service industry.

The advent of agile requires them to throw away the concepts of creating piles of documentation that just helped in adding ‘weight’ to the delivery. A very stereotyped It-needs-to-look-bulky-to-look-expensive mindset. They still do that with software, they do that with processes and they do that with documentation. I’ve already been talking about rubbing off features from your product canvas in previous articles. I will perhaps feel disgusted enough and write about leaner processes in detail some day. This time I am trying to focus on creating documents the new way – the agile way. And that means wiping off all templates, bulky documentation processes and focusing on the need of it. And I am not going to save digital paper by keeping the page count low. I am talking about creating presentable, readable, useful software documents that are easy to create and maintain.

Cover page – It makes the document look presentable, authentic and interesting – if you make it properly.

Table of contents – As a creator it may seem simply useless but as a reader it is very useful specially for larger docs so one can directly reach the point of interest.

Document history – Keep it simple. Just make a simple table with date, author/reviewer, modification done.

Main Contents  - For any software related document here are some important labels you should keep in mind. You can select and add the most relevant ones.

1. Objective – Over all objective of the product. Even if it is not your own product you should try to know what is the aim of creating this new piece of code.

2. Target users – Everyone is never an answer. Please try to look for specific age groups, region, religion, gender bias or other demographic parameter. It is extremely important to narrow down the target users as much as possible.

3. Competitive Products – It seldom happens that there are no similar products. One should analyse and jot down the feature highlights of other similar products.

4. Non-Functional features – Before your target readers get engrossed in the overwhelming list of features and functionality, discuss a few desired features like performance, security, scalability, internationalization, orientation(in case of mobile apps).

5. Scope – Again, while the suspense of feature list builds on it is good to tell the readers what is in scope and what is not. The entire feature list would obviously be in scope but there may be corners here and there that you may want to keep out of scope.

6. Feature list – It is always good to pour out how you ‘see’ it. A functional wireframe (simplest of sketch if also fine) with a simple explanation of what control does what or takes users to ‘X’ screen or allows user to do ‘L’ thing. One may not require to keep adding little validations, checks etc. That should rather go in coding guidelines/checklist and developer should be expected to take care of such ‘regular’ stuff.

7. Designs – It is also good to start with a little showcase of colors and themes you find apt for the product (based on use and target audience). Based on the timelines one has – she can add few finalized screens.

References – May not be relevant for requirement or estimation type documents but it is good to add the apps/websites/books/documents you found useful as references at the end.

See Sample

Templates v/s Checklists

What we need is checklists (like the one above) and not templates. With templates comes fear/lethargy of  maintaining the status-quo. If every document is different – it should look different and focus on solving the problem instead of maintaining the so called standard format. Auditors and Managers want to you to stick to their ‘prescribed’ formats because it is easy for ‘them’ to monitor and review. But that’s not what docs are for.

The sample I’ve attached is to understand the concept and see it in action not to be used as a template. Feel free to add/ edit/ remove the sections to make it more relevant.

Comparison of cross platform tools for mobile apps

August 23rd, 2012 | Biz Blogs | Comments Off

Cross platform tools

Cross platform tools are required to fight against platform fragmentation in mobile application market. Led by Apple’s iOS and Google’s Android there are multiple platforms that have significant market share spanning millions of users.  Creating a native application for each platform is a tedious and expensive exercise. Cross platform tool offers writing code just once using one technology and create apps for multiple platforms.

There are multiple cross platform tools available in the market, each serving a different purpose. They are based on different technologies and provide cross platform support in different ways. All tools allow you to write code in one language and create apps for multiple platforms. The two ways of providing cross platform support are:

  1. Creating html based code that run in browser components (Web View) of different platforms. You get a HTML+CSS+JS code wrapped in native app.
  2. Creating one code in one technology (HTML5, .Net-C#, JavaScript, Ruby) and translating it for different platforms (cross compiling). You get native code automatically written for different platforms.

Factors for selection

Choice of tool depends on following factors:

  1. Supported Platforms: Some popular tools like Mono support only iOS and Android, while others like Phonegap support up to 7 platforms.
  2. Implementation Technology: Some tools require developers skilled in web development languages like HTML5, CSS,  JavaScript, while others may require developers skilled in .Net (Mono) or Ruby (RhoMobile) or Lua (Corona, DragonRad) resources. Some tools allow you to develop for iOS and translate to others while some (DragonRad) are pro Blackberry.
  3. Type of Apps: Some tools (like Unity3, appMobi) are best for developing Gaming apps, some for enterprise apps (DragonRad) while others (Phonegap, Titanium) provide support for generic apps. Some are more appropriate for web apps (Sencha) while some are better suited for hybrid apps (Phonegap, IBM Worklight).
  4. Pricing: Few tools are free and open source, while some are expensive. There are different license terms, pricing structure and support.
  5. Development Support: The most popular tools are best supported by the community while some tools (like Kony) have a great paid support. It also largely depends on the companies backing these platforms.

Cross Platform Tools Comparison

(Phonegap vs Appcelerator Titanium vs Mono vs Sencha vs Rhomobile vs Kony vs DragonRad vs Flex vs Unity )

Comparison of most popular tools on basis of the factors discussed in the last section:

Supported Platforms Technology Type of Apps Development Support Pricing
Phonegap
  1. Android,
  2. Blackberry 5x, 6x
  3. iOS
  4. Windows Phone 7
  5. Symbian
  6. WebOS
  7. Bada
HTML5, JavaScript Generic, Hybrid Apps,Hard to provide Native look and feel
  • Excellent Tutorials and Community Support
  • Free
  • Paid support starting $250/yr
Titanium
  1. iOS
  2. Android
  3. Blackberry
JavaScript Generic,Native AppsHard to provide Native look and feel
  • Excellent Tutorials and Community Support
  • Free
  • Enterprise versions available but Pricing not declared
Mono
  1. iOS
  2. Android
C# .NET Generic,Native AppsiPhonish Look and Feel
  • Good Tutorials and Community Support
  • $400 to $2500
Sencha Touch
  1. Android,
  2. Blackberry
  3. BB Tablet
  4. iOS
HTML5 and JavaScript Generic,Web Apps,Hybrid AppsHard to provide Native look and feel
  • Good Tutorials and Community Support
  • Free,
  • Support costs $300 to $5000
RhoMobile
  1. Android,
  2. Blackberry 5x, 6x
  3. iOS
  4. Windows Phone 7
  5. Windows Mobile
  6. Symbian
Ruby, HTML, Javascript Generic,Native Apps,Hybrid Apps,Apps requiring server syncNative look and Feel
  • Good Tutorials and Community Support
  • $500 per app
  • Server – $5000 to $20000
Kony
  1. Android,
  2. Blackberry 5x, 6x
  3. iOS
  4. Windows Phone 7
  5. Symbian
  6. WebOS
  7. J2ME
HTML5, JavascriptLua Generic,Hybrid Apps,Native AppsNative look and feel Paid support
  • Paid
  • Pricing not declared.
Flex
  1. Android
  2. Blackberry
  3. BB Tablet
  4. iOS
Flex and ActionScript Generic,Hybrid AppsHard to provide Native look and feel
  • Excellent Tutorials and Community Support
  • IDE costs $699 one time
Unity3
  1. iOS
  2. Android
  3. Blackberry
Lua Games
  • Excellent Tutorials and Community Support
  • Basic Free
  • Pro version is up to $6500 one time
DragonRad
  1. iOS
  2. Android
  3. Blackberry
Drag and DropLua Enterprise, Games
  • Excellent Tutorials
  • $5000/yr

Technical Details:

Technical details on what feature is supported in which platform are available for a few platforms. It is good to get in to details once you have shortlisted two to three platforms based on afore mentioned table.

PhoneGap

http://phonegap.com/about/feature

Rhomobile

http://docs.rhomobile.com/rhodes/device-caps

Delightful Mobile Design practices

April 23rd, 2012 | Biz Blogs, Technical Blogs | Comments Off

OR How to create remarkable design that people would love talking about.

This is not mobile design best practices. This is about going the extra mile in developing an app that wows users and creates a superlative user experience. It may be hard to include all these ideas in every application one creates, but some ideas are really worth imbibing in practice. This is more about the UI design then the application architecture but it was hard for me to separate the two when I look at it from user’s experience. So, I’ve conjoined the two aspects of design under the same flow.

Exceptional/minority inclusion – Design apps for the users who are exceptional or in minority – old, disabled, visually impaired, color blind, left handed. You may allow user to set navigation option for left handers, create animated visual indicators or audio instructions for old and visually impaired.

Clear visual indicators of action points – the app should guide you on the next step. The ‘Save button’ to be clicked before going to next screen may turn green, or flash or develop a colored halo to indicate it is the recommended action. You may also add some audio indicators as they are unobtrusive.

Airbnb

Visual indicator for action item

No pop over – avoid popups so much that they occur only in exceptional or unavoidable cases. Instead of asking a delete confirmation over popup – make it two step.

Facebook

Could have done better with two buttons

Shortcut gestures – have an intuitive gesture as a shortcut to classic approach but don’t forego the classic approach. Include the classes but don’t forget the masses.

Store preferences, last inputs if possible – Nothing delights more than the idea of NOT having to input data again.

Offline mode – do not expect users to always be connected. Allow them to use the app offline, even with stale data. Also handle weak network, intermittent network loss conditions.

Economy mode – The app may suggest economic ways of consuming data – allow a switch between paid and free networks as convenient, may be automatically. Also some user may love economy of power and memory at a little loss of performance. You may allow adjusting screen brightness or do it automatically based on ambience.

Least interruption – other than popups there are other clutters one must avoid. Uploading/ downloading/ processing indicators should also be avoided as much as possible. A background process is best run in the background without hindering user interaction. If it requires user input it is #fail. If it is visible – it is distracting. Drop any visual indicators of a background process unless and until the user is ‘required’ to be aware of it or his decisions would be affected because of it.

Less clicks is more fun – Unless it is a game of tic-tac-toe or tap-tap-tap tapping on virtual buttons is no fun. Save/Sync the information automatically, save state before exiting and the users are compelled to say ‘Wow!’Path (12/2011)

Saves a click as the info is rite-on-the-page

Easter eggs – Now, this is not just about delighting the user. It also makes your application viral because users would have cool things to talk about, blog and share over the internet. In fact, hiding one of the awesome features for discovering later can bring wows, if done smartly.

There can be more pointers to a great design but I guess this is an age of “Less is more”.

Enterprise Mobility Software Features

April 23rd, 2012 | Biz Blogs, Technical Blogs | Comments Off

ESSENTIAL CHECKLIST!

Here’s a little drill down to lower level of enterprise software design. I’ve tried to list some smart features that are must have for any enterprise mobility solution. This can also serve as smartphone based enterprise solution checklist.

Secure- Two factor login, other secure login, encrypted data storage, encrypted data communication.

Monitor – logs usage in call, sms, data. Maintains a list of all installed software and running services. Keeps check on any data security breach. Analytics should be an important part of the main software – it helps you measure Usage patterns and ROI. It also becomes most important feedback for ongoing formulation of mobile strategy.

Backup – automatically syncs or allows user to backup data on central server

Anti-Malware – Protects the mobile device and keeps a check on any intrusive software or app.

Optimized – Optimized performance, memory and battery usage. These three factors are important for continued reliable usage on a small device.

Enterprisey – This is a list of features that are important for rendering an enterprise-like feel to the mobile software. Spell correction, drag and drop, version control for contents etc. help in making the software intuitive and easy for adoption.

Mobility – Consumer apps v/s Enterprise apps

April 9th, 2012 | Biz Blogs, Technical Blogs | Comments Off

OR Innovating Enterprise Mobility without using Consumer Tech

A lot of innovation and creativity is ignored in the name of developing enterprise solutions. Generally major share of the innovation, creativity and fun in software is attributed to consumer apps. There has been a huge historical disconnect between the two. The adoption of Mobility and Social Media by corporates is fast bridging the gap between enterprise and consumer applications. Most people see it as consumer tech inspired design more so because the consumer tech is built in to the mobile platforms. But here are pointers on how one can achieve innovation in enterprise software:

1. Unsophisticate - as compared to focussing on “Simplicity”, which is hard to achieve for enterprise solutions, architect should look to break down the solution in to smaller (more detailed) modules and de-complicate each one. It may involve cutting down features, removing the clutter from UI, adopting standard UI guidelines, letting go of the ‘Original’ look and feel. Many enterprise software suffer because they focus on maintaining the “Old” stuff while moving to new platform quoting easy adoption. Try weighting ‘Unknown but Simple’ with ‘Known but Complex’ – the former just feels right. Isn’t it?

2. Usability - An enterprise user is absolutely no different from consumer. It is important to consider this assumption and hold to it stringently unless exceptions are mandatory. A little effort on improving interaction experience goes a long way in enhancing the usability.

3. Smart features - Smartness factor indicates how well is your solution using the mobile platform and device capabilities. Is it location aware, does it prefill or track the correct time and location of use? Does it leverage usage of camera for attaching documents or scanning barcodes? does it allow taking voice or video notes to add with text?

4. Graphics - Enterprise design do not have to look dull. You may want it to look profesional but there are creative ways to keep it simple yet interesting.

5. Revisiting MDM and Security - Security is perhaps the numbero uno requirement as well as concern for mobile based enterprise solutions. Considering two assumptions:
1) Data available on the mobile devices would be extremely confidential.
2) A centralized system is continuously required for monitoring and managing devices accross the organization.
If any of the above is not completely true your security and MDM needs may be taken care of by existing infrastructure provided by mobile application stores specially Google Play and Apple appstore. Updates and cloud based push notifications take care of some of the MDM requirements. Login based access, encrypted data storage or regular server sync and token based security can completely immune the data from undesired access even in the event of theft/loss of device. Even when the above assumptions are true, the MDM and security for enterprise mobility can be made cost effective by including the suggestions made above.

Investing smartly in Mobility

April 8th, 2012 | Biz Blogs | Comments Off

Going mobile can be a huge investment involving buying, maintaining appropriate devices and buying/ developing, distributing and maintaining mobile software. Here are 4 pointers to consider in your mobility strategy and make your mobility investment smarter:

Ongoing costs: Calculate your investment by factoring in ‘Ongoing cost’. As an example, if the solution heavily depends in internet, the 3G/GPRS data plan is an ongoing cost. Businesses should make sure what part of application can be made available offline to minimize such costs.

Implicit costs: Other than ongoing costs there are some hidden costs associated with use of applications. Briefly, there are implicit time and costs associated with adoption, usage time (all solutions are not particularly time savers), system resources.

Existing infrastructure: Can the mobility solution work with mobile devices/ handhelds/ tablets that your target users already have? BYOD is already acceptable. You may have the budget to buy new devices and distribute uniformly over the target user base, but if the solution can be experimented on existing infrastructure it may be huge cost and time saver. Even if you can implement the solution for a part of the user base it can provide extremely beneficial insights and feedback for the final implementation.

Future proof: Technology is changing very fast and it is important keep your mobility solution ready for future versions of the platform and devices. This is specifically more important for consumer apps as compared to enterprise apps.

The right way to GO Mobile!

April 8th, 2012 | Biz Blogs | Comments Off

Going mobile can be a costly and challenging affair. That makes it imperative to do it right the first time. A lot has been said about creating better applications for mobile. I’ve tried to summarize five most essential considerations for creating effective mobility solutions/strategy:

Focus – Mobile usage is far more specific, contextualized and personal as compared to PC usage. Cut down generic features relentlessly. Focus on limiting the feature-set, injecting simplicity and intuitiveness.

Start early, start simple – I’ve never seen someone need a user manual for Gmail, Facebook, Zynga games. And if you stop taking them for granted, these are very sophisticated applications – loaded with features. What goes in their favor is that they started simple and users adopted them and evolved with them. That may sound costly and time taking, but holistically it is more effective at roughly the same cost.

Security, Performance, Scalability – The overwhelming feature set of mobile solutions often lures decision makers to undermine these important requirements. Mobility solutions can be made completely secure if you architect it correctly. The solution should also focus on low memory and power footprints and be architecturally adaptive to future enhancements.

Smartness factor– Many enterprise and productivity solution often miss out on one front – How much of the platform/device capabilities are used? A little effort on using more of the available platform/device features (like GPS, Camera, Contacts) can make the solution manifold smarter. However one should be stringent about point one – ‘Focus’ and wary of adding very general/irrelevant features.

Platform independence – The mobile platforms/devices scenario is so fragmented that it is important to look for solutions that are as less dependent on platforms as possible. The first approach should be to evaluate a browser based solution. If that does not meet your requirements go for a Hybrid (HTML5 plus Native) solution which is cost effective and more platform independent than native. Developing platform dependent native solutions are costlier and take more time to market.

Integration – Another futuristic and significant consideration is integration of mobility solution with other channels. Integration with server, hosted enterprise solutions, existing websites, apps, cloud is already sought while developing mobile solutions.  Seeking integration with smart television and interactive kiosks, though futuristic, can be worth considering.

Who mobility is for?

April 8th, 2012 | Biz Blogs | Comments Off

Mobility is in vogue. There are software vendors that have mobility solution for your every business problem. Considering the time and cost it takes businesses need a clear mobility strategy focused on adoption, cost-effective solution and ROI. Here are some suggestions that can better guide the one exploring how mobility fits in:

Mass appeal product/services: If the products/services are aimed at masses. Size of your company or operations do not matter; more significant is your intention to reach out to the masses. Also, of course, if the potential mass of buyers/users use mobile phones.

Huge workforce: If your executive workforce is mobile (on the field), large in number, needs updated information constantly, needs to stay connected horizontally or vertically, needs to look smarter and technologically advanced.

Start-ups:  can have mobility built-in to their products/services, business model and technology strategy. Instead of using mobile as an extension to the server based solutions these days some solutions require to use them as central implementation and server (or cloud) as an extended support.

Small business: can use mobility to enhance client’s experience, improve vendor management, improve overall productivity of workforce, and improve control over logistics.

Large business: Other than the uses stated above large business can use mobility to go green, significantly reduce paper usage, speed up internal processes, show-off (now that tablets and smartphones are a part of business attire), and improve visibility and transparency for higher management.

Mobility – the changing game!

April 7th, 2012 | Biz Blogs, Technical Blogs | Comments Off

Initially mobile was perceived as an extension to internet and enterprise solutions. But, with advent of smart mobile platforms with higher form factors, advance features and apps based ecosystem and evolution of social media the game has changed. Many business models now require a reversed technology strategy. In fact, many do not realize that mobility and social media evolution is “ON” and the game is still constantly changing. There is a different angle with which businesses are strategizing today. Almost every business, regardless of its size or domain, is imagining tapping its share of the mobility advantage. However, it is important to chalk out a mobility strategy before going all in. Here are some key items to include in your mobility strategy checklist.

Going mobile is a business (not IT) decision: Enterprise Mobility aimed at enhancing productivity, efficiency and curbing cost and delays has significant impact on the way organization works. It is important to accept and understand that transformation and plan it in advance. It may require changes in organizational structure, processes, infrastructure and people. It may also open new business opportunities and induce new vulnerabilities.

Security and Privacy: As with every new technology implement, there are concerns of data security and adoption. Another important aspect that comes in picture with mobility is employee privacy concerns. With concepts like BYOD, security is a greater concern. Fortunately, mobility has solutions for all these concerns and one can effectively manage all relevant devices, software updates, provisioning, backups and information security.

Platform diversity: The mobility clearly has a split market share shared by iOS, Android, Blackberry, Symbian and Windows. Palm and Bada being minor players. Diversity of platforms is also an opportunity for tools that can produce platform independent solutions like Adobe (Flex), Appcelerator (Titanium), AppMobi, Bedrock (Metismo), Ansca (Corona), DragonRad, Kony, Marmalade, MoSync, Netbiscuits, Alcatel Lucent (OpenPlug), PhoneGap, RhoMobile, RunRev (LiveCode), Sencha Touch/jQTouch, Strobe/Sproutcore, Unity, Unreal, Worklight and Xamarin (MonoTouch/Droid).

Involve stakeholders: Any business transformation requires strong internal communication for smooth adoption. All stakeholders must be kept aware of what’s coming and when, also, how does the transformation affect or benefit them.

This series will also cover who Mobility is for, what the right way to go mobile is, and how to invest smartly in mobility.

IT Lingo

January 3rd, 2011 | Biz Blogs | Comments Off

Just a quick reference for people new to IT or new to popular ways of communication in IT world.

afaik – as far as I know

asap – as soon as possible

aeap – as early as possible

eod — end of day

eob — End of business (means before you leave office)

eom – End of message (usually written in subject line to indicate there is no need to open the mail)

Do you have the bandwidth ?

-          Do you have time for  a new task

What’s on your plate?

-          What are the tasks you are working on

Go Dutch  — Pay for yourself.

Are we on the same page?

-          Do you think we both know and understand the same thing? Or is there any confusion or difference in our understanding?