Archive for August 2013
There is no doubt that mobile industry is one of the most intensely growing nowadays. Any product that earlier used to be desktop or web is moving towards going mobile. Everyone is taking designing experiences for smaller screens seriously. As for the web, we’re seeing swarms of recently updated sites that are employing responsive design or more mobile-friendly layouts. This is quite critical, especially when you consider that accessing the web from mobile devices is on track to surpass desktop usage in a just a year or two.
With so many mobile apps/sites out there you have to do all it takes to deliver a good mobile product that will be competitive on the market. The key input for success here often is conditioned by the convenience of mobile services. You have to start predicting what the customer wants to see when they try a mobile application or website. The use of mobile context in delivering mobile experience is just one of the big challenges that application developers face. Here’s a number of the most important challenges we see.
1. Mobile Context
There has always been emphasis on context – the idea of being sensitive to where users might be and what they might be doing at the same time that they’re using your app/site. Is a user in line at the grocery store or on the living-room couch? Is a user connected to the Internet via Wi-Fi access, with fast page loads, or an infuriatingly weak Internet connection? Are both of the user’s hands holding the device in landscape orientation, or is the user using only the right thumb to navigate the interface in portrait mode? We have to think about all of this. Basically the customer’s mobile context consists of:
Preferences: the history and personal decisions the customer has shared with you or with social networks.
Situation: the current location, of course, but other relevant factors could include the altitude, environmental conditions and even speed the customer is experiencing.
Attitude: the feelings or emotions implied by the customer’s actions and logistics.
Getting a good contextual awareness will require collecting information from many sources. For instance it could be mobile device itself, the local context of devices and sensors around them an extended network of things they care about and the historical context of their preferences. Gathering this data is a major challenge because it will be stored on multiple systems of record to which your app will need to connect.
2. Device Proliferation
Another challenge facing mobile developers is device proliferation. It looked like mobile app development process was pretty well defined: build your app, make sure it looks pretty on a 4-inch smartphone and a 10-inch tablet, then submit it to an app store. Most app developers prioritized a few popular devices, such as the iPhone, the Samsung Galaxy S III and the iPad.
It’s not quite that easy now, and it’ll be much tougher in the near future. Picking the most popular devices will become more of a challenge as device types and platforms proliferate. Google and Apple already support tablets of different sizes and, with Windows 8 now shipping, developers can expect to find a whole range of larger touch-sensitive devices, such as Hewlett-Packard’s Envy series.
3. Voice rather than Touch
There are a lot of situations where you would want to build voice input into your app today. For a running or fitness app, a phone is likely to be strapped to a person’s sweaty arm. The same is true while driving. Modern applications are to let people use their devices while keeping their eyes and hands off it.
4. Hybrid Applications
With each release, popular mobile operating systems get better at supporting HTML5 and its attendant APIs. That capability will let companies reuse more code across multiple devices, which will be important in keeping app development costs down taking into account the proliferation of connected devices and form factors.
5. Cloud Powered Mobile Applications
With the power of the cloud, the mobile application market is about to change radically. Several industry analysts predict that mobile applications will gradually move to the cloud and move away from being installed and run directly from the handsets themselves. Instead, cloud powered mobile applications are accessed and executed directly from the cloud through a mobile web browser interface and several technologies facilitating this change are already available. HTML5, for example, is necessary for enabling caching on the handset, so that users will experience uninterrupted service levels despite fluctuations in network service delivery.
Cloud powered mobile applications are not limiting their choice to one platform. Application developers also have real advantages from mobile cloud computing. The largest benefit is that it allows them to have access to a larger market. This means developers will have a much wider market which means they can bypass the restrictions created by mobile operating systems. But with greater developers’ power comes greater responsibility for security and performance. Expect more developers to be on call for application support in the new model, using triage to handle defects and investigate degradation to production services. Those tasks have traditional been the domain of systems administrators. Expect IT operations personnel to become integrated into development teams and to start their work at the inception of an idea.
I think the challenges mentioned are some of the most important ones. What are the challenges you have already faced in the mobile development? Even more interesting to hear about the challenges you are envisaging for the near future! As usual many thanks for sharing your thoughts!
Outsourcing: what do you think first?
The first thing that comes to my mind when I hear outsourcing is cost savings. No surprise that it’s the primary motivator for outsourcing decisions. However as we all know low cost not always means good quality, and vice versa as well – high quality at a high price.
To my opinion, the right approach and organization work that’s what turns testing to a smart business goal and cost-efficient decision.
So to optimize testing a number of considerations have to be taken into account: at what stage to outsource, how to find the right and secure partner, how to build and manage outsourced testing, how to stabilize communication etc.
In this article I would like to think over and demonstrate how to make outsourced testing effective and secure process.
Why do companies choose to Outsource Testing?
Software becomes increasingly important and failures in work could lead to money lost after product production if it wasn’t being tested properly. Moreover, in areas where software failure is expensive or could cost someone’s life testing should be one of the crucial activities. According to the statistics 91% of IT departments consider testing one of most important tasks in the development cycle.
Along with the growing demand on testing activities the remote outsourced teams increased in recent years as well and it is expected that the percentage will be growing next years. Nowadays test outsourcing market is no longer driven by independent testing companies, but all major outsourcing companies offer testing services as well. That increases the importance of testing and gives more possibilities in choosing the supplier.
There are number of benefits that could be archived through outsourcing, but let’s select the main ones: resource flexibility, cost savings, time savings and quality improvement of the end product.
From these points outsourcing of testing could be seen as a positive thing and could create real value for both customer and its supplier. However there are many stories as successful so complaining ones about work with outsourcing teams based on the information from blogs and articles. And based on them outsourcing is not always the fastest and cheapest way to test and in some instances can be turned into a complete failure. The main complaints connected with communication problems, timeframes of product delivery, quality of resources and supplier responsibility. Everything has its advantages and disadvantages, its positives and negatives, so based on the learnt lessons and previous experience it is always possible to work out some rules to get the successful results.
Step by step to outsource successfully
So based on experience working with our customers and read articles on this topic I’ve prepared some tips that should be considered while deciding on choosing the right partner:
– Past experience, if it would be possible to find out if they ever tested the same type of project you have;
– Request a list with references;
– Find out who of engineers will be assigned on your project, look through CVs, and organize interviews to check qualification and language skills;
– If test cases/scripts need to be prepared, ask for the examples of existent test cases to verify the level of expertise and experience;
Beside the decision of selecting the right partner, one more key to success is effective level of management service. So if you want all the things were done properly, you need to organize well the testing process, and to consider the following things:
-To choose the type of testing: manual or automated;
– To stabilize the requirements to the management: communication process, team coordination, etc.
– To consider tracking tools, environment to work in;
– To discuss in details project planning: preparing test plans and cases;
-To discuss and determine the project dates and final deliverables.
Once you have chosen a good partner and met your expectations outsourced testing become an excellent option. But you shouldn’t forget about continues monitoring and take carefully decision at what stage your product needs to be involved in testing process. You would need to manage all the process including also such details as time difference and national characteristics in order to build stable cooperation and communication process.
Of course, you should also take under control any problem that could happen. If failure occurs try to discuss it and develop mutual decision to deliver the product in time. So qualities of a good coordinator/manager and planner would be required as well.
As the result I should confirm that outsourced testing well coordinated and organized help you test your project within budget, on time and at the right quality.
Thank you for your attention and waiting your comments and sharing your experience.
Business Development Manager
Professional Software Development